Les fragments disponibles

Ces fragments n'appellent pas de micro-patterns mais facilitent la saisie du code en affichant un assistant avec des paramètres à valoriser. Les lignes de code correspondantes sont ainsi toujours correctement formatées.

Remarque : Les fragments permettant d'insérer des micro-patterns ne sont pas documentés en tant que tels. En revanche, les micro-patterns qu'ils insèrent sont documentés dans Principe et utilisation des micro-patterns.
Vous pouvez insérer les fragments suivants pour insérer du code :
  • Insertion d'indices. Ce fragment permet d'insérer les 3 indices générés automatiquement à partir de la déclaration d'une table : IXXNNL pour le nombre d’enregistrements stockés dans la table, IXXNNR pour la recherche dans la table et IXXNNM pour le nombre maximum d’enregistrements.
    Exemple : A partir du fragment Insertion d'indices, les lignes de code suivantes (correspondant aux valeurs par défaut des variables) sont insérées dans le code.
           05           IINDL PICTURE S9(4) VALUE  ZERO.
           05           IINDR PICTURE S9(4) VALUE  ZERO.
           05           IINDM PICTURE S9(4) VALUE +100.
  • Insertion d'une recherche (SCH/SCB). Ce fragment est utilisé pour une recherche de Rubrique dans une table triée. La Rubrique est indiquée dans le second opérande. Le code de la table est indiqué dans le premier opérande. Ce code doit inclure le radical du code dans la WORKING-STORAGE SECTION, s'il existe (1- par exemple). Il peut être suivi du nom de la Rubrique s’il est différent du nom de la Rubrique à rechercher.

    La recherche est effectuée avec les indices standard associés à la table. Si la recherche est infructueuse, l’indice IXXNNR sera supérieur à l’indice IXXNNL.

    Avec SCH, la recherche s'interrompt dès que l’argument de la table est supérieur à l’argument recherché. Ce n'est pas le cas avec SCB.

    Lorsque le fragment Insertion d'une recherche (SCH/SCB) est inséré, une ligne de commentaire est automatiquement ajoutée dans le code avant l'insertion. Cette ligne contient @SCH ou @SCB, suivi des deux opérandes entre guillemets.

    Exemple : Dans l'exemple suivant, W-WK00-TABLE1 correspond au code de la table indiqué dans le premier opérande et W-WK00-VAL1 est la Rubrique indiquée dans le second opérande. Les lignes suivantes sont alors insérées dans le code.
    *@SCH "W-WK00-TABLE1 W-WK00-VAL1"  
             MOVE 1 TO  IINDIR.                          
       FXXYY-NNN. IF IINDIR NOT > IINDIL               
         AND      W-WK00-TABLE1  (IINDIR)            
         NOT  =      W-WK00-VAL1              
         ADD 1 TO   IINDIR  GO TO FXXYY-NNN.
  • Insertion d'une boucle. Ce fragment permet d'indiquer qu'un traitement doit être effectué de façon répétitive. Vous indiquez le nom du traitement dans l'opérande. Quand vous insérez le fragment, une ligne de commentaire @LOOP est automatiquement ajoutée dans le code pour indiquer le début de la boucle. La ligne suivante contient un ordre COBOL PERFORM suivi du nom du traitement et de TIMES. Vous devez ajouter manuellement dans le code, avant TIMES, le nombre de répétitions du traitement. Spécifiez le traitement à effectuer sur les lignes suivantes. L'ordre END-PERFORM est automatiquement généré pour indiquer la fin de la boucle.
    Exemple : Vous voulez insérer un traitement MYPROCESSING. Vous indiquez MYPROCESSING en tant qu'opérande du fragment Insertion d'une boucle et vous insérez le fragment. Vous indiquez le nombre de répétitions du traitement (3 dans l'exemple) et spécifiez les lignes du traitement avant l'ordre END-PERFORM. Les lignes suivantes sont alors insérées dans le code.
    *@LOOP 
         PERFORM MYPROCESSING 3 TIMES
    *     Insert code
         MYPROCESSING 1ST LINE
         MYPROCESSING 2ND LINE
         END-PERFORM.
  • Insertion de l'ordre EVALUATE. Ce fragment permet d'insérer l'ordre COBOL EVALUATE pour tester plusieurs conditions d'une Rubrique et spécifier une action pour chacune d'elles.
    Exemple : Dans l'exemple suivant, vous insérez un ordre EVALUATE dans une sous-fonction F28BB. Dans l'assistant d'insertion du fragment, vous indiquez YA01-XCSDO en tant que Rubrique dont la valeur sera testée. Vous indiquez value1 en tant que condition. Vous précisez que le traitement MOVE 'value2' TO YA01-XTSD00 sera exécuté si la valeur de la Rubrique est value1. Vous indiquez aussi que le traitement MOVE 'value3' TO YA01-XTSD00 sera exécuté si la valeur de la Rubrique n'est pas value1. Les lignes suivantes sont alors insérées dans le code.
    *N28BB.    NOTE *EVALUATE statement for YA01-CSDO  *.
     F28BB.  
     *<insert code for F28BB here>
           
          EVALUATE  YA01-XCSDO     
            WHEN 'value1'	
                 MOVE 'value2' TO YA01-XTSD00
            WHEN OTHER
                 MOVE 'value3' TO YA01-XTSD00
          END-EVALUATE.
    F28BB-FN. EXIT.
  • Insertion d'une ligne en zone de travail et de lien. Ce fragment ne peut être inséré que dans une Macro. Il permet d'insérer un emplacement dans la WORKING-STORAGE SECTION en fonction des deux caractères que vous saisissez. Par exemple, si vous indiquez AA en tant que paramètre du fragment, l'emplacement WAA s'insère dans le code de la Macro.

Vos commentaires