PROGRAM SYRTOP,1.0(001)
!
! SYRTOP.BV - Report Mainline Program for REPORT MODULE: SYRTOP
!
SIGNIFICANCE 11
COPYF "TOPFIL" ! Data File
COPYF "TOPKEY" ! Key File
COPY "RPTMAD" ! RPT work area
COPY "ABSELL"
COPY "FORMAD"
COPY "PRTREC"
COPYF "DBMFIL[SY]" ! Data Base dictionary
COPYF "DBMKEY[SY]"
COPYF "PRTFIL[SY]" ! Printer Control file
COPYF "PRTKEY[SY]"
COPY "USRBUF"
COPYF "PQUFIL[SY]" ! Print Queue file
COPYF "PQUKEY[SY]"
COPYF "PQDFIL[SY]" ! Special Data File
MAP1 FORMID,S,6
MAP1 H'QUE,B,1,60 ! Standard Hold Que
MAP1 P'QUE,B,1,20 ! Standard Process Que
MAP1 NOSEL,B,1 ! Set = to 1 to bypass Selection Sys
MAP1 NOSUM,B,1 ! Set = to 1 to bypass Summary
START'RPT2: ! Multiple Report Entry Point
IF SEL1 # 9
use TOP into TOP'rec key TOP'key
ENDIF
do
IF SEL1 = 9
IF PSKY = PS'NOSL EXIT
READ #1000,PASS'REC
use TOP ps'rcn into TOP'rec
PSKY = PSKY + 1
ELSE
getnxt TOP
IF TOP'CTL = 3 EXIT
ENDIF
GOSUB RPT'DETAIL ! Produce the report
loop
END'RPT:
NORM'END:
GOSUB RPT'END
IF PRTCOD = 1 OR PRTCOD > 3 GOTO END'JOB
IF PRT'EXSPL = "N" GOTO END'JOB
RR1 = rdvf : RR2 = PGECNT
IF RR2 = 0 RR2 = 1
XCALL SPOOL,r,PRT'DEVCD,RR1,RR2,FORMID
END'JOB:
IF SEL1 # 9 GOTO FINAL'END
rdlock dbf ps'wkno
DBF'INUSE = "N"
write dbf
FINAL'END:
IF PRT'CRT = "Y" AND ACTVSW = 1 THEN
CHAIN "DSK0:EXP.CMD[2,2]"
ENDIF
END
ABORT:
ABORT'JOB:
IF ACTVSW # 1 GOTO END'JOB
? TAB(-1,14)
? "Report has been Aborted"
rtnadr = 0
GOSUB RPT'END ! CLOSE OUT
IF PRTCOD = 2 OR PRTCOD = 3 THEN
KILL R'FILENME
ENDIF
GOTO END'JOB