Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDQPROP

SDQPROP.m

Go to the documentation of this file.
  1. SDQPROP ;ALB/MJK - Query Object Property Methods ;8/12/96
  1. ;;5.3;Scheduling;**131**;Aug 13, 1993
  1. ;
  1. DATE(SDQ,SDBEG,SDEND,SDACT,SDERR) ; -- set/get date range property
  1. ; API ID: 82
  1. ; API NAME: SDQ DATE RANGE
  1. ;
  1. DATEG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G DATEQ
  1. IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G DATEQ
  1. IF SDACT="SET",'$$QRYINACT^SDQVAL(.SDQ,$G(SDERR)) G DATEQ
  1. IF SDACT="SET",SDBEG=0 S SDBEG=2900101
  1. IF SDACT="SET",'$$RANGE^SDQVAL(.SDBEG,.SDEND,$G(SDERR)) G DATEQ
  1. ;
  1. IF SDACT="SET" D
  1. . S @SDQUERY@(SDQ,"BEGIN DATE")=SDBEG
  1. . S @SDQUERY@(SDQ,"END DATE")=SDEND
  1. IF SDACT="GET" D
  1. . S SDBEG=$G(@SDQUERY@(SDQ,"BEGIN DATE"))
  1. . S SDEND=$G(@SDQUERY@(SDQ,"END DATE"))
  1. ;
  1. DATEQ Q
  1. ;
  1. ;
  1. FILTER(SDQ,SDFIL,SDACT,SDERR) ; -- set/get filter property
  1. ; API ID: 83
  1. ; API NAME: SDQ FILTER
  1. ;
  1. FILTERG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G FILTERQ
  1. IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G FILTERQ
  1. IF SDACT="SET",'$$QRYINACT^SDQVAL(.SDQ,$G(SDERR)) G FILTERQ
  1. IF SDACT="SET",'$$FILTER^SDQVAL(.SDFIL,$G(SDERR)) G FILTERQ
  1. ;
  1. IF SDACT="SET" S @SDQUERY@(SDQ,"FILTER")=SDFIL
  1. IF SDACT="GET" S SDFIL=$G(@SDQUERY@(SDQ,"FILTER"),"IF 1")
  1. ;
  1. FILTERQ Q
  1. ;
  1. ;
  1. INDEX(SDQ,SDIDX,SDACT,SDERR) ; -- set/get index property
  1. ; API ID: 85
  1. ; API NAME: SDQ INDEX NAME
  1. ;
  1. INDEXG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G INDEXQ
  1. IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G INDEXQ
  1. IF SDACT="SET",'$$QRYINACT^SDQVAL(.SDQ,$G(SDERR)) G INDEXQ
  1. IF SDACT="SET",'$$INDEX^SDQVAL(.SDQ,.SDIDX,$G(SDERR)) G INDEXQ
  1. ;
  1. IF SDACT="SET" D SETIDX(.SDQ,.SDIDX)
  1. IF SDACT="GET" S SDIDX=$G(@SDQUERY@(SDQ,"INDEX EXTERNAL"))
  1. ;
  1. INDEXQ Q
  1. ;
  1. ;
  1. SETIDX(SDQ,SDIDX) ; -- set index related info
  1. N SDIDXI,SDTYPE,SDVAL
  1. S SDIDXI=$O(^TMP("SDQUERY CLASS",$J,SDQ,"INDEX","B",SDIDX,0))
  1. S X=$G(^TMP("SDQUERY CLASS",$J,SDQ,"INDEX",SDIDXI,0))
  1. S @SDQUERY@(SDQ,"INDEX EXTERNAL")=$P(X,"^",1)
  1. S @SDQUERY@(SDQ,"INDEX INTERNAL")=$P(X,"^",2)
  1. S (SDTYPE,@SDQUERY@(SDQ,"INDEX TYPE"))=$P(X,"^",3)
  1. ;
  1. ; -- at which subscript is ien located + subscripts in global root
  1. S @SDQUERY@(SDQ,"IEN SUBSCRIPT")=$S(SDTYPE=1:3,SDTYPE=2:3,SDTYPE=4:4,1:999)+$P($G(^TMP("SDQUERY CLASS",$J,SDQ,"GL SUBSCRIPTS")),"^",3)
  1. ;
  1. ; -- get override entry validator if defined, otherwise use default
  1. S SDVAL=$G(^TMP("SDQUERY CLASS",$J,SDQ,"INDEX",SDIDXI,"VALIDATOR"))
  1. IF SDVAL="" D
  1. . IF SDTYPE=1 S SDVAL="D REG^SDQUT(.SDQ,.SDGREF)" ; regular
  1. . IF SDTYPE=2 S SDVAL="D REGDT^SDQUT(.SDQ,.SDGREF)" ; regular date range
  1. . ; IF SDTYPE=3 S SDVAL="D COM^SDQUT(.SDQ,.SDGREF)" ; composite
  1. . IF SDTYPE=4 S SDVAL="D COMDT^SDQUT(.SDQ,.SDGREF)" ; composite date range
  1. ;
  1. S @SDQUERY@(SDQ,"VALIDATOR")=SDVAL
  1. Q
  1. ;
  1. ;
  1. ACTIVE(SDQ,SDSTAT,SDACT,SDERR) ; -- activate query
  1. ; API ID: 88
  1. ; API NAME: SDQ ACTIVE STATUS
  1. ;
  1. ACTIVEG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G ACTIVEQ
  1. IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G ACTIVEQ
  1. ;
  1. ; -- did above produce errors?
  1. ; -- if so, it's important to stop processing to prevent other errors
  1. IF $G(SDERR)="",$O(^TMP("DIERR",$J,0)) G ACTIVEQ
  1. IF $G(SDERR)]"",$O(@SDERR@("DIERR",0)) G ACTIVEQ
  1. ;
  1. IF SDACT="SET" D G ACTIVEQ
  1. . IF '$$STATUS^SDQVAL(.SDSTAT,$G(SDERR)) Q
  1. . IF SDSTAT="TRUE",'$$PROP^SDQVAL(.SDQ,$G(SDERR)) Q
  1. . IF SDSTAT="TRUE",'$G(@SDQUERY@(SDQ,"ACTIVE")) D START(.SDQ)
  1. . IF SDSTAT="FALSE",$G(@SDQUERY@(SDQ,"ACTIVE")) D STOP(.SDQ)
  1. ;
  1. IF SDACT="GET" D G ACTIVEQ
  1. . S SDSTAT=$S(@SDQUERY@(SDQ,"ACTIVE"):"TRUE",1:"FALSE")
  1. ;
  1. ACTIVEQ Q
  1. ;
  1. ;
  1. START(SDQ) ; -- set up active query
  1. N Y,SDTYPE,SDIDX,SDGL,SDMST,SDBEG
  1. S SDTYPE=$G(@SDQUERY@(SDQ,"INDEX TYPE"))
  1. S SDIDX=$G(@SDQUERY@(SDQ,"INDEX INTERNAL"))
  1. S SDMST=$G(@SDQUERY@(SDQ,"MASTER VALUE"))
  1. S SDBEG=$G(@SDQUERY@(SDQ,"BEGIN DATE"))
  1. S SDGL=$G(^TMP("SDQUERY CLASS",$J,SDQ,"GL"))
  1. S Y=""
  1. ;
  1. IF SDTYPE=1 S Y=SDGL_""""_SDIDX_""","""_SDMST_""")" ; regular
  1. IF SDTYPE=2 S Y=SDGL_""""_SDIDX_""","_(SDBEG-.000001)_")" ; regular d/t
  1. IF SDTYPE=3 S Y=SDGL_""""_SDIDX_""","""_SDMST_""")" ; composite
  1. IF SDTYPE=4 S Y=SDGL_""""_SDIDX_""","""_SDMST_""","_(SDBEG-.000001)_")" ; composite d/t
  1. ;
  1. S @SDQUERY@(SDQ,"GLOBAL REF")=Y
  1. S @SDQUERY@(SDQ,"CURSOR")=0
  1. S @SDQUERY@(SDQ,"ACTIVE")=1
  1. S @SDQUERY@(SDQ,"MORE")=1
  1. S @SDQUERY@(SDQ,"BOF")=1
  1. S @SDQUERY@(SDQ,"EOF")=0
  1. S @SDQUERY@(SDQ,"COUNT")=0
  1. K ^TMP("SDQUERY LIST",$J,SDQ)
  1. D NEXT^SDQNAV(.SDQ,$G(SDERR))
  1. STARTQ Q
  1. ;
  1. ;
  1. STOP(SDQRY) ; -- stop query / also called from CREATE^SDQ to set up query
  1. ;
  1. S @SDQUERY@(SDQ,"GLOBAL REF")=""
  1. S @SDQUERY@(SDQ,"CURSOR")=0
  1. S @SDQUERY@(SDQ,"ACTIVE")=0
  1. S @SDQUERY@(SDQ,"MORE")=0
  1. S @SDQUERY@(SDQ,"BOF")=0
  1. S @SDQUERY@(SDQ,"COUNT")=0
  1. K ^TMP("SDQUERY LIST",$J,SDQ)
  1. Q
  1. ;