我正在使用Visual Cobol创建一个程序,该程序读取文件,具有用户输入条件,并仅显示文件中符合用户条件的记录。我需要显示符合条件的记录数,这是使用累加器完成的,但是我还需要显示文件中的记录总数,包括未显示的记录。
我想知道是否可以在Sort语句中执行此操作。我已经尝试了一些方法,但是不确定所需的语法。
这是我当前的排序语句:
B-100-PROCESS-FILE.
PERFORM B-200-CRITERIA-CONTROL.
SORT SORT-FILE
ON DESCENDING KEY SR-UNIT-COST
INPUT PROCEDURE B-210-SELECT-RECORDS
OUTPUT PROCEDURE B-220-DISPLAY-REPORT.
新增内容:
B-210-SELECT-RECORDS.
OPEN INPUT CUSTOMER-SALES-FILE
MOVE "N" TO SW-END-OF-FILE.
READ CUSTOMER-SALES-FILE INTO CUSTOMER-SALES-RECORD
AT END MOVE "Y" TO SW-END-OF-FILE
NOT AT END ADD 1 TO AC-RECORD-TOTAL
PERFORM B-370-RELEASE-RECORDS
UNTIL END-OF-FILE.
CLOSE CUSTOMER-SALES-FILE.
几乎在那里...
答案 0 :(得分:0)
我有一个可能的解决方案:
OPEN INPUT CUSTOMER-SALES-FILE
MOVE "N" TO SW-END-OF-FILE.
READ CUSTOMER-SALES-FILE INTO CUSTOMER-SALES-RECORD
AT END MOVE "Y" TO SW-END-OF-FILE
END-READ
IF SW-END-OF-FILE NOT= 'Y'
ADD 1 TO WS-CONT
END-IF
PERFORM B-370-RELEASE-RECORDS
UNTIL END-OF-FILE.
CLOSE CUSTOMER-SALES-FILE.