2011-02-24 3 views
1

Je travaillais sur un programme qui devait utiliser une instruction de fusion pour assembler deux fichiers et les trier. Bien sûr, je ne serais pas ici si je n'avais pas de problème. Quand je cours mon programme je dois faire un peu de travail après pour ajouter à la sortie. Quand il va exécuter ce paragraphe il donne une erreur qui dit "Fusionner le fichier hors des séquences ORDER-FILE-SOR". Voici mon code:Instruction de fusion (COBOL)

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. 

La sortie il montre est la ligne de cap et il semble s'arrêter à la ligne « RETOUR CAMPAGNES-FILE-SORT ».

Toute aide serait grandement appréciée car je pense que le reste du programme fonctionnera très bien, mais je ne peux pas le vérifier jusqu'à ce que ce soit corrigé.

+1

À ce jour, je continue à être surpris que COBOL est toujours enseigné dans les écoles :) – BoltClock

+0

Tant que Cobol est la lingua franca des entreprises mondiales, il y aura un clin d'œil des établissements d'enseignement. –

Répondre

1

Le verbe MERGE combine deux ou plusieurs fichiers séquentiellement identiques. Pour que cela fonctionne, vous devez déjà les avoir triés selon un ensemble identique de touches ascendantes/descendantes.

Si votre entrée est pas déjà dans cet ordre, vous devrez peut-être pour trier chaque fichier par DEMANDE-DATE-S, RÉGLA GES-NUMBER-S, CUST-ORDER-NUMÉRO-S et PARTIEL NUMÉRO-S