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

DVBAUDUI2.m

Go to the documentation of this file.
DVBAUDUI2 ;ALB/CP - User Audit Summary Inquiry Print ; 3/27/18 2:28pm
 ;;2.7;AMIE;**256**;;Build 19
 ; Per VHA Directive 6402 this routine should not be modified
 ;        $$UP^XLFSTR          ; IA #10104
 ;
 Q
 ;
PRINT ; Print the report from the sorted ^TMP global
 ; 
 ;
 N @($$PRTVARS^DVBAUDPRT1())
 N DVBC1,DVBC2,DVBC3,DVBC4
 N DVBLC1,DVBLC2,DVBLC3,DVBLC4
 N DVBSORTBY,DVBUSER
 ; ZEXCEPT: DVBCNT,DVBFLAG1,DVBOPTION,DVBPG
 ;
 D PRINTINI
 ;
 ;
 I '$D(^TMP("AMIE",$J,DVBOPTION)) D  G EXIT
 . D PAGEBRK^DVBAUDPRT1($T(+0),.DVBPG,0) Q:DVBQUIT
 . D NODATA^DVBAUDPRT1(2)
 ;
 S DVBUSER=""
 F  S DVBUSER=$O(^TMP("AMIE",$J,DVBOPTION,DVBUSER)) Q:DVBUSER=""!DVBQUIT  D  ;
 . N DVBIEN200
 . S DVBIEN200=0
 . F  S DVBIEN200=$O(^TMP("AMIE",$J,DVBOPTION,DVBUSER,DVBIEN200)) Q:'DVBIEN200!DVBQUIT  D  ;
 .. ; ZEXCEPT: DVBPG,DVBCNT
 .. D PRINTOC(DVBCNT("OPTS")) ; Print the option DVBCOUNT for each user
 .. I DVBPG>0 D CONTINUE^DVBAUDPRT1(2,"Q") Q:DVBQUIT
 .. S (DVBPG,DVBCNT("OPTS"))=0
 .. D PAGEBRK^DVBAUDPRT1($T(+0),.DVBPG,0,1)
 .. N DVBSORT2
 .. S DVBSORT2=""
 .. F  S DVBSORT2=$O(^TMP("AMIE",$J,DVBOPTION,DVBUSER,DVBIEN200,DVBSORT2)) Q:DVBSORT2=""!DVBQUIT  D
 ... N DVBSORT3
 ... S DVBSORT3=""
 ... F  S DVBSORT3=$O(^TMP("AMIE",$J,DVBOPTION,DVBUSER,DVBIEN200,DVBSORT2,DVBSORT3)) Q:DVBSORT3=""!DVBQUIT  D
 .... N DVBIEN19
 .... S DVBIEN19=0
 .... F  S DVBIEN19=$O(^TMP("AMIE",$J,DVBOPTION,DVBUSER,DVBIEN200,DVBSORT2,DVBSORT3,DVBIEN19)) Q:DVBIEN19=""!DVBQUIT  D
 ..... N DVBRPTDATA
 ..... S DVBRPTDATA=^TMP("AMIE",$J,DVBOPTION,DVBUSER,DVBIEN200,DVBSORT2,DVBSORT3,DVBIEN19)
 ..... D PAGEBRK^DVBAUDPRT1($T(+0),.DVBPG,1) Q:DVBQUIT
 ..... W !
 ..... W ?DVBC1,$E($P(DVBRPTDATA,U,1),1,DVBLC1) ; OPTION
 ..... W ?DVBC2,$E($P(DVBRPTDATA,U,2),1,DVBLC2) ; FIRST TIME OPTION USED
 ..... W ?DVBC3,$E($P(DVBRPTDATA,U,3),1,DVBLC3) ; LAST  TIME OPTION USED
 ..... W ?DVBC4,$J($P(DVBRPTDATA,U,4),DVBLC4) ;.. USAGE DVBCOUNT
 ..... S DVBCNT("OPTS")=DVBCNT("OPTS")+1
 Q:DVBQUIT
 D PRINTOC(DVBCNT("OPTS")) ;Print the option DVBCOUNT for each unique user
 Q:DVBQUIT
 ;
EXIT ; Exit print subroutine
 ;
 Q
 ;
PRINTHD ; Print report header
 ;
 N DVBCOL
 ; ZEXCEPT: COORD,IOF,IOM,IOST
 ; ZEXCEPT: IOF,IOM,IOST,L,DVBLASTREF
 ; ZEXCEPT: DVBLC1,DVBLC10,DVBLC11,DVBLC2,DVBLC3,DVBLC4,DVBLC5,DVBLC6,DVBLC7
 ; ZEXCEPT: DVBLIMIT,MGNAME,DVBDT,DVBFLAG1,DVBLINED,DVBLINEE,DVBPG,REFCNT
 ; ZEXCEPT: DVBSORTBY,TYPE,DVBUSER
 ; ZEXCEPT: DVBASKDT,DVBDT,DVBDTBEG,DVBDTEND,DVBLINED,DVBLINEE,DVBOPTION,DVBPG
 ;
 W:$E(IOST,1,2)="C-" @IOF
 S DVBCOL=(IOM-7)-$L(DVBPG) ;...... Calculate page number column position
 D CENTER^DVBAUDPRT1(DVBOPTION) ;.. Report title
 D:$G(DVBUSER)]"" CENTER^DVBAUDPRT1("for "_DVBUSER) ; User name
 ;
 I DVBASKDT="YES" D  ; If report is limited by date range
 . N DVBRANGE
 . S DVBRANGE=DVB2DTBEG("E")_" to "_DVB2DTEND("E")
 . D CENTER^DVBAUDPRT1("DATE LAST AUDITED range: "_DVBRANGE)
 I DVBASKDT="NO" D  ; If report is NOT limited by date range
 . D CENTER^DVBAUDPRT1("NO SPECIFIC LAST AUDIT DATE RANGE LIMIT WAS SPECIFIED")
 ;
 D CENTER^DVBAUDPRT1("Sorted by: "_DVBSORTBY,1) ; Include sorting method
 W !,?DVBC1,DVBDT
 W ?DVBCOL,"PAGE: ",DVBPG ;...... Display page number
 W !,DVBLINEE ;............... Draw a line before displaying column hdr
 ;
PRINTHD1 ; Print column headers
 ;
 W ! ;....................... Column header line 1
 W ?DVBC2,"FIRST"
 W ?DVBC3,"LAST"
 W ?DVBC4,$J("USAGE",DVBLC4)
 ;
 W ! ;....................... Column header line 2
 W ?DVBC1,"OPTION NAME"
 W ?DVBC2,"USED"
 W ?DVBC3,"USED"
 W ?DVBC4,$J("DVBCOUNT",DVBLC4)
 ;
 W ! ;....................... Draw a line under each column header
 W ?DVBC1,$E(DVBLINED,1,DVBLC1)
 W ?DVBC2,$E(DVBLINED,1,DVBLC2)
 W ?DVBC3,$E(DVBLINED,1,DVBLC3)
 W ?DVBC4,$E(DVBLINED,1,DVBLC4)
 ;
 Q  ; Quit PRINTHD & PRINTHD1
 ;
PRINTINI ; Initialize variables, set column positions and length of columns
 ;
 ; ZEXCEPT: DVBC1,C10,C11,DVBC2,DVBC3,DVBC4
 ; ZEXCEPT: DVBLC1,DVBLC10,DVBLC11,DVBLC2,DVBLC3,DVBLC4
 ; ZEXCEPT: DVBCNT,DVBFLAG1,DVBSORT,DVBULIMIT,DVBSORTBY
 ;
 D INITPRT^DVBAUDPRT1
 ; Init DVBCOL pos's & length
 S DVBC1=1,DVBC2=33,DVBC3=49,DVBC4=65
 S DVBLC1=30,DVBLC2=14,DVBLC3=14,DVBLC4=8
 ;
 S DVBSORTBY=$$UP^XLFSTR(DVBSORT)
 I DVBSORTBY="" S DVBSORTBY=$$UP^XLFSTR(DVBSORT(DVBSORT))
 S DVBCNT("OPTS")=0 ; Number of options for a particular user.
 ;
 Q
 ;
PRINTOC(DVBCOUNT) ; Print the Option DVBCOUNT (OC) for each unique User
 ; ZEXCEPT: DVBC1,DVBLC1,DVBLINED
 ;
 Q:DVBCOUNT'>1  ; Will only print when more than 1 Option for the User
 ;
 D PAGEBRK^DVBAUDPRT1($T(+0),.DVBPG,1) Q:DVBQUIT
 W !,?DVBC1,$E(DVBLINED,1,DVBLC1)
 D PAGEBRK^DVBAUDPRT1($T(+0),.DVBPG,1) Q:DVBQUIT
 W !,?DVBC1,$J(DVBCOUNT,DVBLC1) ; Right justify no. of options
 Q