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

SDQNAV.m

Go to the documentation of this file.
  1. SDQNAV ;ALB/MJK - Query Object Navigation Methods ;8/12/96
  1. ;;5.3;Scheduling;**131**;Aug 13, 1993
  1. ;
  1. SCAN(SDQ,SDIR,SDERR) ; -- scan all records
  1. ; API ID: 99
  1. ; API NAME: SDQ SCAN
  1. ;
  1. SCANG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G SCANQ
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) G SCANQ
  1. IF '$$SCAN^SDQVAL(.SDQ,$G(SDERR)) G SCANQ
  1. ;
  1. N SDSCAN
  1. S SDSCAN=$G(@SDQUERY@(SDQ,"SCAN"))
  1. IF SDSCAN]"" X SDSCAN
  1. SCANQ Q
  1. ;
  1. ;
  1. SCANCB(SDQ,SDCB,SDACT,SDERR) ; -- set/get scan callback method
  1. ; API ID: 100
  1. ; API NAME: SDQ SCAN CALLBACK
  1. ;
  1. SCANCBG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G SCANCBQ
  1. IF '$$ACTION^SDQVAL(.SDACT,$G(SDERR)) G SCANCBQ
  1. ;
  1. IF SDACT="SET" D
  1. . IF '$$QRYINACT^SDQVAL(.SDQ,$G(SDERR)) Q
  1. . IF '$$SCANCB^SDQVAL(.SDCB,$G(SDERR)) Q
  1. . S @SDQUERY@(SDQ,"SCAN APP CALLBACK")=SDCB
  1. ;
  1. IF SDACT="GET" S SDCB=$G(@SDQUERY@(SDQ,"SCAN APP CALLBACK"),"QUIT")
  1. SCANCBQ Q
  1. ;
  1. ;
  1. NEXT(SDQ,SDERR) ; -- get next global ref
  1. ; API ID: 92
  1. ; API NAME: SDQ NEXT
  1. ;
  1. NEXTG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G NEXTQ
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) G NEXTQ
  1. IF $G(@SDQUERY@(SDQ,"EOF")) D BLD^SDQVAL(4096800.111,"","",$G(SDERR)) G NEXTQ
  1. ;
  1. N SDNEXT
  1. S SDNEXT=$O(^TMP("SDQUERY LIST",$J,SDQ,+$G(@SDQUERY@(SDQ,"CURSOR"))),1)
  1. ;
  1. IF SDNEXT D G NEXTQ
  1. . S @SDQUERY@(SDQ,"CURSOR")=SDNEXT
  1. . S @SDQUERY@(SDQ,"BOF")=0
  1. . S @SDQUERY@(SDQ,"EOF")=0
  1. ;
  1. ; -- get initial ref value and also save for compares
  1. N SDGREF,SDSAVE
  1. S (SDGREF,SDSAVE)=$G(@SDQUERY@(SDQ,"GLOBAL REF"))
  1. D CHECK(.SDQ,.SDGREF,.SDSAVE)
  1. ;
  1. IF SDGREF'="" D G NEXTQ
  1. . S @SDQUERY@(SDQ,"GLOBAL REF")=SDGREF
  1. . S SDCNT=+$G(@SDQUERY@(SDQ,"COUNT"))
  1. . S SDCNT=SDCNT+1
  1. . S @SDQUERY@(SDQ,"COUNT")=SDCNT
  1. . S @SDQUERY@(SDQ,"CURSOR")=SDCNT
  1. . S ^TMP("SDQUERY LIST",$J,SDQ,SDCNT)=SDGREF
  1. . S @SDQUERY@(SDQ,"MORE")=1
  1. . S @SDQUERY@(SDQ,"BOF")=0
  1. . S @SDQUERY@(SDQ,"EOF")=0
  1. ELSE D
  1. . S @SDQUERY@(SDQ,"MORE")=0
  1. . S @SDQUERY@(SDQ,"EOF")=1
  1. NEXTQ Q
  1. ;
  1. ;
  1. CHECK(SDQ,SDGREF,SDSAVE) ; -- check if ok
  1. N SDFIL,SDVAL
  1. S SDFIL=$G(@SDQUERY@(SDQ,"FILTER"))
  1. S SDVAL=$G(@SDQUERY@(SDQ,"VALIDATOR"))
  1. ;
  1. F S SDGREF=$Q(@SDSAVE) Q:SDGREF="" X SDVAL Q:SDGREF="" D Q:SDGREF'=""
  1. . S SDSAVE=SDGREF
  1. . IF SDFIL="" Q
  1. . IF '$$FILTER(.SDQ,.SDGREF,.SDFIL) S SDGREF=""
  1. Q
  1. ;
  1. FILTER(SDQ,SDGREF,SDFIL) ; -- perform filter logic
  1. N Y,Y0,SDNODE,SDSUB,SDZERO
  1. S SDSUB=+$G(@SDQUERY@(SDQ,"IEN SUBSCRIPT"))
  1. S SDZERO=$G(^TMP("SDQUERY CLASS",$J,SDQ,"ZERO"))
  1. S Y=$QS(SDGREF,SDSUB)
  1. IF SDZERO]"" D
  1. . X SDZERO
  1. ELSE D
  1. . S SDNODE=$G(^TMP("SDQUERY CLASS",$J,SDQ,"GL"))_Y_",0)"
  1. . S Y0=$G(@SDNODE)
  1. X SDFIL
  1. Q $T
  1. ;
  1. ;
  1. PRIOR(SDQ,SDERR) ; -- get prior global ref
  1. ; API ID: 93
  1. ; API NAME: SDQ PRIOR
  1. ;
  1. PRIORG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G PRIORQ
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) G PRIORQ
  1. IF $G(@SDQUERY@(SDQ,"BOF")) D BLD^SDQVAL(4096800.11,"","",$G(SDERR)) G PRIORQ
  1. ;
  1. N SDCUR,SDPRIOR
  1. S SDCUR=+$G(@SDQUERY@(SDQ,"CURSOR"))
  1. S SDPRIOR=$O(^TMP("SDQUERY LIST",$J,SDQ,SDCUR),-1)
  1. ;
  1. IF SDPRIOR D G PRIORQ
  1. . S @SDQUERY@(SDQ,"CURSOR")=SDPRIOR
  1. . S @SDQUERY@(SDQ,"BOF")=0
  1. . S @SDQUERY@(SDQ,"EOF")=0
  1. ELSE D
  1. . S @SDQUERY@(SDQ,"BOF")=1
  1. PRIORQ Q
  1. ;
  1. ;
  1. FIRST(SDQ,SDERR) ; -- get first entry
  1. ; API ID: 90
  1. ; API NAME: SDQ FIRST
  1. ;
  1. FIRSTG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G FIRSTQ
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) G FIRSTQ
  1. ;
  1. S @SDQUERY@(SDQ,"CURSOR")=+$O(^TMP("SDQUERY LIST",$J,SDQ,0),1)
  1. S @SDQUERY@(SDQ,"BOF")=1
  1. S @SDQUERY@(SDQ,"EOF")=(@SDQUERY@(SDQ,"CURSOR")=0)
  1. FIRSTQ Q
  1. ;
  1. ;
  1. LAST(SDQ,SDERR) ; -- get last entry
  1. ; API ID: 91
  1. ; API NAME: SDQ LAST
  1. ;
  1. LASTG ; -- goto entry point
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) G LASTQ
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) G LASTQ
  1. ;
  1. IF $G(@SDQUERY@(SDQ,"MORE")) D GETREST(.SDQ,$G(SDERR))
  1. S @SDQUERY@(SDQ,"CURSOR")=+$O(^TMP("SDQUERY LIST",$J,SDQ,""),-1)
  1. S @SDQUERY@(SDQ,"BOF")=(@SDQUERY@(SDQ,"CURSOR")=0)
  1. S @SDQUERY@(SDQ,"EOF")=1
  1. LASTQ Q
  1. ;
  1. ;
  1. EOF(SDQ,SDERR) ; -- at end of file
  1. ; API ID: 86
  1. ; API NAME: SDQ EOF
  1. ;
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) Q 0
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) Q 0
  1. ;
  1. EOFQ Q $G(@SDQUERY@(SDQ,"EOF"))
  1. ;
  1. ;
  1. BOF(SDQ,SDERR) ; -- at beginning of file
  1. ; API ID: 87
  1. ; API NAME: SDQ BOF
  1. ;
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) Q 0
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) Q 0
  1. ;
  1. BOFQ Q $G(@SDQUERY@(SDQ,"BOF"))
  1. ;
  1. ;
  1. COUNT(SDQ,SDERR) ; -- get entries count
  1. ; API ID: 89
  1. ; API NAME: SDQ COUNT
  1. ;
  1. ; -- do validation checks
  1. IF '$$QRY^SDQVAL(.SDQ,$G(SDERR)) Q ""
  1. IF '$$QRYACT^SDQVAL(.SDQ,$G(SDERR)) Q ""
  1. ;
  1. IF $G(@SDQUERY@(SDQ,"MORE")) D GETREST(.SDQ,$G(SDERR))
  1. Q +$G(@SDQUERY@(SDQ,"COUNT"))
  1. ;
  1. ;
  1. GETREST(SDQ,SDERR) ; -- get rest of entries
  1. ;
  1. F Q:'$G(@SDQUERY@(SDQ,"MORE")) D NEXT(.SDQ,$G(SDERR))
  1. Q
  1. ;