仅显示一些记录时,如何计算文件中的记录总数?

时间:2019-03-30 02:30:52

标签: cobol

我正在使用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.

几乎在那里...

1 个答案:

答案 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.