Мне нужно создать файл отчета в COBOL для назначения. Файл .rpt достаточно прост, но теперь я должен сделать это, когда SCREEN SECTION. используется и на кирпичной стене. Я знаю, что мне нужно что-то сделать для экрана, но я не знаю, что мне нужно делать. Так что любая помощь была бы замечательной!Создайте файл .RPT из COBOL
IDENTIFICATION DIVISION.
************************
PROGRAM-ID. EX3-2R.
AUTHOR. NOLAN ARCHER.
INSTALLATION. MSCTC.
DATE-WRITTEN. FEBRUARY 12, 2014.
DATE-COMPILED.
******************************************************************
* PROGRAM NARRATIVE *
* *
* *
* THIS PROGRAM READS ALL THE RECORDS IN THE CUSTOMER PURCHASE *
* FILE FOR ABC DEPARTMENT STORE. ONE DETAIL LINE CONTAINING *
* THE ACCOUNT NUMBER, CUSTOMER NAME, BALANCE, PURCHASES, AND *
* CREDIT LIMIT. A COUNT OF THE RECORDS PROCESSED IS DISPLAYED*
* AT THE END OF THE REPORT. *
* *
* INPUT: CUSTOMER.DAT - CUSTOMER FILE *
* *
* OUTPUT: SCREEN - CUSTOMER PURCHASE REPORT *
******************************************************************
ENVIRONMENT DIVISION.
**********************
INPUT-OUTPUT SECTION.
**********************
FILE-CONTROL.
SELECT CUSTOMER-FILE
ASSIGN TO "C:\data\cobol-1\Data\Data\CUSTOMER.DAT".
SELECT REPORT-FILE
ASSIGN TO "C:\solution\cobol-1\EX3-2R.RPT".
/
DATA DIVISION.
***************
FILE SECTION.
**************
******************************************************************
* *
* INPUT-FILE - CUSTOMER FILE *
* *
******************************************************************
FD CUSTOMER-FILE.
01 CUSTOMER-RECORD.
02 PIC X(8).
02 CR-ACCOUNT-NUMBER PIC X(6).
02 CR-CUSTOMER-NAME PIC X(20).
02 PIC X(21).
02 CR-BALANCE PIC S9(4)V99.
02 CR-PURCHASES PIC 9(4)V99.
02 CR-CREDIT-LIMIT PIC 9(5).
02 PIC XX.
******************************************************************
* *
* REPORT-FILE *
* *
******************************************************************
FD REPORT-FILE.
01 REPORT-LINE-OUT PIC X(80).
/
WORKING-STORAGE SECTION.
************************
******************************************************************
* *
* SWITCHES *
* *
******************************************************************
01 SWITCHES.
02 SW-END-OF-FILE PIC X.
88 END-OF-FILE VALUE "Y".
******************************************************************
* *
* ACCUMULATORS *
* *
******************************************************************
01 ACCUMULATORS.
02 AC-LINE-COUNT PIC 999.
02 AC-PAGE-COUNT PIC 999.
02 AC-RECORD-COUNT PIC 9(5).
/
******************************************************************
* *
* Work Area Fields *
* *
******************************************************************
01 WORK-AREA.
02 WA-TODAYS-DATE-TIME.
03 WA-TODAYS-DATE.
04 WA-TODAYS-YEAR PIC 9(4).
04 WA-TODAYS-MONTH PIC 99.
04 WA-TODAYS-DAY PIC 99.
03 WA-TODAYS-TIME.
04 WA-TODAYS-HOUR PIC 99.
04 WA-TODAYS-MINUTES PIC 99.
03 PIC X(9).
02 WA-DATE.
03 WA-MONTH PIC 99.
03 WA-DAY PIC 99.
03 WA-YEAR PIC 9(4).
02 WA-RUN-DATE REDEFINES
WA-DATE PIC 9(8).
02 WA-SCREEN-HOLD PIC X.
02 WA-HYPHENS PIC X(20) VALUE ALL "-".
02 WA-SATISFACTION-RATING PIC X(12).
/
SCREEN SECTION.
***************
******************************************************************
* *
* Report Headings for the Customer Purchase Report *
* *
******************************************************************
01 HEADING-LINES.
02 BLANK SCREEN.
02 LINE 1 COLUMN 1 VALUE "DATE: ".
02 COLUMN 7 PIC Z9/99/9999 FROM WA-RUN-DATE.
02 COLUMN 25 VALUE "ABC DEPARTMENT STORE".
02 COLUMN 58 VALUE "PAGE ".
02 COLUMN 63 PIC ZZ9 FROM AC-PAGE-COUNT.
02 LINE 2 COLUMN 1 VALUE "NOLAN ARCHER".
02 COLUMN 23 VALUE "CUSTOMER PURCHASES REPORT".
02 LINE 4 COLUMN 1 VALUE "ACCOUNT".
02 COLUMN 54 VALUE "CREDIT".
02 LINE 5 COLUMN 1 VALUE "NUMBER".
02 COLUMN 11 VALUE "CUSTOMER NAME".
02 COLUMN 32 VALUE "BALANCE".
02 COLUMN 43 VALUE "PURCHASES".
02 COLUMN 54 VALUE "LIMIT".
02 LINE 6 COLUMN 1 PIC X(8) FROM WA-HYPHENS.
02 COLUMN 11 PIC X(20) FROM WA-HYPHENS.
02 COLUMN 32 PIC X(10) FROM WA-HYPHENS.
02 COLUMN 43 PIC X(10) FROM WA-HYPHENS.
02 COLUMN 54 PIC X(12) FROM WA-HYPHENS.
/
******************************************************************
* *
* Detail Line for the Customer Purchase Report *
* *
******************************************************************
01 DETAIL-LINE.
02 LINE AC-LINE-COUNT.
02 COLUMN 1 PIC X(6) FROM CR-ACCOUNT-NUMBER.
02 COLUMN 11 PIC X(20) FROM CR-CUSTOMER-NAME.
02 COLUMN 31 PIC $$$,$$$.99 FROM CR-BALANCE.
02 COLUMN 43 PIC $$$,$$$.99 FROM CR-PURCHASES.
02 COLUMN 54 PIC Z,ZZ9.99 FROM CR-CREDIT-LIMIT.
/
******************************************************************
* *
* Summary Lines for the Customer Purchase Report *
* *
******************************************************************
01 SUMMARY-LINES.
02 SL-LINE-1.
03 LINE AC-LINE-COUNT.
03 COLUMN 13 VALUE
"TOTAL NUMBER OF CUSTOMERS LISTED = ".
03 COLUMN 49 PIC ZZZZ9 FROM AC-RECORD-COUNT.
02 SL-LINE-2.
03 LINE AC-LINE-COUNT.
03 COLUMN 26 VALUE "END OF REPORT".
/
PROCEDURE DIVISION.
*******************
******************************************************************
* *
* MAIN-PROGRAM - THIS IS THE MAIN PARAGRAPH OF THIS PROGRAM *
* *
******************************************************************
MAIN-PROGRAM.
PERFORM A-100-INITIALIZATION.
PERFORM B-100-PROCESS-FILE.
PERFORM C-100-WRAP-UP.
STOP RUN.
******************************************************************
* *
* THE INITIALIZATION PARAGRAPH FOLLOWS *
* *
******************************************************************
A-100-INITIALIZATION.
MOVE ZERO TO AC-PAGE-COUNT
AC-LINE-COUNT
AC-RECORD-COUNT.
MOVE FUNCTION CURRENT-DATE TO WA-TODAYS-DATE-TIME.
MOVE WA-TODAYS-MONTH TO WA-MONTH.
MOVE WA-TODAYS-DAY TO WA-DAY.
MOVE WA-TODAYS-YEAR TO WA-YEAR.
OPEN INPUT CUSTOMER-FILE
OUTPUT REPORT-FILE.
/
******************************************************************
* *
* FILE PROCESSING CONTROL PARAGRAPH *
* *
******************************************************************
B-100-PROCESS-FILE.
MOVE "N" TO SW-END-OF-FILE.
READ CUSTOMER-FILE
AT END MOVE "Y" TO SW-END-OF-FILE.
PERFORM B-200-PROCESS-RECORD
UNTIL END-OF-FILE.
ADD 1 TO AC-LINE-COUNT.
DISPLAY SL-LINE-1.
WRITE REPORT-LINE-OUT FROM SL-LINE-1
AFTER ADVANCING 2 LINES.
ADD 1 TO AC-LINE-COUNT.
DISPLAY SL-LINE-2.
WRITE REPORT-LINE-OUT FROM SL-LINE-2
AFTER ADVANCING 1 LINE.
DISPLAY " ".
******************************************************************
* *
* DISPLAY HEADINGS AND DETAIL LINES *
* *
******************************************************************
B-200-PROCESS-RECORD.
IF AC-LINE-COUNT = 0
ADD 1 TO AC-PAGE-COUNT
DISPLAY HEADING-LINES
MOVE 7 TO AC-LINE-COUNT.
DISPLAY DETAIL-LINE.
WRITE REPORT-LINE-OUT FROM DETAIL-LINE
AFTER ADVANCING 1 LINE.
ADD 1 TO AC-LINE-COUNT.
ADD 1 TO AC-RECORD-COUNT.
IF AC-LINE-COUNT > 20
DISPLAY " "
DISPLAY "PLEASE PRESS THE ENTER KEY TO CONTINUE"
ACCEPT WA-SCREEN-HOLD
MOVE ZERO TO AC-LINE-COUNT.
READ CUSTOMER-FILE
AT END MOVE "Y" TO SW-END-OF-FILE.
/
******************************************************************
* *
* END OF JOB PARAGRAPH *
* *
******************************************************************
C-100-WRAP-UP.
DISPLAY " ".
DISPLAY " ".
DISPLAY "PLEASE PRESS THE ENTER KEY TO CONTINUE".
ACCEPT WA-SCREEN-HOLD.
CLOSE CUSTOMER-FILE
REPORT-FILE.
DISPLAY " ".
DISPLAY "CUSTOMER PURCHASE REPORT PROGRAM HAS TERMINATED".
DISPLAY " ".
******************************************************************
* END OF PROGRAM *
******************************************************************
/
Необходимо четко указать, в чем проблема. Что происходит при компиляции программы? Что происходит, когда вы запускаете его? Кроме того, найдите здесь использование FILE STATUS в COBOL и ограничители границ (например, END-IF) вместо полных остановок/периодов. –
SCREEN SECTION редко используется в производственном кодексе. Поэтому вы не можете найти слишком много практикующих в этом Q & A, которые знакомы с ним. К сожалению, ваш лучший регресс может состоять в том, чтобы просмотреть ваши учебные материалы. –
@DavidGorsline; да, не так много, но SCREEN SECTION все еще используется и поддерживается поставщиками компиляторов. –