ACRFAUD ;IHS/OIRM/DSD/AEF - PRINT ARMS AUDITS [ 09/23/2005 9:44 AM ]
;;2.1;ADMIN RESOURCE MGT SYSTEM;**19**;NOV 05, 2001
;
DESC ;----- ROUTINE DESCRIPTION
;;
;; This option prints a listing of audits for the specified file
;; during the specified date range. The list includes the audit
;; number, date/time recorded, user, file entry number, file entry
;; name, field number, field name, old value, and new value.
;; FileMan Auditing must be active to generate audit entries for
;; this list.
;;
;;$$END
;
EN ;EP -- MAIN ENTRY POINT
;
N ACRDATES,ACRFILE,ZTSAVE
D ^XBKVAR
D HOME^%ZIS
;
D TXT
;
D FILE(.ACRFILE)
Q:ACRFILE']""
;
D DATES(.ACRDATES)
Q:ACRDATES']""
;
S ZTSAVE("ACRDATES")=""
S ZTSAVE("ACRFILE")=""
D QUE^ACRFUTL("DQ^ACRFAUD",.ZTSAVE,"ARMS AUDIT REPORT")
;
Q
DQ ;EP -- QUEUED JOB ENTRY POINT
;
N ACRPAGE
D HDR(ACRDATES,ACRFILE)
D LOOP(ACRDATES,ACRFILE)
D ^%ZISC
Q
LOOP(ACRDATES,ACRFILE) ;
;----- LOOP THROUGH THE FILE
;
N ACRBEG,ACRCNT,ACRD0,ACRDATE,ACREND,ACRMSG,ACROUT,DIA,DIR,X,Y
S DIA=+$P(ACRFILE,U)
S ACRMSG="NO DATA FOUND"
S ACRBEG=$P(ACRDATES,U)
S ACREND=$P(ACRDATES,U,2)_".999999"
S ACRDATE=ACRBEG-1_".999999"
F S ACRDATE=$O(^DIA(DIA,"C",ACRDATE)) Q:'ACRDATE Q:ACRDATE>ACREND D Q:$G(ACROUT)
. S ACRD0=0
. F S ACRD0=$O(^DIA(DIA,"C",ACRDATE,ACRD0)) Q:'ACRD0 D Q:$G(ACROUT)
. . D PRT(ACRD0,ACRDATES,ACRFILE,.ACROUT)
. . S ACRMSG=""
Q:$G(ACROUT)
W !?5,ACRMSG
W !
I $E($G(IOST))="C" S DIR(0)="E" D ^DIR
Q
PRT(ACRD0,ACRDATES,ACRFILE,ACROUT) ;
;----- PRINT THE DATA
;
N DIA,ACRDATA,ACRDATE,ACRENT,ACRENTN,ACRFLD,ACRFLDN,ACRNEW,ACROLD,ACRUSER,X,Y
S ACRCNT=$G(ACRCNT)+1
I $E($G(IOST))="C",ACRCNT>2 D
. D HDR(ACRDATES,ACRFILE,.ACROUT)
. S ACRCNT=1
I $E($G(IOST))="P",ACRCNT>6 D
. D HDR(ACRDATES,ACRFILE,.ACROUT)
. S ACRCNT=1
Q:$G(ACROUT)
S DIA=+$P(ACRFILE,U)
S ACRDATA=^DIA(DIA,ACRD0,0)
S ACRENT=$P(ACRDATA,U)
S ACRENTN=$$ENTNAM(DIA,ACRD0)
S Y=$P(ACRDATA,U,2)
X ^DD("DD")
S ACRDATE=Y
S ACRFLD=$P(ACRDATA,U,3)
S ACRFLDN=$$FLDNAM(DIA,ACRD0)
S ACRUSER=$P(ACRDATA,U,4)
;I ACRUSER S ACRUSER=$P(^VA(200,ACRUSER,0),U) ;ACR*2.1*19.02 IM16848
I ACRUSER S ACRUSER=$$NAME2^ACRFUTL1(ACRUSER) ;ACR*2.1*19.02 IM16848
S ACROLD=$$OLD(DIA,ACRD0)
S ACRNEW=$$NEW(DIA,ACRD0)
;
W !!
W "AUDIT #: "
W ACRD0
W ?40,"DATE/TIME RECORDED: "
W ACRDATE
W !
W "USER: "
W ACRUSER
W !
W "FILE ENTRY #: "
W ACRENT
W ?40,"FILE ENTRY NAME: "
W ACRENTN
W !
W "FIELD #: "
W ACRFLD
W ?40,"FIELD NAME: "
W ACRFLDN
W !
W "OLD VALUE: "
W ACROLD
W !
W "NEW VALUE: "
W ACRNEW
Q
HDR(ACRDATES,ACRFILE,ACROUT) ;
;
N DIR,I,X,Y
I $E($G(IOST))="C",$G(ACRPAGE) D Q:$G(ACROUT)
. S DIR(0)="E"
. D ^DIR
. I 'Y S ACROUT=1
S ACRPAGE=$G(ACRPAGE)+1
W @IOF
W !,"AUDIT LISTING OF "_$P(ACRFILE,U,2)_" FILE"
W ?IOM-20,$$NOW^ACRFUTL
S Y=$P(ACRDATES,U)
X ^DD("DD")
W !,"FROM "_Y
S Y=$P(ACRDATES,U,2)
X ^DD("DD")
W " TO "_Y
W ?IOM-20,"PAGE: ",ACRPAGE
W !
F I=1:1:IOM W "-"
W !
Q
FILE(ACRFILE) ;
;----- ASK WHICH FILE
;
N DIC,DTOUT,DUOUT,X,Y
S ACRFILE=""
S DIC="^DIC("
S DIC(0)="AEMQ"
D ^DIC
Q:$D(DTOUT)!($D(DUOUT))
Q:+Y'>0
S ACRFILE=Y
Q
DATES(ACRDATES) ;
;----- ASK DATE RANGE
;
DLOOP ;----- DATE LOOP
;
N ACRBEG,ACREND,DIR,DIRUT,DTOUT,DUOUT,X,Y
S ACRDATES=""
W !
S DIR(0)="DO^::E"
S DIR("A")="Begin with AUDIT DATE"
S DIR("?")="The first date in the audit date range"
D ^DIR
Q:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))
Q:Y=""
S ACRBEG=Y
S DIR("A")="End with AUDIT DATE"
S DIR("?")="The last date in the audit date range"
D ^DIR
Q:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))
Q:Y=""
S ACREND=Y
I ACREND<ACRBEG D G DLOOP
. W *7,!?5,"ENDING DATE cannot be less than BEGINNING DATE"
S ACRDATES=ACRBEG_U_ACREND
Q
ENTNAM(DIA,D0) ;
;----- EXTRINSIC FUNCTION - GET EXTERNAL FILE ENTRY NAME
;
; INPUT:
; DIA = FILE NUMBER
; D0 = INTERNAL NUMBER OF AUDIT ENTRY
;
; RETURNS EXTERNAL ENTRY NAME
;
N %,C,X,Y
Q:'$D(^DIA(DIA,D0))
S %=^DIC(DIA,0,"GL")
S X=^DIA(DIA,D0,0)
S X=$S($D(@(%_+X_",0)")):$P(^(0),U),1:"")
S C=$S($D(^DD(DIA,.01,0)):$P(^(0),U,2),1:"")
S Y=X
D:Y]"" Y^DIQ:C]""
S X=Y
Q X
;
FLDNAM(DIA,D0) ;
;----- EXTRINSIC FUNCTION - GET FIELD NAME
;
; INPUT:
; DIA = FILE NUMBER
; D0 = INTERNAL NUMBER OF AUDIT ENTRY
;
; RETURNS EXTERNAL FIELD NAME
;
N X,Y
S Y(1.1,1.1)=$S($D(^DIA(DIA,D0,0)):$P(^(0),U,3),1:"")
X ^DD(1.1,1.1,9.2)
K Y(1.1)
S X=$E(X,1,$L(X)-1)
Q X
;
OLD(DIA,D0) ;
;----- EXTRINSIC FUNCTION - GET OLD VALUE
;
; INPUT:
; DIA = FILE NUMBER
; D0 = INTERNAL NUMBER OF AUDIT ENTRY
;
; RETURNS OLD VALUE OF AUDIT FIELD
;
N X
S X=$S($D(^DIA(DIA,D0,2)):^(2),1:"<no previous value>")
Q X
;
NEW(DIA,D0) ;
;----- EXTRINSIC FUNCTION - GET NEW VALUE
;
; INPUT:
; DIA = FILE NUMBER
; D0 = INTERNAL NUMBER OF AUDIT ENTRY
;
; RETURNS NEW VALUE OF AUDIT FIELD
;
N X
S X=$S($D(^DIA(DIA,D0,3)):^(3),1:"<deleted>")
Q X
;
TXT ;----- PRINT OPTION DESCRIPTION
;
N I,X
F I=1:1 S X=$P($T(DESC+I),";",3) Q:X["$$END" W !,X
Q
ONE ;EP -- DISPLAY AUDIT TRAIL FOR ONE ENTRY
;
N ACRFILE,DA,DIC,X,Y,ZTSAVE
;
D FILE(.ACRFILE)
Q:ACRFILE']""
S DIC=^DIC(+ACRFILE,0,"GL")
;
D ENTRY(DIC,.Y)
Q:+Y'>0
S DA=+Y
;
S ZTSAVE("DIC")=""
S ZTSAVE("DA")=""
S ZTSAVE("ACRFILE")=""
D QUE^ACRFUTL("DQ1^ACRFAUD",.ZTSAVE,"ARMS AUDIT REPORT")
Q
DQ1 ;EP -- QUEUED REPORT STARTS HERE
;
N ACRPAGE
D HDR1(ACRFILE,DA,.ACROUT)
D DIQ(DIC,DA)
D ^%ZISC
Q
ENTRY(DIC,Y) ;
;----- LOOK UP FILE ENTRY
;
S DIC(0)="AEMQ"
D ^DIC
Q
DIQ(DIC,DA) ;
;----- CALL EN^DIQ TO DISPLAY THE ENTRY
;
S DIQ(0)="ACR"
D EN^DIQ
Q
HDR1(ACRFILE,DA,ACROUT) ;
;----- PRINT HEADER FOR ONE ENTRY AUDIT REPORT
;
N ACRENT,DIR,I,X,Y
I $E($G(IOST))="C",$G(ACRPAGE) D Q:$G(ACROUT)
. S DIR(0)="E"
. D ^DIR
. I 'Y S ACROUT=1
S ACRPAGE=$G(ACRPAGE)+1
W @IOF
W !,"AUDIT LISTING OF ",$P(ACRFILE,U,2)," FILE ENTRY "
W ?IOM-20,$$NOW^ACRFUTL
W !?IOM-20,"PAGE: ",ACRPAGE
W !
F I=1:1:IOM W "-"
W !
Q
ACRFAUD ;IHS/OIRM/DSD/AEF - PRINT ARMS AUDITS [ 09/23/2005 9:44 AM ]
+1 ;;2.1;ADMIN RESOURCE MGT SYSTEM;**19**;NOV 05, 2001
+2 ;
DESC ;----- ROUTINE DESCRIPTION
+1 ;;
+2 ;; This option prints a listing of audits for the specified file
+3 ;; during the specified date range. The list includes the audit
+4 ;; number, date/time recorded, user, file entry number, file entry
+5 ;; name, field number, field name, old value, and new value.
+6 ;; FileMan Auditing must be active to generate audit entries for
+7 ;; this list.
+8 ;;
+9 ;;$$END
+10 ;
EN ;EP -- MAIN ENTRY POINT
+1 ;
+2 NEW ACRDATES,ACRFILE,ZTSAVE
+3 DO ^XBKVAR
+4 DO HOME^%ZIS
+5 ;
+6 DO TXT
+7 ;
+8 DO FILE(.ACRFILE)
+9 IF ACRFILE']""
QUIT
+10 ;
+11 DO DATES(.ACRDATES)
+12 IF ACRDATES']""
QUIT
+13 ;
+14 SET ZTSAVE("ACRDATES")=""
+15 SET ZTSAVE("ACRFILE")=""
+16 DO QUE^ACRFUTL("DQ^ACRFAUD",.ZTSAVE,"ARMS AUDIT REPORT")
+17 ;
+18 QUIT
DQ ;EP -- QUEUED JOB ENTRY POINT
+1 ;
+2 NEW ACRPAGE
+3 DO HDR(ACRDATES,ACRFILE)
+4 DO LOOP(ACRDATES,ACRFILE)
+5 DO ^%ZISC
+6 QUIT
LOOP(ACRDATES,ACRFILE) ;
+1 ;----- LOOP THROUGH THE FILE
+2 ;
+3 NEW ACRBEG,ACRCNT,ACRD0,ACRDATE,ACREND,ACRMSG,ACROUT,DIA,DIR,X,Y
+4 SET DIA=+$PIECE(ACRFILE,U)
+5 SET ACRMSG="NO DATA FOUND"
+6 SET ACRBEG=$PIECE(ACRDATES,U)
+7 SET ACREND=$PIECE(ACRDATES,U,2)_".999999"
+8 SET ACRDATE=ACRBEG-1_".999999"
+9 FOR
SET ACRDATE=$ORDER(^DIA(DIA,"C",ACRDATE))
IF 'ACRDATE
QUIT
IF ACRDATE>ACREND
QUIT
Begin DoDot:1
+10 SET ACRD0=0
+11 FOR
SET ACRD0=$ORDER(^DIA(DIA,"C",ACRDATE,ACRD0))
IF 'ACRD0
QUIT
Begin DoDot:2
+12 DO PRT(ACRD0,ACRDATES,ACRFILE,.ACROUT)
+13 SET ACRMSG=""
End DoDot:2
IF $GET(ACROUT)
QUIT
End DoDot:1
IF $GET(ACROUT)
QUIT
+14 IF $GET(ACROUT)
QUIT
+15 WRITE !?5,ACRMSG
+16 WRITE !
+17 IF $EXTRACT($GET(IOST))="C"
SET DIR(0)="E"
DO ^DIR
+18 QUIT
PRT(ACRD0,ACRDATES,ACRFILE,ACROUT) ;
+1 ;----- PRINT THE DATA
+2 ;
+3 NEW DIA,ACRDATA,ACRDATE,ACRENT,ACRENTN,ACRFLD,ACRFLDN,ACRNEW,ACROLD,ACRUSER,X,Y
+4 SET ACRCNT=$GET(ACRCNT)+1
+5 IF $EXTRACT($GET(IOST))="C"
IF ACRCNT>2
Begin DoDot:1
+6 DO HDR(ACRDATES,ACRFILE,.ACROUT)
+7 SET ACRCNT=1
End DoDot:1
+8 IF $EXTRACT($GET(IOST))="P"
IF ACRCNT>6
Begin DoDot:1
+9 DO HDR(ACRDATES,ACRFILE,.ACROUT)
+10 SET ACRCNT=1
End DoDot:1
+11 IF $GET(ACROUT)
QUIT
+12 SET DIA=+$PIECE(ACRFILE,U)
+13 SET ACRDATA=^DIA(DIA,ACRD0,0)
+14 SET ACRENT=$PIECE(ACRDATA,U)
+15 SET ACRENTN=$$ENTNAM(DIA,ACRD0)
+16 SET Y=$PIECE(ACRDATA,U,2)
+17 XECUTE ^DD("DD")
+18 SET ACRDATE=Y
+19 SET ACRFLD=$PIECE(ACRDATA,U,3)
+20 SET ACRFLDN=$$FLDNAM(DIA,ACRD0)
+21 SET ACRUSER=$PIECE(ACRDATA,U,4)
+22 ;I ACRUSER S ACRUSER=$P(^VA(200,ACRUSER,0),U) ;ACR*2.1*19.02 IM16848
+23 ;ACR*2.1*19.02 IM16848
IF ACRUSER
SET ACRUSER=$$NAME2^ACRFUTL1(ACRUSER)
+24 SET ACROLD=$$OLD(DIA,ACRD0)
+25 SET ACRNEW=$$NEW(DIA,ACRD0)
+26 ;
+27 WRITE !!
+28 WRITE "AUDIT #: "
+29 WRITE ACRD0
+30 WRITE ?40,"DATE/TIME RECORDED: "
+31 WRITE ACRDATE
+32 WRITE !
+33 WRITE "USER: "
+34 WRITE ACRUSER
+35 WRITE !
+36 WRITE "FILE ENTRY #: "
+37 WRITE ACRENT
+38 WRITE ?40,"FILE ENTRY NAME: "
+39 WRITE ACRENTN
+40 WRITE !
+41 WRITE "FIELD #: "
+42 WRITE ACRFLD
+43 WRITE ?40,"FIELD NAME: "
+44 WRITE ACRFLDN
+45 WRITE !
+46 WRITE "OLD VALUE: "
+47 WRITE ACROLD
+48 WRITE !
+49 WRITE "NEW VALUE: "
+50 WRITE ACRNEW
+51 QUIT
HDR(ACRDATES,ACRFILE,ACROUT) ;
+1 ;
+2 NEW DIR,I,X,Y
+3 IF $EXTRACT($GET(IOST))="C"
IF $GET(ACRPAGE)
Begin DoDot:1
+4 SET DIR(0)="E"
+5 DO ^DIR
+6 IF 'Y
SET ACROUT=1
End DoDot:1
IF $GET(ACROUT)
QUIT
+7 SET ACRPAGE=$GET(ACRPAGE)+1
+8 WRITE @IOF
+9 WRITE !,"AUDIT LISTING OF "_$PIECE(ACRFILE,U,2)_" FILE"
+10 WRITE ?IOM-20,$$NOW^ACRFUTL
+11 SET Y=$PIECE(ACRDATES,U)
+12 XECUTE ^DD("DD")
+13 WRITE !,"FROM "_Y
+14 SET Y=$PIECE(ACRDATES,U,2)
+15 XECUTE ^DD("DD")
+16 WRITE " TO "_Y
+17 WRITE ?IOM-20,"PAGE: ",ACRPAGE
+18 WRITE !
+19 FOR I=1:1:IOM
WRITE "-"
+20 WRITE !
+21 QUIT
FILE(ACRFILE) ;
+1 ;----- ASK WHICH FILE
+2 ;
+3 NEW DIC,DTOUT,DUOUT,X,Y
+4 SET ACRFILE=""
+5 SET DIC="^DIC("
+6 SET DIC(0)="AEMQ"
+7 DO ^DIC
+8 IF $DATA(DTOUT)!($DATA(DUOUT))
QUIT
+9 IF +Y'>0
QUIT
+10 SET ACRFILE=Y
+11 QUIT
DATES(ACRDATES) ;
+1 ;----- ASK DATE RANGE
+2 ;
DLOOP ;----- DATE LOOP
+1 ;
+2 NEW ACRBEG,ACREND,DIR,DIRUT,DTOUT,DUOUT,X,Y
+3 SET ACRDATES=""
+4 WRITE !
+5 SET DIR(0)="DO^::E"
+6 SET DIR("A")="Begin with AUDIT DATE"
+7 SET DIR("?")="The first date in the audit date range"
+8 DO ^DIR
+9 IF $DATA(DTOUT)!($DATA(DUOUT))!($DATA(DIRUT))
QUIT
+10 IF Y=""
QUIT
+11 SET ACRBEG=Y
+12 SET DIR("A")="End with AUDIT DATE"
+13 SET DIR("?")="The last date in the audit date range"
+14 DO ^DIR
+15 IF $DATA(DTOUT)!($DATA(DUOUT))!($DATA(DIRUT))
QUIT
+16 IF Y=""
QUIT
+17 SET ACREND=Y
+18 IF ACREND<ACRBEG
Begin DoDot:1
+19 WRITE *7,!?5,"ENDING DATE cannot be less than BEGINNING DATE"
End DoDot:1
GOTO DLOOP
+20 SET ACRDATES=ACRBEG_U_ACREND
+21 QUIT
ENTNAM(DIA,D0) ;
+1 ;----- EXTRINSIC FUNCTION - GET EXTERNAL FILE ENTRY NAME
+2 ;
+3 ; INPUT:
+4 ; DIA = FILE NUMBER
+5 ; D0 = INTERNAL NUMBER OF AUDIT ENTRY
+6 ;
+7 ; RETURNS EXTERNAL ENTRY NAME
+8 ;
+9 NEW %,C,X,Y
+10 IF '$DATA(^DIA(DIA,D0))
QUIT
+11 SET %=^DIC(DIA,0,"GL")
+12 SET X=^DIA(DIA,D0,0)
+13 SET X=$SELECT($DATA(@(%_+X_",0)")):$PIECE(^(0),U),1:"")
+14 SET C=$SELECT($DATA(^DD(DIA,.01,0)):$PIECE(^(0),U,2),1:"")
+15 SET Y=X
+16 IF Y]""
IF C]""
DO Y^DIQ
+17 SET X=Y
+18 QUIT X
+19 ;
FLDNAM(DIA,D0) ;
+1 ;----- EXTRINSIC FUNCTION - GET FIELD NAME
+2 ;
+3 ; INPUT:
+4 ; DIA = FILE NUMBER
+5 ; D0 = INTERNAL NUMBER OF AUDIT ENTRY
+6 ;
+7 ; RETURNS EXTERNAL FIELD NAME
+8 ;
+9 NEW X,Y
+10 SET Y(1.1,1.1)=$SELECT($DATA(^DIA(DIA,D0,0)):$PIECE(^(0),U,3),1:"")
+11 XECUTE ^DD(1.1,1.1,9.2)
+12 KILL Y(1.1)
+13 SET X=$EXTRACT(X,1,$LENGTH(X)-1)
+14 QUIT X
+15 ;
OLD(DIA,D0) ;
+1 ;----- EXTRINSIC FUNCTION - GET OLD VALUE
+2 ;
+3 ; INPUT:
+4 ; DIA = FILE NUMBER
+5 ; D0 = INTERNAL NUMBER OF AUDIT ENTRY
+6 ;
+7 ; RETURNS OLD VALUE OF AUDIT FIELD
+8 ;
+9 NEW X
+10 SET X=$SELECT($DATA(^DIA(DIA,D0,2)):^(2),1:"<no previous value>")
+11 QUIT X
+12 ;
NEW(DIA,D0) ;
+1 ;----- EXTRINSIC FUNCTION - GET NEW VALUE
+2 ;
+3 ; INPUT:
+4 ; DIA = FILE NUMBER
+5 ; D0 = INTERNAL NUMBER OF AUDIT ENTRY
+6 ;
+7 ; RETURNS NEW VALUE OF AUDIT FIELD
+8 ;
+9 NEW X
+10 SET X=$SELECT($DATA(^DIA(DIA,D0,3)):^(3),1:"<deleted>")
+11 QUIT X
+12 ;
TXT ;----- PRINT OPTION DESCRIPTION
+1 ;
+2 NEW I,X
+3 FOR I=1:1
SET X=$PIECE($TEXT(DESC+I),";",3)
IF X["$$END"
QUIT
WRITE !,X
+4 QUIT
ONE ;EP -- DISPLAY AUDIT TRAIL FOR ONE ENTRY
+1 ;
+2 NEW ACRFILE,DA,DIC,X,Y,ZTSAVE
+3 ;
+4 DO FILE(.ACRFILE)
+5 IF ACRFILE']""
QUIT
+6 SET DIC=^DIC(+ACRFILE,0,"GL")
+7 ;
+8 DO ENTRY(DIC,.Y)
+9 IF +Y'>0
QUIT
+10 SET DA=+Y
+11 ;
+12 SET ZTSAVE("DIC")=""
+13 SET ZTSAVE("DA")=""
+14 SET ZTSAVE("ACRFILE")=""
+15 DO QUE^ACRFUTL("DQ1^ACRFAUD",.ZTSAVE,"ARMS AUDIT REPORT")
+16 QUIT
DQ1 ;EP -- QUEUED REPORT STARTS HERE
+1 ;
+2 NEW ACRPAGE
+3 DO HDR1(ACRFILE,DA,.ACROUT)
+4 DO DIQ(DIC,DA)
+5 DO ^%ZISC
+6 QUIT
ENTRY(DIC,Y) ;
+1 ;----- LOOK UP FILE ENTRY
+2 ;
+3 SET DIC(0)="AEMQ"
+4 DO ^DIC
+5 QUIT
DIQ(DIC,DA) ;
+1 ;----- CALL EN^DIQ TO DISPLAY THE ENTRY
+2 ;
+3 SET DIQ(0)="ACR"
+4 DO EN^DIQ
+5 QUIT
HDR1(ACRFILE,DA,ACROUT) ;
+1 ;----- PRINT HEADER FOR ONE ENTRY AUDIT REPORT
+2 ;
+3 NEW ACRENT,DIR,I,X,Y
+4 IF $EXTRACT($GET(IOST))="C"
IF $GET(ACRPAGE)
Begin DoDot:1
+5 SET DIR(0)="E"
+6 DO ^DIR
+7 IF 'Y
SET ACROUT=1
End DoDot:1
IF $GET(ACROUT)
QUIT
+8 SET ACRPAGE=$GET(ACRPAGE)+1
+9 WRITE @IOF
+10 WRITE !,"AUDIT LISTING OF ",$PIECE(ACRFILE,U,2)," FILE ENTRY "
+11 WRITE ?IOM-20,$$NOW^ACRFUTL
+12 WRITE !?IOM-20,"PAGE: ",ACRPAGE
+13 WRITE !
+14 FOR I=1:1:IOM
WRITE "-"
+15 WRITE !
+16 QUIT