Заявление о слиянии (COBOL) - PullRequest
1 голос
/ 24 февраля 2011

Я работал над программой, в которой нужно было использовать оператор слияния, чтобы соединить два файла и отсортировать их. Конечно, я не был бы здесь, если бы у меня не было проблем. Когда я запускаю свою программу, мне нужно немного поработать, чтобы добавить результат. Когда он выполняет этот абзац, он выдает ошибку «Слияние файла из последовательностей ORDER-FILE-SOR». Вот мой код:

   100-MAIN.
       MERGE ORDERS-FILE-SORT
             ON ASCENDING KEY REQUEST-DATE-S
             ON ASCENDING KEY CUST-NUMBER-S
             ON ASCENDING KEY CUST-ORDER-NUMBER-S
             ON ASCENDING KEY PART-NUMBER-S
             USING ORDERS-FILE-PRIOR-IN
                   ORDERS-FILE-NEW-IN
             OUTPUT PROCEDURE 200-FILE-START
       STOP RUN.


   200-FILE-START.
       OPEN OUTPUT ORDERS-FILE-OUT

       ACCEPT WS-DATE FROM DATE
       MOVE RUN-MONTH TO MONTH-1
       MOVE RUN-DAY TO DAY-1
       MOVE RUN-YEAR TO YEAR-1

       PERFORM 300-NEXT-PAGE

       PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
           RETURN ORDERS-FILE-SORT
               AT END
                   MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
               NOT AT END
                   PERFORM 400-PROCESS-FILE
           END-RETURN
       END-PERFORM.

       CLOSE ORDERS-FILE-OUT.

Вывод, который он показывает, является строкой заголовка, и он, кажется, останавливается на строке «RETURN ORDERS-FILE-SORT».

Любая помощь будет принята с благодарностью, так как я чувствую, что остальная часть программы будет работать нормально, но я не могу проверить ее, пока это не будет исправлено.

1 Ответ

1 голос
/ 24 февраля 2011

Глагол MERGE объединяет два или более идентично упорядоченных файла.Чтобы это работало, вы, должно быть, уже отсортировали их в соответствии с идентичным набором восходящих / нисходящих ключей.

Если ваш ввод не находится в таком порядке, вам может потребоваться отсортировать каждый файл по REQUEST-DATE-S, CUST-NUMBER-S, CUST-NORBER-NUMBER-S и PART-NUMBER-S

...