IDENTIFICATIONDIVISION. PROGRAM-ID. CH0602. ENVIRONMENTDIVISION. INPUT-OUTPUTSECTION. FILE-CONTROL. SELECT EMPLOYEE-DATA ASSIGNTO"C0602.DAT", ORGANIZATIONISLINESEQUENTIAL. SELECT PAYROLL-IN ASSIGNTO"C0602-RPT", ORGANIZATIONISLINESEQUENTIAL. SELECT PAYROLL-OUT ASSIGNTO"C0602-RPT", ORGANIZATIONISLINESEQUENTIAL. DATADIVISION. FILESECTION. FD EMPLOYEE-DATA. 01 PAYROLL-REC. 05 EMPLOYEE-NO-IN PIC X(5). 05 EMPLOYEE-NAME-IN PIC X(20). 05 TERRITORY-NO-IN PIC X(2). 05 OFFICE-NO-IN PIC X(2). 05 ANNUAL-SALARY-IN PIC9(6). 05 SOCIAL-SEC-IN PIC X(9). 05PIC X(36). FD PAYROLL-OUT. 01 PRINT-REC PIC X(80). FD PAYROLL-IN. 01 PRINT-REC PIC X(80). WORKING-STORAGESECTION. 01 WORK-DATA. 05 ARE-THERE-MORE-RECORDS PIC XXX VALUE"YES". 05 WS-DATE. 10 WS-YEAR PIC9999. 10 WS-MONTH PIC99. 10 WS-DAY PIC99. 05 WS-PAGE-CT PIC99 VALUEZERO. 05 WS-LINE-CT PIC99 VALUEZERO. 01 HDR1-OUT. 05PIC X(30) VALUESPACES. 05PIC X(15) VALUE"PAYROLL REPORT". 05PIC X(15) VALUESPACES. 05PIC X(5) VALUE"PAGE". 05 PAGE-OUT PIC Z9. 05PIC X(3) VALUESPACES. 05 DATE-OUT. 10 MONTH-OUT PIC99. 10 DAY-OUT PIC99. 10PIC X VALUE"/". 10 YEAR-OUT PIC9999. 01 HDR2-OUT. 05PIC X(9) VALUE"EMP. NO.". 05PIC X(2) VALUESPACES. 05PIC X(13) VALUE"EMPLOYEE NAME". 05PIC X(9) VALUESPACES. 05PIC X(8) VALUE"TERR NO.". 05PIC X(2) VALUESPACES. 05PIC X(10) VALUE"OFFICE NO.". 05PIC X(2) VALUESPACES. 05PIC X(13) VALUE"ANNUAL SALARY". 05PIC X(2) VALUESPACES. 05PIC X(11) VALUE"SOC SEC NO.". 01 DETAIL-REC-OUT. 05PIC X VALUESPACES. 05 EMPLOYEE-NO-OUT PIC X(5). 05PIC X(4) VALUESPACES. 05 EMPLOYEE-NAME-OUT PIC X(20). 05PIC X(5) VALUESPACES. 05 TERRITORY-NO-OUT PIC X(2). 05PIC X(8) VALUESPACES. 05 OFFICE-NO-OUT PIC X(2). 05PIC X(10) VALUESPACES. 05 ANNUAL-SALARY-OUT PIC $ZZZZZZ. 05PIC X(5) VALUESPACES. 05 SOCIAL-SEC-OUT PIC XXXBXXBXXXX. PROCEDUREDIVISION. 100-MAIN-MODULE. OPENINPUT PAYROLL-IN OUTPUT PAYROLL-OUT MOVEFUNCTION CURRENT-DATE TO WS-DATE MOVE WS-MONTH TO MONTH-OUT MOVE WS-DAY TO DAY-OUT MOVE WS-YEAR TO YEAR-OUT PERFORM200-HDG-RTN. PERFORMUNTIL ARE-THERE-MORE-RECORDS = "NO " READ PAYROLL-IN ATEND MOVE"NO "TO ARE-THERE-MORE-RECORDS NOTATEND PERFORM300-REPORT-RTN END-READ END-PERFORM CLOSE PAYROLL-IN
PAYROLL-OUT. STOPRUN. 200-HDG-RTN. ADD1TO WS-PAGE-CT MOVE WS-PAGE-CT TO PAGE-OUT WRITE PRINT-REC FROM HDR1-OUT AFTERADVANCING2 LINES WRITE PRINT-REC FROM HDR2-OUT AFTERADVANCING2 LINES MOVE ZEROS TO WS-LINE-CT. 300-REPORT-RTN. IF WS-LINE-CT >=25 PERFORM200-HDG-RTN END-IF MOVE EMPLOYEE-NO-IN TO EMPLOYEE-NO-OUT MOVE EMPLOYEE-NAME-IN TO EMPLOYEE-NAME-OUT MOVE TERRITORY-NO-IN TO TERRITORY-NO-OUT MOVE OFFICE-NO-IN TO OFFICE-NO-OUT MOVE ANNUAL-SALARY-IN TO ANNUAL-SALARY-OUT MOVE SOCIAL-SEC-IN TO SOCIAL-SEC-OUT WRITE PRINT-REC FROM DETAIL-REC-OUT AFTERADVANCING2 LINES ADD1TO WS-LINE-CT. * Haikyousha * * * * 12/12/2008 * 14:15:35 * Subject: Rolling Totals & Arrays * * * Message: * Hello all, and thank you in advance for all of your input, * insights, and such. I'm extremely new to COBOL, and went so * far as to go out and buy a textbook as per the recommendation of a friend who teaches programming (sadly, * not COBOL). I'm trying to practice programs on my own, but * alas, where would progression be if one cannot ask * questions? * * * I have some COBOL code, which is as follows: * ================================= * ==================== * What I'm trying to do now is to use the rolling totals (my * book calls it rolling forward, I don't know the proper * terminology) concept to have summary totals for both * territory and final totals. I'm also trying to use an array table * to create only the territory and final totals and have no detail * lines within it. * * However, I'm drawing a huge blank on what code to use, or * even where to put it! * * I've gotten this far, can anyone help me finish this out?
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.