Le COBOL est généré à partir des informations indiquées dans l'éditeur de design de l'instance et éventuellement complétées par des insertions de code spécifique. Pour vous aider à comprendre le COBOL généré et à décider des points d'insertion de votre code spécifique, cette page explique les variables présentes dans le COBOL et décrit les fonctions générées.
La génération est possible à partir d'un Ecran de type standard, Client ou Moniteur Client.
Le COBOL généré est adapté au matériel et au moniteur de temps réel précisés dans la Définition du Dialogue ou de l'Ecran.
La WORKING-STORAGE SECTION et la PROCEDURE DIVISION sont décrites en détails dans cette page.
La WORKING-STORAGE SECTION contient les constantes et les variables utilisées par l'Ecran.
Code | Signification |
---|---|
CURPOS | Position du curseur dans l'Ecran en réception. CPOSL représente le numéro de ligne et CPOSC représente le numéro de colonne. |
CPOSN | Position absolue du curseur dans l'écran. L'origine correspond à CPOSL=1 et CPOSC=1. |
INA | Nombre de Rubriques dans la catégorie en-tête. Zone saisissable. |
INR | INA + nombre de Rubriques dans la catégorie répétitive. Zone saisissable. |
INZ | INA + nombre de Rubriques dans la catégorie bas d'écran. Zone saisissable. |
IRR | Nombre de répétitions dans la catégorie répétitive |
INT | Nombre total de Rubriques saisissables dans l'Ecran |
IER | Nombre de messages d'erreur sur l'Ecran |
PRDOC | Nom externe du programme souffleur |
DATOR | Zone où la date machine peut être stockée sous la forme AN-MOIS-JOUR |
DATSEP | Séparateur utilisé dans les dates (valeur par défaut : /) |
DATSET | Séparateur utilisé dans les dates (valeur par défaut : -) |
DAT6, DAT7, DAT8 | Zones pour formatage de date sous la forme JJMMAA ou AAMMJJ et d'édition (JJ/MM/AA par exemple). Générées si une Rubrique variable comporte un format date. |
DATCTY | Zone pour chargement du siècle |
DAT6C et DAT7C | Zones pour date avec siècle non formatée |
DAT8C | Zone pour formatage date avec siècle (JJ/MM/AAAA) |
DAT8G | Zone pour date au format grégorien (SSAA-MM-JJ) |
TIMCO | Zone pour chargement de l'heure |
TIMDAY | Zone pour formatage de l'heure (HH:MM:SS) |
5-xxnn-PROGE | Zone contenant le programme appelé, renseignée lors d'un débranchement |
Code | Signification |
---|---|
ICF | Variable de configuration :
|
OCF | Variable de configuration :
|
OPER | Code opération :
|
OPERD | Code opération pour débranchements différés
: O : Appel différé d'un autre Ecran Initialisé en F0520 et transféré dans OPER en F40 |
CATX | Catégorie en cours de traitement :
|
CATM | Code mouvement :
|
ICATR | Indice de la catégorie en cours de traitement (catégorie répétitive seulement) |
FT | Indicateur de fin de catégorie répétitive :
|
ddss-CF | Configuration du Segment ddss :
|
IK | Code retour lors d'un accès à un Segment :
|
Code | Signification |
---|---|
GR-EG | Mémorisation d'une erreur sur l'Ecran :
|
CATG | Mémorisation d'une erreur en cours sur une catégorie
:
|
PR-nn-corub | Mémorisation d'une erreur sur Rubrique (corub)
:
|
Code fonction | Objectif de la fonction |
---|---|
F0110 | Initialisations. Cette fonction est toujours générée. Elle contient les initialisations des zones de travail. Elle positionne le traitement à exécuter en cas d'erreur. Elle assure le débranchement vers la fonction d'affichage physique après une consultation de documentation (si un appel de documentation est renseigné sur la ligne de définition de l'Ecran). Elle assure la localisation de la position du curseur pour le premier affichage. |
F05 | Réception et contrôle du code opération (ICF=1). Cette fonction contient le conditionnement de l'ensemble des traitements de la partie réception du COBOL, de F05 à END-OF-RECEPTION (F45-FN) . Les fonctions automatiques de cette partie du COBOL sont générées si au moins une des zones de l'Ecran est déclarée de nature variable. |
F0510 | Réception de l'Ecran en entrée. |
F0512 | Traitement d'appel de documentation si un appel de documentation est renseigné sur la Définition de l'Ecran. Cette sous-fonction initialise les zones nécessaires au débranchement vers l'Ecran de documentation. |
F0520 | Détermination du code opération. La sous-fonction F0520 est générée si une Rubrique variable ou une Rubrique touche fonction est déclarée comme code opération dans l'onglet Lignes -CE de l'Ecran. Le code opération interne OPER est positionné en fonction de la valeur de la Rubrique déclarée comme code opération. Si une erreur est rencontrée sur la valeur du code opération, les traitements suivants en réception ne sont pas exécutés. |
F1010 | Positionnement de la catégorie en cours. Cette
fonction positionne la catégorie à traiter en réception en fonction
de l'indicateur CATX qui peut prendre les valeurs
suivantes :
Les traitements sont donc générés en fonction des catégories définies au niveau de la liste des zones de l'Ecran. Si aucune catégorie n'a été définie, l'Ecran est considéré comme une seule catégorie en-tête. Pour
une catégorie répétitive, les traitements suivants sont effectués
:
Si, après le traitement complet d'une catégorie (F15 à F3999-ITER-FI), une erreur a été détectée (CATG=E), GR-EG est positionné et les contrôles sur les catégories suivantes ne sont pas effectués. |
F15 | Détermination du code mouvement. Cette fonction est générée si au moins une Rubrique est déclarée comme code mouvement dans une catégorie dans la liste des zones de l'Ecran. Le
code mouvement interne CATM est positionné en fonction
des valeurs de la Rubrique de la catégorie déclarée comme code mouvement.
Cette déclaration peut être effectuée à deux niveaux :
Les sous-fonctions suivantes sont générées si un code
mouvement a été indiqué dans une catégorie :
Si une erreur est rencontrée sur la valeur du code mouvement, les traitements suivants en réception ne sont pas exécutés. |
F20 | Contrôles des Rubriques. Cette fonction générée dès qu'une Rubrique variable a été indiquée. Les sous-fonctions
suivantes sont générées en fonction des catégories contenant au moins
une Rubrique à contrôler :
Le traitement pour chacune des catégories contient une sous-fonction par Rubrique à contrôler de la catégorie. Les
contrôles sont les suivants :
Le conditionnement de chaque sous-fonction est généré en fonction de l'option de traitement de la Rubrique. Le résultat
des contrôles de chaque Rubrique est mémorisé dans une zone PR-nn-corub (où nn représente
les deux derniers caractères du nom de l'Ecran et corub le
nom de la Rubrique). Les valeurs suivantes sont possibles :
Toute erreur spécifique sur Rubrique (ou erreur utilisateur) entraîne le positionnement de CATG. La numérotation des sous-fonctions dépend, entre autres, du nombre de Rubriques et de leur position sur l'Ecran. Il ne faut donc pas faire de référence directe à une étiquette générée dans des traitements spécifiques, mais insérer les traitements spécifiques en relatif. |
F25 | Accès aux Segments en réception. Cette fonction est générée dès qu'un Segment est accédé en réception. Les sous-fonctions
suivantes sont générées en fonction des catégories contenant un Segment
en réception :
Les traitements de chaque catégorie incluent une sous-fonction
par accès à un Segment. Les traitements suivants sont effectués :
La sous-fonction F2599 est générée si au moins un des Segments en lecture peut être mis à jour. Elle contient le PERFORM des fonctions F80-ddss-UN, selon les Segments utilisés, ainsi que le positionnement du curseur sur la première Rubrique variable de la catégorie en cas d'erreur sur un Segment. La numérotation des sous-fonctions dépend, entre autres, du nombre de Rubriques et de leur position sur l'Ecran. Il ne faut donc pas faire de référence directe à une étiquette générée dans des traitements spécifiques, mais insérer les traitements spécifiques en relatif. |
F30 | Transfert des Rubriques. Cette fonction assure le transfert des Rubriques de l'Ecran dans les Rubriques correspondantes des Segments. Les sous-fonctions suivantes sont générées en
fonction des catégories contenant au moins un transfert de Rubriques
en réception :
|
F35 | Ecritures de mise à jour. Cette fonction assure la mise à jour des Segments. Elle n'est pas exécutée s'il y a eu au moins une erreur détectée par les contrôles (CATG). Les
sous-fonctions suivantes sont générées en fonction des catégories
contenant un Segment à mettre à jour :
L'accès est réalisé par PERFORM de la sous-fonction adéquate en F80 Dans le traitement de chaque catégorie se trouve une sous-fonction par Segment à mettre à jour, comprenant éventuellement plusieurs types d'accès. Pour
un Segment sans Segment précédent, l'accès est conditionné par la
valeur du code mouvement interne (CATM) correspondant
aux opérations suivantes :
Pour un Segment avec Segment précédent, l'accès est conditionné
par la configuration du Segment :
La Rubrique code mouvement de la catégorie ou de la ligne de catégorie répétitive est remise à blanc après la mise à jour. La numérotation des sous-fonctions dépend, entre autres, du nombre de Rubriques et de leur position sur l'Ecran. Il ne faut donc pas faire de référence directe à une étiquette générée dans des traitements spécifiques, mais insérer les traitements spécifiques en relatif. |
F3999-ITER-FN | GO TO F10 |
F3999-ITER-FT | EXIT |
F40 | Cette fonction contient les traitements de fin de la partie réception. Elle est exécutée si aucune erreur n'a été rencontrée. |
F4010 | Alimentation des clés d'affichage d'un nouvel
Ecran. Cette sous-fonction est exécutée pour une opération d'affichage ou de mise à jour. Elle contient l'alimentation des clés des Segments qui n'ont pas de Segment précédent et qui sont utilisés en affichage. En
fonction des catégories, la mémorisation de la clé d'accès des Segments
en affichage se trouve dans les sous-fonctions suivantes :
|
F4020 | Affichage de la suite de l'Ecran. Cette sous-fonction contient la mémorisation de la première clé pour l'affichage de la suite de l'Ecran si le Segment est utilisé dans la partie répétitive. |
F4030 | Abandon de la conversation. |
F4040 | Appel d'un autre Ecran. |
F45-FN | END-OF-RECEPTION |
F50 | Cette fonction contient le conditionnement de
l'ensemble des traitements de la partie affichage du COBOL, de F50 à END-OF-DISPLAY(F78-FN). Si une erreur a été détectée, un débranchement à la fonction de traitement des erreurs est effectué. Les champs des Rubriques valides resteront inchangés et ne seront pas transmis sur la ligne. |
F5010 | Cette sous-fonction est toujours générée. Elle assure les initialisations des zones de travail et de la description de l'Ecran en affichage. |
F55 | Gestion de la catégorie. Cette fonction positionne
la catégorie à traiter en affichage selon les différentes valeurs
de l'indicateur CATX :
Les traitements sont donc générés en fonction des catégories définies au niveau de la liste des zones de l'Ecran. Si aucune catégorie n'a été définie, l'Ecran est considéré comme une seule catégorie en-tête. Une catégorie répétitive contient les traitements suivants
:
|
F60 | Accès aux Segments en affichage. Cette fonction
est générée dès qu'un Segment est accédé en affichage. En fonction
des catégories contenant un segment en affichage, les sous-fonctions
suivantes sont générées :
Dans le traitement de chaque catégorie se trouve une sous-fonction
par accès à un Segment. Elle contient les traitements suivants :
Si un Segment est précédé par un autre Segment, sa lecture sera toujours une lecture directe, même en répétitive. La numérotation des sous-fonctions dépend, entre autres, du nombre de Rubriques et de leur position sur l'Ecran. Il ne faut donc pas faire de référence directe à une étiquette générée dans des traitements spécifiques, mais insérer les traitements spécifiques en relatif. |
F65 | Alimentation des Rubriques. Cette fonction
assure le transfert de Rubriques des Segments dans les Rubriques correspondantes
de l'Ecran. Selon les catégories de l'Ecran contenant au moins un
transfert de Rubrique en affichage, les sous-fonctions suivantes sont
générées :
|
F6999-ITER-FN. | GO TO F55 |
F6999-ITER-FT. | EXIT |
F70 | Traitement des erreurs. Cette fonction est
systématiquement générée. Elle contient les traitements suivants
:
|
F7020 | Positionnement des attributs. Cette sous-fonction est générée s'il existe au moins une zone déclarée de nature variable dans l'Ecran. |
F78-FN | END-OF-DISPLAY |
F8Z | Cette fonction est systématiquement générée. |
F8Z05 | Sous-fonction d'aide. Cette sous-fonction est générée si un appel de documentation est renseigné sur la Définition de l'Ecran. |
F8Z10 | Envoi de l'Ecran. Cette sous-fonction contient l'affichage du message selon la variante de langage utilisée. |
F8Z20 | Fin de programme. |
F80 F8095 F8098 |
Accès physiques. Sauvegarde de l'Ecran (appel de documentation) Accès au fichier des libellés d'erreur |
F81 F81ER F81UT F8110 F8115 F8120 F8125 F8130 F8135 F8140 |
Fonctions appelées par PERFORM. Traitement de fin anormale Mémorisation des erreurs pour affichage Contrôle de numéricité Initialisation des zones variables Contrôle et mise en forme date Transfert en affichage Traitement de la fonction d'aide Transfert en réception Calcul de la position du curseur |