COBOL RD represents comprehensive report definition mechanisms and sophisticated automated report generation capabilities within professional documentation environments, providing intelligent report structure specifications for advanced formatting control, enhanced layout management features for complex business reporting workflows, and systematic report organization patterns that enable precise document formatting, optimal page layout control, and strategic report hierarchy management while maintaining formatting consistency, ensuring professional presentation standards, and enabling flexible reporting architectures across enterprise applications requiring exact document structure, comprehensive report automation, and reliable formatting control throughout sophisticated business documentation scenarios and professional report generation environments.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219*> Basic RD (Report Description) structure and usage IDENTIFICATION DIVISION. PROGRAM-ID. RD-DEMONSTRATION. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT SALES-INPUT-FILE ASSIGN TO "sales.dat" ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-INPUT-STATUS. SELECT SALES-REPORT-FILE ASSIGN TO "sales-report.txt" ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-REPORT-STATUS. DATA DIVISION. FILE SECTION. *> Input file for report data FD SALES-INPUT-FILE. 01 SALES-RECORD. 05 SALES-REGION PIC X(10). 05 SALES-DISTRICT PIC X(8). 05 SALES-EMPLOYEE PIC X(20). 05 SALES-PRODUCT PIC X(15). 05 SALES-AMOUNT PIC S9(7)V99 COMP-3. 05 SALES-DATE PIC 9(8). 05 SALES-COMMISSION PIC S9(5)V99 COMP-3. *> Report file definition FD SALES-REPORT-FILE REPORT IS SALES-SUMMARY-REPORT. *> Report Description (RD) - defines report structure REPORT SECTION. RD SALES-SUMMARY-REPORT CONTROLS ARE FINAL SALES-REGION SALES-DISTRICT PAGE LIMIT IS 60 LINES HEADING 1 FIRST DETAIL 8 LAST DETAIL 55 FOOTING 58. *> Report group definitions 01 TYPE IS REPORT HEADING. 05 LINE NUMBER IS 1. 10 COLUMN NUMBER IS 30 PIC X(25) VALUE "SALES SUMMARY REPORT". 05 LINE NUMBER IS 2. 10 COLUMN NUMBER IS 35 PIC X(15) VALUE "Monthly Analysis". 05 LINE NUMBER IS 4. 10 COLUMN NUMBER IS 1 PIC X(10) VALUE "Region". 10 COLUMN NUMBER IS 15 PIC X(12) VALUE "District". 10 COLUMN NUMBER IS 30 PIC X(20) VALUE "Employee". 10 COLUMN NUMBER IS 55 PIC X(12) VALUE "Sales Amount". 10 COLUMN NUMBER IS 70 PIC X(10) VALUE "Commission". 01 TYPE IS PAGE HEADING. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 1 PIC X(4) VALUE "Page". 10 COLUMN NUMBER IS 6 PIC ZZ9 SOURCE IS PAGE-COUNTER. 10 COLUMN NUMBER IS 70 PIC X(5) VALUE "Date:". 10 COLUMN NUMBER IS 76 PIC 99/99/99 SOURCE IS FUNCTION CURRENT-DATE(1:6). 01 REGION-CONTROL-HEADER TYPE IS CONTROL HEADING SALES-REGION. 05 LINE NUMBER IS PLUS 2. 10 COLUMN NUMBER IS 1 PIC X(8) VALUE "REGION: ". 10 COLUMN NUMBER IS 10 PIC X(10) SOURCE IS SALES-REGION. 01 DISTRICT-CONTROL-HEADER TYPE IS CONTROL HEADING SALES-DISTRICT. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 5 PIC X(10) VALUE "District: ". 10 COLUMN NUMBER IS 16 PIC X(8) SOURCE IS SALES-DISTRICT. 01 DETAIL-LINE TYPE IS DETAIL. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 1 PIC X(10) SOURCE IS SALES-REGION. 10 COLUMN NUMBER IS 15 PIC X(8) SOURCE IS SALES-DISTRICT. 10 COLUMN NUMBER IS 25 PIC X(20) SOURCE IS SALES-EMPLOYEE. 10 COLUMN NUMBER IS 50 PIC $$,$$$,$$9.99 SOURCE IS SALES-AMOUNT. 10 COLUMN NUMBER IS 65 PIC $$$,$$9.99 SOURCE IS SALES-COMMISSION. 01 DISTRICT-CONTROL-FOOTER TYPE IS CONTROL FOOTING SALES-DISTRICT. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 16 PIC X(18) VALUE "District Subtotal:". 10 COLUMN NUMBER IS 50 PIC $$,$$$,$$9.99 SUM OF SALES-AMOUNT. 10 COLUMN NUMBER IS 65 PIC $$$,$$9.99 SUM OF SALES-COMMISSION. 01 REGION-CONTROL-FOOTER TYPE IS CONTROL FOOTING SALES-REGION. 05 LINE NUMBER IS PLUS 2. 10 COLUMN NUMBER IS 10 PIC X(16) VALUE "Region Subtotal:". 10 COLUMN NUMBER IS 50 PIC $$,$$$,$$9.99 SUM OF SALES-AMOUNT. 10 COLUMN NUMBER IS 65 PIC $$$,$$9.99 SUM OF SALES-COMMISSION. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 10 PIC X(50) VALUE ALL "-". 01 REPORT-FOOTER TYPE IS REPORT FOOTING. 05 LINE NUMBER IS PLUS 3. 10 COLUMN NUMBER IS 25 PIC X(12) VALUE "GRAND TOTAL:". 10 COLUMN NUMBER IS 50 PIC $$,$$$,$$9.99 SUM OF SALES-AMOUNT. 10 COLUMN NUMBER IS 65 PIC $$$,$$9.99 SUM OF SALES-COMMISSION. 05 LINE NUMBER IS PLUS 2. 10 COLUMN NUMBER IS 30 PIC X(20) VALUE "END OF REPORT". WORKING-STORAGE SECTION. 01 WS-FILE-STATUS. 05 WS-INPUT-STATUS PIC XX. 05 WS-REPORT-STATUS PIC XX. 01 WS-CONTROL-FLAGS. 05 WS-END-OF-FILE PIC X VALUE 'N'. 05 WS-FIRST-RECORD PIC X VALUE 'Y'. 05 WS-RECORD-COUNT PIC 9(6) VALUE 0. PROCEDURE DIVISION. MAIN-REPORT-PROCESSING. DISPLAY "=== RD REPORT GENERATION DEMONSTRATION ===" PERFORM OPEN-FILES PERFORM INITIALIZE-REPORT PERFORM PROCESS-SALES-DATA PERFORM TERMINATE-REPORT PERFORM CLOSE-FILES DISPLAY "=== RD REPORT COMPLETE ===" STOP RUN. OPEN-FILES. DISPLAY " " DISPLAY "📂 OPENING FILES" DISPLAY "===============" OPEN INPUT SALES-INPUT-FILE IF WS-INPUT-STATUS NOT = "00" DISPLAY "❌ Error opening input file: " WS-INPUT-STATUS STOP RUN ELSE DISPLAY "✅ Sales input file opened" END-IF OPEN OUTPUT SALES-REPORT-FILE IF WS-REPORT-STATUS NOT = "00" DISPLAY "❌ Error opening report file: " WS-REPORT-STATUS STOP RUN ELSE DISPLAY "✅ Sales report file opened" END-IF. INITIALIZE-REPORT. DISPLAY " " DISPLAY "🎯 INITIALIZING REPORT" DISPLAY "=====================" INITIATE SALES-SUMMARY-REPORT DISPLAY "✅ Sales summary report initiated". PROCESS-SALES-DATA. DISPLAY " " DISPLAY "📊 PROCESSING SALES DATA" DISPLAY "=======================" PERFORM READ-SALES-RECORD PERFORM UNTIL WS-END-OF-FILE = 'Y' ADD 1 TO WS-RECORD-COUNT *> Generate detail line using RD structure GENERATE DETAIL-LINE PERFORM READ-SALES-RECORD END-PERFORM DISPLAY "✅ Processed " WS-RECORD-COUNT " sales records". READ-SALES-RECORD. READ SALES-INPUT-FILE AT END MOVE 'Y' TO WS-END-OF-FILE NOT AT END IF WS-FIRST-RECORD = 'Y' DISPLAY "✅ First record read: " SALES-EMPLOYEE MOVE 'N' TO WS-FIRST-RECORD END-IF END-READ. TERMINATE-REPORT. DISPLAY " " DISPLAY "🏁 TERMINATING REPORT" DISPLAY "=====================" TERMINATE SALES-SUMMARY-REPORT DISPLAY "✅ Sales summary report terminated". CLOSE-FILES. DISPLAY " " DISPLAY "🔒 CLOSING FILES" DISPLAY "===============" CLOSE SALES-INPUT-FILE IF WS-INPUT-STATUS NOT = "00" DISPLAY "❌ Error closing input file: " WS-INPUT-STATUS ELSE DISPLAY "✅ Sales input file closed" END-IF CLOSE SALES-REPORT-FILE IF WS-REPORT-STATUS NOT = "00" DISPLAY "❌ Error closing report file: " WS-REPORT-STATUS ELSE DISPLAY "✅ Sales report file closed" END-IF.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344*> Advanced RD features for complex business reports IDENTIFICATION DIVISION. PROGRAM-ID. ADVANCED-RD-FEATURES. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FINANCIAL-INPUT-FILE ASSIGN TO "financial.dat" ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-INPUT-STATUS. SELECT FINANCIAL-REPORT-FILE ASSIGN TO "financial-report.txt" ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-REPORT-STATUS. DATA DIVISION. FILE SECTION. FD FINANCIAL-INPUT-FILE. 01 FINANCIAL-RECORD. 05 DEPT-CODE PIC X(5). 05 DEPT-NAME PIC X(25). 05 COST-CENTER PIC X(8). 05 ACCOUNT-CODE PIC X(10). 05 ACCOUNT-NAME PIC X(30). 05 TRANS-TYPE PIC X(2). 05 TRANS-AMOUNT PIC S9(9)V99 COMP-3. 05 BUDGET-AMOUNT PIC S9(9)V99 COMP-3. 05 VARIANCE-AMOUNT PIC S9(9)V99 COMP-3. 05 TRANS-DATE PIC 9(8). 05 PERIOD-CODE PIC X(6). FD FINANCIAL-REPORT-FILE REPORT IS FINANCIAL-ANALYSIS-REPORT VARIANCE-SUMMARY-REPORT. REPORT SECTION. *> Complex RD with multiple control levels RD FINANCIAL-ANALYSIS-REPORT CONTROLS ARE FINAL DEPT-CODE COST-CENTER ACCOUNT-CODE PAGE LIMIT IS 66 LINES HEADING 1 FIRST DETAIL 12 LAST DETAIL 58 FOOTING 61. *> Report Header with company information 01 COMPANY-HEADER TYPE IS REPORT HEADING. 05 LINE NUMBER IS 1. 10 COLUMN NUMBER IS 35 PIC X(30) VALUE "ACME CORPORATION". 05 LINE NUMBER IS 2. 10 COLUMN NUMBER IS 30 PIC X(40) VALUE "FINANCIAL ANALYSIS REPORT". 05 LINE NUMBER IS 3. 10 COLUMN NUMBER IS 35 PIC X(30) VALUE "Budget vs Actual Analysis". 05 LINE NUMBER IS 5. 10 COLUMN NUMBER IS 50 PIC X(15) VALUE "Report Period: ". 10 COLUMN NUMBER IS 66 PIC X(6) SOURCE IS PERIOD-CODE. 05 LINE NUMBER IS 6. 10 COLUMN NUMBER IS 50 PIC X(15) VALUE "Generated on: ". 10 COLUMN NUMBER IS 66 PIC 99/99/9999 SOURCE IS FUNCTION CURRENT-DATE(1:8). *> Enhanced Page Header with totals 01 PAGE-HEADER TYPE IS PAGE HEADING. 05 LINE NUMBER IS 1. 10 COLUMN NUMBER IS 1 PIC X(20) VALUE "Financial Analysis". 10 COLUMN NUMBER IS 60 PIC X(5) VALUE "Page ". 10 COLUMN NUMBER IS 66 PIC ZZ9 SOURCE IS PAGE-COUNTER. 05 LINE NUMBER IS 3. 10 COLUMN NUMBER IS 1 PIC X(5) VALUE "Dept". 10 COLUMN NUMBER IS 8 PIC X(8) VALUE "Cost Ctr". 10 COLUMN NUMBER IS 18 PIC X(10) VALUE "Account". 10 COLUMN NUMBER IS 30 PIC X(20) VALUE "Description". 10 COLUMN NUMBER IS 52 PIC X(12) VALUE "Actual". 10 COLUMN NUMBER IS 66 PIC X(12) VALUE "Budget". 10 COLUMN NUMBER IS 80 PIC X(12) VALUE "Variance". 10 COLUMN NUMBER IS 94 PIC X(8) VALUE "Variance%". 05 LINE NUMBER IS 4. 10 COLUMN NUMBER IS 1 PIC X(102) VALUE ALL "-". *> Department Control Header 01 DEPT-CONTROL-HEADER TYPE IS CONTROL HEADING DEPT-CODE. 05 LINE NUMBER IS PLUS 2. 10 COLUMN NUMBER IS 1 PIC X(12) VALUE "DEPARTMENT: ". 10 COLUMN NUMBER IS 14 PIC X(5) SOURCE IS DEPT-CODE. 10 COLUMN NUMBER IS 21 PIC X(25) SOURCE IS DEPT-NAME. *> Cost Center Control Header 01 COST-CENTER-HEADER TYPE IS CONTROL HEADING COST-CENTER. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 5 PIC X(13) VALUE "Cost Center: ". 10 COLUMN NUMBER IS 19 PIC X(8) SOURCE IS COST-CENTER. *> Account Control Header 01 ACCOUNT-HEADER TYPE IS CONTROL HEADING ACCOUNT-CODE. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 10 PIC X(9) VALUE "Account: ". 10 COLUMN NUMBER IS 20 PIC X(10) SOURCE IS ACCOUNT-CODE. 10 COLUMN NUMBER IS 32 PIC X(30) SOURCE IS ACCOUNT-NAME. *> Detail Line with calculations 01 FINANCIAL-DETAIL TYPE IS DETAIL. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 1 PIC X(5) SOURCE IS DEPT-CODE. 10 COLUMN NUMBER IS 8 PIC X(8) SOURCE IS COST-CENTER. 10 COLUMN NUMBER IS 18 PIC X(10) SOURCE IS ACCOUNT-CODE. 10 COLUMN NUMBER IS 30 PIC X(20) SOURCE IS ACCOUNT-NAME. 10 COLUMN NUMBER IS 50 PIC $$$,$$$,$$9.99 SOURCE IS TRANS-AMOUNT. 10 COLUMN NUMBER IS 64 PIC $$$,$$$,$$9.99 SOURCE IS BUDGET-AMOUNT. 10 COLUMN NUMBER IS 78 PIC +$$,$$$,$$9.99 SOURCE IS VARIANCE-AMOUNT. 10 COLUMN NUMBER IS 94 PIC +ZZ9.9% SOURCE IS VARIANCE-PERCENT. *> Account Control Footer with subtotals 01 ACCOUNT-FOOTER TYPE IS CONTROL FOOTING ACCOUNT-CODE. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 20 PIC X(20) VALUE "Account Subtotal:". 10 COLUMN NUMBER IS 50 PIC $$$,$$$,$$9.99 SUM OF TRANS-AMOUNT. 10 COLUMN NUMBER IS 64 PIC $$$,$$$,$$9.99 SUM OF BUDGET-AMOUNT. 10 COLUMN NUMBER IS 78 PIC +$$,$$$,$$9.99 SUM OF VARIANCE-AMOUNT. *> Cost Center Control Footer 01 COST-CENTER-FOOTER TYPE IS CONTROL FOOTING COST-CENTER. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 19 PIC X(21) VALUE "Cost Center Subtotal:". 10 COLUMN NUMBER IS 50 PIC $$$,$$$,$$9.99 SUM OF TRANS-AMOUNT. 10 COLUMN NUMBER IS 64 PIC $$$,$$$,$$9.99 SUM OF BUDGET-AMOUNT. 10 COLUMN NUMBER IS 78 PIC +$$,$$$,$$9.99 SUM OF VARIANCE-AMOUNT. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 19 PIC X(83) VALUE ALL "=". *> Department Control Footer 01 DEPT-FOOTER TYPE IS CONTROL FOOTING DEPT-CODE. 05 LINE NUMBER IS PLUS 2. 10 COLUMN NUMBER IS 14 PIC X(25) VALUE "DEPARTMENT TOTAL:". 10 COLUMN NUMBER IS 50 PIC $$$,$$$,$$9.99 SUM OF TRANS-AMOUNT. 10 COLUMN NUMBER IS 64 PIC $$$,$$$,$$9.99 SUM OF BUDGET-AMOUNT. 10 COLUMN NUMBER IS 78 PIC +$$,$$$,$$9.99 SUM OF VARIANCE-AMOUNT. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 14 PIC X(88) VALUE ALL "*". *> Report Footer with grand totals 01 REPORT-GRAND-TOTAL TYPE IS REPORT FOOTING. 05 LINE NUMBER IS PLUS 3. 10 COLUMN NUMBER IS 30 PIC X(18) VALUE "GRAND TOTAL:". 10 COLUMN NUMBER IS 50 PIC $$$,$$$,$$9.99 SUM OF TRANS-AMOUNT. 10 COLUMN NUMBER IS 64 PIC $$$,$$$,$$9.99 SUM OF BUDGET-AMOUNT. 10 COLUMN NUMBER IS 78 PIC +$$,$$$,$$9.99 SUM OF VARIANCE-AMOUNT. 05 LINE NUMBER IS PLUS 2. 10 COLUMN NUMBER IS 30 PIC X(30) VALUE "END OF FINANCIAL ANALYSIS". *> Second RD for variance summary RD VARIANCE-SUMMARY-REPORT CONTROLS ARE FINAL DEPT-CODE PAGE LIMIT IS 66 LINES HEADING 1 FIRST DETAIL 8 LAST DETAIL 60 FOOTING 63. 01 VARIANCE-REPORT-HEADER TYPE IS REPORT HEADING. 05 LINE NUMBER IS 1. 10 COLUMN NUMBER IS 35 PIC X(25) VALUE "VARIANCE SUMMARY REPORT". 05 LINE NUMBER IS 3. 10 COLUMN NUMBER IS 1 PIC X(15) VALUE "Department". 10 COLUMN NUMBER IS 20 PIC X(15) VALUE "Total Variance". 10 COLUMN NUMBER IS 40 PIC X(15) VALUE "Variance %". 10 COLUMN NUMBER IS 60 PIC X(15) VALUE "Status". 01 VARIANCE-DETAIL TYPE IS DETAIL. 05 LINE NUMBER IS PLUS 1. 10 COLUMN NUMBER IS 1 PIC X(15) SOURCE IS DEPT-NAME. 10 COLUMN NUMBER IS 18 PIC +$$$,$$$,$$9.99 SOURCE IS DEPT-VARIANCE-TOTAL. 10 COLUMN NUMBER IS 38 PIC +ZZ9.9% SOURCE IS DEPT-VARIANCE-PERCENT. 10 COLUMN NUMBER IS 58 PIC X(15) SOURCE IS VARIANCE-STATUS. WORKING-STORAGE SECTION. 01 WS-FILE-STATUS. 05 WS-INPUT-STATUS PIC XX. 05 WS-REPORT-STATUS PIC XX. 01 WS-CALCULATIONS. 05 WS-VARIANCE-PERCENT PIC S9(3)V9 COMP-3. 05 WS-DEPT-VARIANCE-TOTAL PIC S9(9)V99 COMP-3. 05 WS-DEPT-VARIANCE-PERCENT PIC S9(3)V9 COMP-3. 05 WS-VARIANCE-STATUS PIC X(15). 01 WS-CONTROL-TOTALS. 05 WS-RECORD-COUNT PIC 9(7) VALUE 0. 05 WS-PAGE-COUNT PIC 9(4) VALUE 0. 05 WS-DEPT-COUNT PIC 9(4) VALUE 0. PROCEDURE DIVISION. MAIN-ADVANCED-RD-PROCESSING. DISPLAY "=== ADVANCED RD FEATURES DEMONSTRATION ===" PERFORM OPEN-ADVANCED-FILES PERFORM INITIALIZE-ADVANCED-REPORTS PERFORM PROCESS-FINANCIAL-DATA PERFORM TERMINATE-ADVANCED-REPORTS PERFORM CLOSE-ADVANCED-FILES PERFORM DISPLAY-PROCESSING-STATISTICS DISPLAY "=== ADVANCED RD PROCESSING COMPLETE ===" STOP RUN. OPEN-ADVANCED-FILES. DISPLAY " " DISPLAY "📂 OPENING ADVANCED REPORT FILES" DISPLAY "================================" OPEN INPUT FINANCIAL-INPUT-FILE IF WS-INPUT-STATUS NOT = "00" DISPLAY "❌ Error opening financial input: " WS-INPUT-STATUS STOP RUN ELSE DISPLAY "✅ Financial input file opened" END-IF OPEN OUTPUT FINANCIAL-REPORT-FILE IF WS-REPORT-STATUS NOT = "00" DISPLAY "❌ Error opening report output: " WS-REPORT-STATUS STOP RUN ELSE DISPLAY "✅ Financial report file opened" END-IF. INITIALIZE-ADVANCED-REPORTS. DISPLAY " " DISPLAY "🎯 INITIALIZING ADVANCED REPORTS" DISPLAY "================================" INITIATE FINANCIAL-ANALYSIS-REPORT INITIATE VARIANCE-SUMMARY-REPORT DISPLAY "✅ Financial analysis report initiated" DISPLAY "✅ Variance summary report initiated". PROCESS-FINANCIAL-DATA. DISPLAY " " DISPLAY "📊 PROCESSING FINANCIAL DATA" DISPLAY "============================" PERFORM READ-FINANCIAL-RECORD PERFORM UNTIL WS-INPUT-STATUS = "10" ADD 1 TO WS-RECORD-COUNT *> Calculate variance percentage PERFORM CALCULATE-VARIANCE-METRICS *> Generate detail lines for both reports GENERATE FINANCIAL-DETAIL GENERATE VARIANCE-DETAIL PERFORM READ-FINANCIAL-RECORD END-PERFORM DISPLAY "✅ Processed " WS-RECORD-COUNT " financial records". CALCULATE-VARIANCE-METRICS. *> Calculate variance percentage IF BUDGET-AMOUNT NOT = 0 COMPUTE VARIANCE-PERCENT = (VARIANCE-AMOUNT / BUDGET-AMOUNT) * 100 ELSE MOVE 0 TO VARIANCE-PERCENT END-IF *> Set variance status based on percentage IF VARIANCE-PERCENT > 10 MOVE "OVER BUDGET" TO VARIANCE-STATUS ELSE IF VARIANCE-PERCENT < -10 MOVE "UNDER BUDGET" TO VARIANCE-STATUS ELSE MOVE "ON TARGET" TO VARIANCE-STATUS END-IF END-IF *> Department-level calculations COMPUTE DEPT-VARIANCE-TOTAL = VARIANCE-AMOUNT COMPUTE DEPT-VARIANCE-PERCENT = VARIANCE-PERCENT. READ-FINANCIAL-RECORD. READ FINANCIAL-INPUT-FILE AT END CONTINUE NOT AT END CONTINUE END-READ. TERMINATE-ADVANCED-REPORTS. DISPLAY " " DISPLAY "🏁 TERMINATING ADVANCED REPORTS" DISPLAY "===============================" TERMINATE FINANCIAL-ANALYSIS-REPORT TERMINATE VARIANCE-SUMMARY-REPORT DISPLAY "✅ Financial analysis report terminated" DISPLAY "✅ Variance summary report terminated". CLOSE-ADVANCED-FILES. DISPLAY " " DISPLAY "🔒 CLOSING ADVANCED FILES" DISPLAY "========================" CLOSE FINANCIAL-INPUT-FILE CLOSE FINANCIAL-REPORT-FILE DISPLAY "✅ All advanced files closed successfully". DISPLAY-PROCESSING-STATISTICS. DISPLAY " " DISPLAY "📈 PROCESSING STATISTICS" DISPLAY "=======================" DISPLAY "Records processed: " WS-RECORD-COUNT DISPLAY "Reports generated: 2" DISPLAY "Control levels: 4 (FINAL, DEPT, COST-CENTER, ACCOUNT)" DISPLAY "Page limit: 66 lines per page" DISPLAY "✅ Advanced RD processing completed successfully".