Как подсчитать общее количество записей в файле, отображая только некоторые из них? - PullRequest
3 голосов
/ 30 марта 2019

Я использую Visual Cobol для создания программы, которая читает файл, имеет критерии ввода пользователя и отображает только те записи в файле, которые соответствуют критериям пользователя. Мне нужно отобразить количество записей, которые соответствуют критериям, которые я сделал с аккумулятором, но мне также нужно отобразить общее количество записей в файле, включая те, которые не отображаются.

Мне интересно, смогу ли я сделать это в выражении сортировки. Я попробовал несколько вещей, но я не уверен в необходимом синтаксисе.

Это мой текущий оператор сортировки:

   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 голосов
/ 05 апреля 2019

У меня есть возможное решение:

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