📄 rptdd705
字号:
PIC X(22).
05 FILLER PIC X(2) VALUE SPACE.
05 HRD-L8-INVE-VOUCHER-NO PIC X(12).
05 HRD-L8R-INVE-VOUCHER-NO REDEFINES
HRD-L8-INVE-VOUCHER-NO PIC X(12).
*
******************************
* SPECIAL CONSTANT *
******************************
03 HRD-REPORT-NAME.
05 FILLER PIC X VALUE X'0E'.
05 FILLER PIC X(2) VALUE X'5C74'.
05 FILLER PIC X(2) VALUE X'4BAE'.
05 FILLER PIC X(2) VALUE X'5C4A'.
05 FILLER PIC X(2) VALUE X'4AE5'.
05 FILLER PIC X(2) VALUE X'58A0'.
05 FILLER PIC X(2) VALUE X'4BED'.
05 FILLER PIC X(2) VALUE X'4985'.
05 FILLER PIC X(2) VALUE X'4AF2'.
05 FILLER PIC X(2) VALUE X'4BED'.
05 FILLER PIC X(2) VALUE X'56E0'.
05 FILLER PIC X(2) VALUE X'55BD'.
05 FILLER PIC X(2) VALUE X'498E'.
05 FILLER PIC X VALUE X'0F'.
03 HRD-REPORT-NAME-LINE.
05 FILLER PIC X(10) VALUE '=========='.
05 FILLER PIC X(10) VALUE '=========='.
05 FILLER PIC X(8) VALUE '========'.
03 HRD-REPORT-ID.
05 FILLER PIC X(7) VALUE 'DEPD705'.
03 HRD-FREQUENCY.
05 FILLER PIC X VALUE X'0E'.
05 FILLER PIC X(2) VALUE X'54D4'.
05 FILLER PIC X VALUE X'0F'.
*
******************************
* COMMON RTN VARIABLES *
******************************
03 HRD-CR-ERROR-TYPE PIC X.
88 HRD-CR-ERR-OPEN-FIN VALUE '0'.
88 HRD-CR-ERR-OPEN-FOUT VALUE '1'.
88 HRD-CR-ERR-READ-FIN VALUE '2'.
88 HRD-CR-ERR-WRITE-FOUT VALUE '3'.
88 HRD-CR-ERR-G-ARR-FULL VALUE '4'.
88 HRD-CR-ERR-CALL-JPRM VALUE '5'.
88 HRD-CR-ERR-CALL-RBDT VALUE '6'.
03 HRD-CR-BR PIC X(5).
03 HRD-CR-BR-NAME PIC X(60).
03 HRD-CR-UPORG PIC X(5).
03 HRD-CR-AC-DATE PIC X(8).
*
******************************
LINKAGE SECTION.
******************************
*
******************************
* JUSTIFY VARIABLES *
******************************
01 HRD-JUST-STR PIC X(999).
01 FILLER REDEFINES HRD-JUST-STR.
03 HRD-JUST-ARRAY OCCURS 999 PIC X.
******************************
PROCEDURE DIVISION.
******************************
*
HRD-MAIN.
PERFORM HRD-INIT THRU
HRD-INIT-EXIT
PERFORM UNTIL HRD-EOF
PERFORM HRD-GET-DATA THRU
HRD-GET-DATA-EXIT
PERFORM HRD-PROCESS THRU
HRD-PROCESS-EXIT
END-PERFORM
IF NOT HRD-EMPTY THEN
MOVE 0 TO HRD-KEY-BREAK
PERFORM HRD-OUTPUT-TOTAL THRU
HRD-OUTPUT-TOTAL-EXIT
END-IF
PERFORM HRD-CLOSE THRU
HRD-CLOSE-EXIT
.
HRD-MAIN-EXIT.
EXIT.
*
HRD-INIT.
DISPLAY CUST-PGM-NAME ' PROCESS START.'
PERFORM CR-GET-AC-DATE THRU
CR-GET-AC-DATE-EXIT
MOVE -1 TO HRD-LC
SET HRD-NEW-PAGE TO TRUE
SET HRD-EMPTY TO TRUE
MOVE 'N' TO HRD-BROKEN-DETAIL
OPEN INPUT FIN
EVALUATE WS-FIN-STS
WHEN FSTS-NORMAL
SET HRD-FIN-OPENED TO TRUE
WHEN OTHER
SET HRD-CR-ERR-OPEN-FIN TO TRUE
PERFORM CR-ERROR THRU
CR-ERROR-EXIT
END-EVALUATE
OPEN OUTPUT FOUT
EVALUATE WS-FOUT-STS
WHEN FSTS-NORMAL
SET HRD-FOUT-OPENED TO TRUE
WHEN OTHER
SET HRD-CR-ERR-OPEN-FOUT TO TRUE
PERFORM CR-ERROR THRU
CR-ERROR-EXIT
END-EVALUATE
PERFORM CUST-INIT THRU
CUST-INIT-EXIT
.
HRD-INIT-EXIT.
EXIT.
HRD-GET-DATA.
READ FIN NEXT
EVALUATE WS-FIN-STS
WHEN FSTS-NORMAL
CONTINUE
WHEN FSTS-ENDFILE
SET HRD-EOF TO TRUE
WHEN OTHER
SET HRD-CR-ERR-READ-FIN TO TRUE
PERFORM CR-ERROR THRU
CR-ERROR-EXIT
END-EVALUATE
MOVE FIN-BR TO HRD-NEXT-BR
MOVE FIN-CCY-CODE TO HRD-NEXT-CCY-CODE
MOVE FIN-CUSVAA-NAME TO HRD-NEXT-CUSVAA-NAME
MOVE FIN-INVE-VOUCHER-NO TO HRD-NEXT-INVE-VOUCHER-NO
MOVE FIN-INVM-CURR-BAL TO HRD-NEXT-INVM-CURR-BAL
MOVE FIN-INVT-SEQUENCE-NO TO
HRD-NEXT-INVT-SEQUENCE-NO
MOVE FIN-INVT-VOLUME-NO TO HRD-NEXT-INVT-VOLUME-NO
MOVE FIN-INVV-ACCT-NO TO HRD-NEXT-INVV-ACCT-NO
.
HRD-GET-DATA-EXIT.
EXIT.
*
HRD-PROCESS.
IF HRD-EOF THEN
GO TO HRD-PROCESS-EXIT
END-IF
PERFORM HRD-GET-KEY-BREAK THRU
HRD-GET-KEY-BREAK-EXIT
IF HRD-KEY-BREAK NOT = 99 THEN
IF NOT HRD-EMPTY THEN
PERFORM HRD-OUTPUT-TOTAL THRU
HRD-OUTPUT-TOTAL-EXIT
END-IF
PERFORM HRD-COPY-DATA THRU
HRD-COPY-DATA-EXIT
PERFORM HRD-OUTPUT-HEADER THRU
HRD-OUTPUT-HEADER-EXIT
ELSE
PERFORM HRD-COPY-DATA THRU
HRD-COPY-DATA-EXIT
END-IF
INITIALIZE HRD-EMPTY-FLG
PERFORM HRD-OUTPUT-DATA THRU
HRD-OUTPUT-DATA-EXIT
PERFORM HRD-ADD-SUM THRU
HRD-ADD-SUM-EXIT
.
HRD-PROCESS-EXIT.
EXIT.
*
HRD-CLOSE.
DISPLAY CUST-PGM-NAME ' END SUCCESSFULLY.'
PERFORM CR-PGM-EXIT THRU
CR-PGM-EXIT-EXIT
.
HRD-CLOSE-EXIT.
EXIT.
*
HRD-GET-KEY-BREAK.
IF HRD-EMPTY THEN
MOVE 0 TO HRD-KEY-BREAK
GO TO HRD-GET-KEY-BREAK-EXIT
END-IF
IF HRD-THIS-BR NOT = HRD-NEXT-BR THEN
MOVE 0 TO HRD-KEY-BREAK
GO TO HRD-GET-KEY-BREAK-EXIT
END-IF
IF HRD-THIS-CCY-CODE NOT = HRD-NEXT-CCY-CODE THEN
MOVE 1 TO HRD-KEY-BREAK
GO TO HRD-GET-KEY-BREAK-EXIT
END-IF
MOVE 99 TO HRD-KEY-BREAK
.
HRD-GET-KEY-BREAK-EXIT.
EXIT.
*
HRD-COPY-DATA.
MOVE HRD-THIS-BR TO HRD-LAST-BR
MOVE HRD-NEXT-BR TO HRD-THIS-BR
MOVE HRD-THIS-CCY-CODE TO HRD-LAST-CCY-CODE
MOVE HRD-NEXT-CCY-CODE TO HRD-THIS-CCY-CODE
MOVE HRD-THIS-CUSVAA-NAME TO HRD-LAST-CUSVAA-NAME
MOVE HRD-NEXT-CUSVAA-NAME TO HRD-THIS-CUSVAA-NAME
MOVE HRD-THIS-INVE-VOUCHER-NO TO HRD-LAST-INVE-VOUCHER-NO
MOVE HRD-NEXT-INVE-VOUCHER-NO TO HRD-THIS-INVE-VOUCHER-NO
MOVE HRD-THIS-INVM-CURR-BAL TO HRD-LAST-INVM-CURR-BAL
MOVE HRD-NEXT-INVM-CURR-BAL TO HRD-THIS-INVM-CURR-BAL
MOVE HRD-THIS-INVT-SEQUENCE-NO TO
HRD-LAST-INVT-SEQUENCE-NO
MOVE HRD-NEXT-INVT-SEQUENCE-NO TO
HRD-THIS-INVT-SEQUENCE-NO
MOVE HRD-THIS-INVT-VOLUME-NO TO HRD-LAST-INVT-VOLUME-NO
MOVE HRD-NEXT-INVT-VOLUME-NO TO HRD-THIS-INVT-VOLUME-NO
MOVE HRD-THIS-INVV-ACCT-NO TO HRD-LAST-INVV-ACCT-NO
MOVE HRD-NEXT-INVV-ACCT-NO TO HRD-THIS-INVV-ACCT-NO
.
HRD-COPY-DATA-EXIT.
EXIT.
*
HRD-ADD-SUM.
.
HRD-ADD-SUM-EXIT.
EXIT.
*
HRD-OUTPUT-HEADER.
IF HRD-KEY-BREAK < 2 THEN
PERFORM HRD-TURN-PAGE THRU
HRD-TURN-PAGE-EXIT
END-IF
IF HRD-KEY-BREAK <= 0 THEN
MOVE 1 TO HRD-PAGE-NO-1
END-IF
IF HRD-KEY-BREAK <= 1 THEN
CONTINUE
END-IF
IF HRD-KEY-BREAK = 0 THEN
MOVE HRD-THIS-BR TO HRD-CR-BR
PERFORM CR-GET-BR-INFO THRU
CR-GET-BR-INFO-EXIT
END-IF
IF HRD-KEY-BREAK <= 0 THEN
MOVE HRD-THIS-BR TO HRD-C-IDX-BR
MOVE HRD-CR-UPORG TO HRD-C-IDX-UPORG
MOVE HRD-REPORT-ID TO HRD-C-IDX-RPT-ID
MOVE HRD-CR-AC-DATE TO HRD-C-IDX-AC-DATE
MOVE 1 TO HRD-STICK
MOVE 0 TO HRD-FILLTO
MOVE 0 TO HRD-KEY-INDEX
PERFORM CUST-EDIT-HEADER THRU
CUST-EDIT-HEADER-EXIT
PERFORM HRD-CHECK-SUBTOTAL THRU
HRD-CHECK-SUBTOTAL-EXIT
MOVE HRD-C-IDX-AC-DATE TO HRD-L0-IDX-AC-DATE
MOVE HRD-C-IDX-BR TO HRD-L0-IDX-BR
MOVE HRD-C-IDX-RPT-ID TO HRD-L0-IDX-RPT-ID
MOVE HRD-C-IDX-UPORG TO HRD-L0-IDX-UPORG
MOVE HRD-L0 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
END-IF
IF HRD-KEY-BREAK <= 1 THEN
MOVE HRD-REPORT-ID TO HRD-C-RPT-ID
MOVE HRD-REPORT-NAME TO HRD-C-RPT-NAME
MOVE HRD-REPORT-NAME-LINE TO HRD-C-RPT-NAME-LINE
MOVE HRD-CR-BR-NAME TO HRD-C-BR-NAME
MOVE HRD-CR-AC-DATE TO HRD-C-AC-DATE
MOVE HRD-THIS-CCY-CODE(4 :) TO HRD-C-CCY
MOVE HRD-PAGE-NO-1 TO HRD-C-PAGE
MOVE 7 TO HRD-STICK
MOVE 0 TO HRD-FILLTO
MOVE 1 TO HRD-KEY-INDEX
PERFORM CUST-EDIT-HEADER THRU
CUST-EDIT-HEADER-EXIT
PERFORM HRD-CHECK-SUBTOTAL THRU
HRD-CHECK-SUBTOTAL-EXIT
MOVE HRD-THIS-BR TO HRD-L1-BR
MOVE HRD-C-RPT-ID TO HRD-L1-RPT-ID
MOVE HRD-L1 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
MOVE HRD-C-RPT-NAME TO HRD-L2-RPT-NAME
* CALL 'SCSSGADR' USING HRD-L2-RPT-NAME, HRD-JUST-ADDR
MOVE LENGTH OF HRD-L2-RPT-NAME TO HRD-JUST-LEN
PERFORM CR-CENTER-JUSTIFY THRU
CR-CENTER-JUSTIFY-EXIT
MOVE HRD-L2 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
MOVE HRD-C-RPT-NAME-LINE TO HRD-L3-RPT-NAME-LINE
* CALL 'SCSSGADR' USING HRD-L3-RPT-NAME-LINE,
* HRD-JUST-ADDR
MOVE LENGTH OF HRD-L3-RPT-NAME-LINE TO HRD-JUST-LEN
PERFORM CR-CENTER-JUSTIFY THRU
CR-CENTER-JUSTIFY-EXIT
MOVE HRD-L3 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
MOVE HRD-C-AC-DATE TO HRD-L5-AC-DATE
MOVE HRD-C-BR-NAME TO HRD-L5-BR-NAME
MOVE HRD-C-CCY TO HRD-L5-CCY
MOVE HRD-C-PAGE TO HRD-L5-PAGE
MOVE HRD-L5 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
MOVE HRD-L6 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
MOVE HRD-L7 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
END-IF
.
HRD-OUTPUT-HEADER-EXIT.
EXIT.
*
HRD-OUTPUT-DATA.
MOVE 'X' TO HRD-BROKEN-DETAIL
MOVE 1 TO HRD-STICK
MOVE 0 TO HRD-FILLTO
PERFORM CUST-EDIT-DATA THRU
CUST-EDIT-DATA-EXIT
PERFORM HRD-CHECK-SUBTOTAL THRU
HRD-CHECK-SUBTOTAL-EXIT
MOVE HRD-THIS-CUSVAA-NAME TO HRD-L8-CUSVAA-NAME
MOVE HRD-THIS-INVE-VOUCHER-NO TO HRD-L8-INVE-VOUCHER-NO
MOVE HRD-THIS-INVM-CURR-BAL TO HRD-L8-INVM-CURR-BAL
MOVE HRD-THIS-INVT-SEQUENCE-NO TO HRD-L8-INVT-SEQUENCE-NO
MOVE HRD-THIS-INVT-VOLUME-NO TO HRD-L8-INVT-VOLUME-NO
MOVE HRD-THIS-INVV-ACCT-NO TO HRD-L8-INVV-ACCT-NO
MOVE HRD-L8 TO FOUT-LINE
PERFORM CR-WRITE-LINE THRU
CR-WRITE-LINE-EXIT
MOVE 'N' TO HRD-BROKEN-DETAIL
.
HRD-OUTPUT-DATA-EXIT.
EXIT.
*
HRD-OUTPUT-TOTAL.
IF HRD-KEY-BREAK <= 1 THEN
MOVE 0 TO HRD-STICK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -