[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[open-cobol-list] Reporting a problem with SCREEN SECTION in Version 1.1
From: |
Larry Cullen |
Subject: |
[open-cobol-list] Reporting a problem with SCREEN SECTION in Version 1.1.0 |
Date: |
Mon, 07 Jul 2008 20:14:01 -0500 |
User-agent: |
Thunderbird 2.0.0.14 (Windows/20080421) |
Greetings,
I just downloaded and installed the pre-release copy of Version 1.1.0
today. That all went very well and I ran the tests as recommended. Very
impressive.
I'm running on Suse Linux Version 10.3 x386.
I have all the latest libraries loaded. Included those needed to support
indexed files, and the screen section. I wanted to experiment with the
screen section capability to see how that worked.
The attached COBOL source file should be self explanatory. When the
resulting program is run several things happen. The application should
display five records at a time from a group of eight records written to
a "line sequential" file that the program creates initially. The first
page would display the first five records and the second page would then
display the remaining three records. User input is accepted to either
quit without viewing the last three records or to proceed with seeing
the last three records.
When the application is run the eight records first get recorded to the
file. This works fine.
Then program then reads these records, but the display does not work
correctly. The first record read gets displayed five time on the screen.
When the user is prompted to enter "Q" to Quit, entering "Q" and
pressing the "Enter" key does not terminate the loop.
The sixth record in the file is then displayed three times on the next
screen.
Apparently all of the problems have to do with the way the screen
section is being handled. I've tried commenting out all of the SCREEN
SECTION and then used a crude DISPLAY line to determine that the records
are being read properly and the index values are being computed properly.
I think that you'll see exactly what I mean if you compile the attached
file and try it.
Thanks,
Larry Cullen
000001 IDENTIFICATION DIVISION.
000002 PROGRAM-ID. SCRSECT.
000003 AUTHOR. L E CULLEN.
000004*---------------------------------------------------
000005 ENVIRONMENT DIVISION.
000000 CONFIGURATION SECTION.
000000 SOURCE-COMPUTER. Linux.
000000 OBJECT-COMPUTER. Linux.
000006 INPUT-OUTPUT SECTION.
000007 FILE-CONTROL.
000008 SELECT INPUT-FILE ASSIGN TO "SCR1.DAT"
000009 ORGANIZATION LINE SEQUENTIAL.
000010*---------------------------------------------------
000011 DATA DIVISION.
000012 FILE SECTION.
000013 FD INPUT-FILE
000014 DATA RECORD IS INPUT-REC.
000015 01 INPUT-REC.
000016 05 ID-IN PIC XXXX.
000017 05 NAME-IN PIC X(20).
000018*---------------------------------------------------
000019 WORKING-STORAGE SECTION.
000024 77 CUR PIC 99 VALUE 4.
000025 77 SUBZ PIC 9 VALUE 0.
000000*
000020 01 INDICATORS.
000021 05 EOF-IND PIC XXX VALUE "NO ".
000022 01 RESPONSES.
000023 05 SCR-RESP-WS PIC X VALUE SPACES.
000026 01 DATA-FOR-SCREEN.
000027 05 INFO-FOR-SCR OCCURS 5 TIMES.
000028 10 ID-IN-WS PIC XXXX.
000029 10 NAME-IN-WS PIC X(20).
000030*---------------------------------------------------
000031 SCREEN SECTION.
000032 01 DATA-SCREEN.
000033 05 HDR-INFO.
000034 10 VALUE "DATA SCREEN" BLANK SCREEN LINE 01 COL 30.
000035 10 VALUE "ID #" LINE 03 COL 12.
000036 10 VALUE "NAME" LINE 03 COL 17.
000037 05 INFO-SCR-IN.
000038 10 ID-ON-SCR-IN LINE CUR COL 12 PIC XXXX FROM ID-IN-WS(SUBZ).
000039 10 NAME-ON-SCR-IN LINE CUR COL 17 PIC X(20) FROM
000040 NAME-IN-WS(SUBZ).
000041 05 RESP-INFO.
000042 10 VALUE "Q - TO QUIT:" LINE 17 COL 30.
000043 10 RESPONSE-SCR LINE 17 COL 43 PIC X TO SCR-RESP-WS.
000044*---------------------------------------------------
000045 PROCEDURE DIVISION.
000046 MAINLINE.
000047 PERFORM A-100-INITIALIZE.
000040 PERFORM B-100-PROCESS.
000049 PERFORM C-100-TERMINATE.
000050 STOP RUN.
000051*---------------------------------------------------
000052 A-100-INITIALIZE.
000053 OPEN OUTPUT INPUT-FILE.
000054 MOVE "0001RECORD NUMBER ONE " TO INPUT-REC.
000055 WRITE INPUT-REC.
000056 MOVE "0002RECORD NUMBER TWO " TO INPUT-REC.
000057 WRITE INPUT-REC.
000058 MOVE "0003RECORD NUMBER THREE " TO INPUT-REC.
000059 WRITE INPUT-REC.
000060 MOVE "0004RECORD NUMBER FOUR " TO INPUT-REC.
000061 WRITE INPUT-REC.
000062 MOVE "0005RECORD NUMBER FIVE " TO INPUT-REC.
000063 WRITE INPUT-REC.
000064 MOVE "0006RECORD NUMBER SIX " TO INPUT-REC.
000065 WRITE INPUT-REC.
000066 MOVE "0007RECORD NUMBER SEVEN " TO INPUT-REC.
000067 WRITE INPUT-REC.
000068 MOVE "0008RECORD NUMBER EIGHT " TO INPUT-REC.
000069 WRITE INPUT-REC.
000070 CLOSE INPUT-FILE.
000071 OPEN INPUT INPUT-FILE.
000072*---------------------------------------------------
000073 B-100-PROCESS.
000074 READ INPUT-FILE
000075 AT END
000076 MOVE "YES" TO EOF-IND.
000077 PERFORM B-200-LOOP
000078 UNTIL EOF-IND = "YES" OR
000079 SCR-RESP-WS = "Q" OR
000080 SCR-RESP-WS = "q".
000081*---------------------------------------------------
000082 B-200-LOOP.
000083 MOVE 4 TO CUR.
000084 MOVE 0 TO SUBZ.
000085 DISPLAY HDR-INFO.
000086 PERFORM B-300-SETUP
000087 UNTIL SUBZ > 4 OR
000088 EOF-IND = "YES" OR
000089 SCR-RESP-WS = "Q" OR
000090 SCR-RESP-WS = "q".
000091 DISPLAY RESP-INFO.
000092 ACCEPT RESP-INFO.
000093*---------------------------------------------------
000094 B-300-SETUP.
000095 ADD 1 TO SUBZ.
000096 ADD 1 TO CUR.
000097 MOVE ID-IN TO ID-IN-WS ( SUBZ ).
000098 MOVE NAME-IN TO NAME-IN-WS ( SUBZ ).
000099 DISPLAY INFO-SCR-IN.
000100 READ INPUT-FILE
000101 AT END
000102 MOVE "YES" TO EOF-IND.
000103*---------------------------------------------------
000104 C-100-TERMINATE.
000105 CLOSE INPUT-FILE.
- [open-cobol-list] Reporting a problem with SCREEN SECTION in Version 1.1.0,
Larry Cullen <=