Gedichte
Musik
Bilder
Quellcodebibliothek
Diashow
Normaldarstellung
Quellcodebibliothek
Statistik
Leitseite
products
/
Sources
/
formale Sprachen
/
C
/
Linux
/
Documentation
/
input
/ (
Open Source Betriebssystem
Version 6.17.9
©
) Datei vom 24.10.2025 mit Größe 5 kB
Bilddatei
cobug-scetch.cob
products/Sources/formale Sprachen/COBOL/verschiedene-Autoren/Cobug/cobug-scetch.cob
PROGRAM-ID. PROGRAM2. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CUSTDAT ASSIGN TO CUSTDAT. SELECT CUSTMAST ASSIGN TO CUSTMAST. DATA DIVISION FILE SECTION. FD CUSTDAT. 01 CUSTOMER-DATA-RECORD. 05 CM-CUSTOMER-NUMBER PIC 9(5). 05 CM-CUSTOMER-NAME PIC X(20). 05 DATE-ISSUED 10 DA-MONTH PIC 9(2). 10 DA-DAY PIC 9(2). 10 DA-YEAR PIC 9(4). 05 CM-BEGINNING-BALANCE PIC 9(7)V99. 05 CM-PURCHASES PIC 9(6)V99. 05 CM-CASH-ADVANCES PIC 9(5). 05 CM-PAYMENTS PIC 9(5)V99. 05 CM-ACCOUNT-TYPE PIC 9(1). FD CUSTMAST. 01 PRINT-AREA PIC X(132) WORKING-STORAGE SECTION. ** 05 DATE-WORK. 10 DA-DT-TRN-ARND 10 DA-DTA-YR PIC 9(4). MOVE BD-MON TO BD-DTA-MON 10 DA-DTA-MON PIC 99. MOVE BD-DAY TO BD-DTA-DAY 10 DA-DTA-DAY PIC 99. MOVE BD-YR TO BD-DTA-YR 05 BD-NUM REDEFINES BD-DT-TRN-ARND PIC 9(8). ** 05 ID-DT-TRN-ARND 01 SWITCHES. 05 CUSTDAT-EOF-SWITCH PIC X VALUE "N." 01 PRINT-FIELDS. 05 PAGE-COUNT ;PIC S9(3) VALUE ZERO. 05 LINES-ON-PAGE PIC S9(3) VALUE +55. 05 LINE-COUNT PIC S9(3) VALUE +99. 05 SPACE-CONTROL. PIC S9. 01 FINAL-TOTALS-FIELDS. 05 TOTAL-BEGINNING-BALANCE PIC S9(7)V99 VALUE ZERO. 05 TOTAL-PURCHASES PIC S9(7)V99 VALUE ZERO. 05 TOTAL-CASH-ADVANCES PIC S9(7)V99 VALUE ZERO. 05 TOTAL-PAYMENTS PIC S9(7)V99 VALUE ZERO. 05 TOTAL-FINANCE-CHARGE PIC S9(7)V99 VALUE ZERO. 05 TOTAL-ENDING-BALANCE PIC S9(7)V99 VALUE ZERO. 05 TOTAL-NEXT-PAYMENTS PIC S9(7)V99 VALUE ZERO. 01 HEADING-LINE-1. 05 FILLER PIC X(15) VALUE "CUST-NUM". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(13) VALUE "CUST-NAME". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(11) VALUE "DATE-ISSUED". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(17) VALUE" BEG-BAL". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(9) VALUE "PURCH". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(13) VALUE "CASH-ADV". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(8) VALUE "PAYMENTS". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(14) VALUE "FIN-CHARGE". 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(14) VALUE "END-BAL. 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(12) VALUE "NEXT-PAYM". 01 HEADING-LINE-2. FILLER PIC X(132) VALUE SPACE. 01 CUSTOMER-LINE. 05 CL-CUSTOMER-NUMBER PIC 9(5). 05 FILLER PIC X(5) VALUE SPACE. 05 CL-CUSTOMER-NAME PIC X(20). 05 FILLER PIC X(5) VALUE SPACE. 05 DA-YEAR PIC 9(4). 05 FILLER PIC X(1) VALUE SPACE. 05 DA-MONTH PIC X(2). 05 FILLER PIC X(1) VALUE SPACE. 05 DA-DAY PIC X(2). 05 FILLER PIC X(5) VALUE SPACE. 05 CL-BEGINNING-BALANCE PIC X(7)V99. 05 FILLER PIC X(5) VALUE SPACE. 05 CL-PURCHASES PIC X(6)V99. 05 FILLER PIC X(5) VALUE SPACE. 05 CL-CASH-ADVANCES PIC X(5). 05 FILLER PIC X(5) VALUE SPACE. 05 CL-PAYMENTS PIC X(5)V99. 05 FILLER PIC X(5) VALUE SPACE. 05 CL-FINANCE-CHARGE PIC S9(5)V9(2). 05 FILLER PIC X(5) VALUE SPACE. 05 CL-ENDING-BALANCE PIC S9(5)V9(2). 05 FILLER PIC X(5) VALUE SPACE. 05 CL-NEXT-PAYMENT PIC S9(5)V9(2). PROCEDURE DIVISION. 000-PREPARE-CUSTMAST-REPORT. OPEN INPUT CUSTDAT. OUTPUT CUSTMAST. PERFORM 100-FORMAT-REPORT-HEADING. PERFORM 200-PREPARE-FINAL-LINES UNTIL CUSTDAT-EOF-SWITCH = "Y". CLOSE CUSTDAT CUSTMAST. STOP RUN. 100-FORMAT-REPORT-HEADING. 300-PREPARE-SALES-LINES PERFORM 310-READ-CUSTOMER-RECORD 310-READ-CUSTOMER-RECORD. READ CUSTDAT AT END MOVE "Y" TO CUSTDAT-EOF-SWITCH 320-PRINT-CUSTOMER-LINE. IF LINE-COUNT >= LINES-ON-PAGE PERFORM 230-PRINT-HEADING-LINES. * MOVE CM-CUSTOMER-NAME TO CL-CUSTOMER- NAME MOVE CM-CUSTOMER-NUMBER TO CL- CUSTOMER-NAME MOVE CM- MOVE CM-BEGINNING-BALANCE TO CL- BEGINNING-BALANCE MOVE CM-PURCHASES TO CL-PURCHASES MOVE CM-CASH-ADVANCES TO CL-CASH- ADVANCES MOVE CM-PAYMENTS TO CL-PAYMENTS FINANCE-CHARGE = (CM-BEGINNING-BALANCE + CM- PURCHASES + CASH-ADVANCES - PAYMENTS) * .18 / 365 + 30) MOVE FINANCE-CHARGE TO CL-FINANCE-CHARGE COMPUTE ENDING-BALANCE = (CM-BEGINNING-BALANCE + PURCHASES + CASH-ADVANCES - PAYMENTS + FINANCE-CHARGE) MOVE ENDING-BALANCE TO CL-ENDING-BALANCE COMPUTE NEXT-PAYMENT = IF ACCOUNT-TYPE = 1 THEN ENDING- BALANCE * .10 ELSE ENDING- BALANCE * .15 MOVE NEXT-PAYMENT TO CL-NEXT-PAYMENT MOVE-CUSTOMER-LINE TO PRINT-AREA. PERFORM 350-WRITE-REPORT-LINE. MOVE 1 TO SPACE-CONTROL. 330-PRINT-HEADING-LINES. ADD 1 TO PAGE-COUNT. MOVE PAGE-COUNT TO HL1-PAGE-NUMBER. MOVE HEADING-LINE-1 TO PRINT-AREA. PERFORM 340-WRITE-PAGE-TOP-LINE. MOVE HEADING-LINE-2 TO PRINT-AREA. MOVE 2 TO SPACE-CONTROL. PERFORM 350-WRITE-REPORT-LINE. MOVE HEADING-LINE-4 TO PRINT-AREA. MOVE 1 TO SPACE-CONTROL. PERFORM 350-WRITE-REPORT-LINE. MOVE 2 TO SPACE-CONTROL. 340-WRITE-PAGE-TOP-LINE. WRITE PRINT-AREA AFTER ADVANCING PAGE. MOVE 1 TO LINE-COUNT. 350-WRITE-REPORT-LINE. WRITE-PRINT-AREA AFTER ADVANCING SPACE- CONTROL LINES. ADD SPACE-CONTROL TO LINE-COUNT.
2026-04-04