Dialog REPTEDIT executes at the beginning of the application. REPTEDIT reads database records required for the report, sets up report lines, and passes control to other dialogs, as required by the application. REPTEDIT also writes department and report total lines to the report file.
The dialog definition for REPTEDIT is illustrated below:

The premap process and mapout operation are shown below.
Dialog DEPTEDIT: Premap Process
!**********************************************************************
!*EMPL-REPT-EDIT *
!**********************************************************************
IF FIRST-TIME
DO.
MOVE DATE TO WK-DATE-HOLD. !*SET UP CURRENT DATE
CALL CVRTDATE.
MOVE WK-DATE-WORK TO WK-CURR-DATE.
CALL PAGHDR. !*SET UP FIRST PAGE.
OBTAIN FIRST DEPARTMENT WITHIN ORG-DEMO-REGION.
END.
ELSE
OBTAIN NEXT DEPARTMENT WITHIN ORG-DEMO-REGION.
IF DB-ANY-ERROR
DO.
!
!*************************************************
!*-SET UP GRAND TOTAL EMPLOYEE COUNT LINE TO LOOK*
!* AS FOLLOWS: *
! TOTAL EMPLOYEES ALL DEPARTMENTS: ZZZ9 *
!*************************************************
MOVE SPACES TO CENTER.
MOVE INSERT(CENTER,'TOTAL EMPLOYEES ALL DEPARTMENTS: ',68)
TO CENTER.
MOVE WK-TOT-EE-COUNT TO WK-DEPT-EE-COUNT.
CALL TOTEDIT.
WRITE TO LOG MSG TEXT 'END OF EMPLOYEE REPORT RUN'.
WRITE TRANSACTION RETURN. !*LAST TOTAL LINE AND LEAVE APPL
END.
!
!
MOVE DEPT-ID-0410 TO WK-DEPT-PRINT. !*SET UP CURRENT DEPARTMENT ID
IF WK-LINE-NBR GE 52 !*CHECK FOR PAGE BREAK ...
CALL PAGHDR. !*... AND START NEW PAGE IF NEEDED
LINK NOSAVE TO 'DEPTHDR'. !*PUT OUT DEPARTMENT HEADER
LINK NOSAVE TO 'COLMHDR'. !*PUT OUT COLUMN HEADER
MOVE '0' TO DTL-CTRL-CHAR. !*DOUBLE SPACE NEXT DETAIL
OBTAIN FIRST EMPLOYEE WITHIN DEPT-EMPLOYEE.
!
WHILE NOT DB-END-OF-SET
REPEAT.
MOVE EMP-ID-0415 TO DTL-EMP-ID. !*EDIT ONE EMPLOYEE ... DETAIL LINE
MOVE EMP-LAST-NAME-0415 TO DTL-LAST-NAME.
MOVE EMP-FIRST-NAME-0415 TO DTL-FIRST-NAME.
MOVE 'UNK' TO DTL-STAT-CODE.
IF ACTIVE-0415
MOVE 'ACT' TO DTL-STAT-CODE.
IF ST-DISABIL-0415
MOVE 'STD' TO DTL-STAT-CODE.
IF LT-DISABIL-0415
MOVE 'LTD' TO DTL-STAT-CODE.
IF LEAVE-OF-ABSENCE-0415
MOVE 'LOA' TO DTL-STAT-CODE.
IF TERMINATED-0415
MOVE 'TRM' TO DTL-STAT-CODE.
MOVE SS-NUMBER-0415 TO DTL-SS-NBR.
MOVE START-DATE-0415 TO WK-DATE-HOLD.
CALL CVRTDATE.
MOVE WK-DATE-WORK TO DTL-START-DATE.
MOVE TERMINATION-DATE-0415 TO WK-DATE-HOLD.
CALL CVRTDATE.
MOVE WK-DATE-WORK TO DTL-TERM-DATE.
IF WK-LINE-NBR GE 58 !*PAGE BREAK?
DO.
CALL PAGHDR. !*PUT OUT PAGE HEADERS
LINK NOSAVE TO 'COLMHDR'. !*AND COLUMN HEADER
MOVE '0' TO DTL-CTRL-CHAR. !*DOUBLE SPACE NEXT DETAIL
END.
LINK NOSAVE TO 'DLINEOUT'. !*PUT OUT A DETAIL LINE
ADD 1 TO WK-DEPT-EE-COUNT. !*PLUS 1 TO EMPLOYEE COUNT
MOVE SPACE TO DTL-CTRL-CHAR. !*SINGLE SPACE NEXT DETAIL
OBTAIN NEXT EMPLOYEE WITHIN DEPT-EMPLOYEE.
END.
!
!
!*************************************************
!*-SET UP DEPARTMENT TOTAL EMPLOYEE COUNT LINE TO*
!* LOOK AS FOLLOWS: *
! DEPARTMENT XXXX TOTAL EMPLOYEES: ZZZ9 *
!*************************************************
MOVE CONCATENATE('DEPARTMENT ',WK-DEPT-PRINT,' TOTAL EMPLOYEES:')
TO WK-HDG.
MOVE SPACES TO CENTER.
MOVE INSERT(CENTER,SUBSTRING(WK-HDG,1,32),68) TO CENTER.
CALL TOTEDIT.
ADD WK-DEPT-EE-COUNT TO WK-TOT-EE-COUNT.!*ROLL DEPT INTO GRAND TOTAL
MOVE 0 TO WK-DEPT-EE-COUNT. !*INIT DEPT TOTAL
ADD 2 TO WK-LINE-NBR. !*INCREASE LINE COUNT
WRITE TRANSACTION CONTINUE. !*OUTPUT DEPT TOTAL LINE
!
!
!*************************************************
!*SUBROUTINE TO EDIT AN EMPLOYEE COUNT TOTAL LINE*
!*************************************************
DEFINE TOTEDIT.
MOVE LEFT-JUSTIFY(WK-DEPT-EE-COUNT) TO RIGHT.
MOVE SPACES TO LEFT.
MOVE '0' TO CTRL-CHAR. !*DOUBLE SPACE IT
GOBACK.
!
!
!*************************************************
!*SUBROUTINE TO PUT OUT PAGE HEADER LINES *
!*************************************************
DEFINE PAGHDR.
MOVE 0 TO WK-LINE-NBR. !*RESET LINE COUNTER
ADD 1 TO WK-PAGE-NBR. !*INCREASE PAGE NUMBER
MOVE WK-PAGE-NBR TO WK-PAGE-PRINT. !*SET IT UP TO PRINT
MOVE '1' TO CTRL-CHAR. !*NEW PAGE
MOVE ' FCI0001' TO LEFT. !*REPORT ID
MOVE 'FICTIONAL COMPANY, INC. ' !*COMPANY NAME
TO WK-HDG.
CALL CENTJUST. !*GO CENTER IT
MOVE ' DATE PAGE' TO RIGHT. !*DATE/PAGE HEADERS
LINK NOSAVE TO 'HDRLINE'. !*OUTPUT 1ST HEADER LINE
MOVE SPACES TO CTRL-CHAR. !*SINGLE SPACE
MOVE SPACES TO LEFT.
MOVE 'EMPLOYEE LISTING BY DEPARTMENT' !*REPORT TITLE
TO WK-HDG.
CALL CENTJUST. !*GO CENTER IT
MOVE CONCATENATE(' ',WK-CURR-DATE,' ',WK-PAGE-PRINT) TO RIGHT.
LINK NOSAVE TO 'HDRLINE'.
GOBACK.
!
!
!*************************************************
!*SUBROUTINE TO CENTER JUSTIFY HEADER TITLES *
!*************************************************
DEFINE CENTJUST.
MOVE STRING-LENGTH(EXTRACE(WK-HDG)) TO WK-LENGTH.
COMPUTE WK-START-POS TRUNCATED = ((100 - WK-LENGTH) / 2 + 1.
MOVE SPACES TO CENTER.
MOVE INSERT(CENTER,EXTRACT(WK-HDG),WK-START-POS) TO CENTER.
GOBACK.
!
!
!*************************************************
!*SUBROUTINE TO CONVERT A DATE FROM YYMMDD TO *
!*MM/DD/YY *
!*************************************************
DEFINE CVRTDATE.
MOVE SUBSTRING(WK-DATE-X,3,2) TO WK-MO.
MOVE SUBSTRING(WK-DATE-X,5,2) TO WK-DAY.
MOVE SUBSTRING(WK-DATE-X,1,2) TO WK-YR.
GOBACK.
Dialog REPTEDIT: Mapout Operation
Internal field External field CTRL-CHAR......................>CTRL-CHAR LEFT...........................>LEFT CENTER.........................>CENTER RIGHT..........................>RIGHT
|
Copyright © 2013 CA.
All rights reserved.
|
|