La structure historique d'un programme RPG-IV est la suivante : H [paramètres généraux] F [déclarations des fichiers] D [déclaration des variables de travail] I [description des enregistrements lus] C [traitement] O [description des enregistrements écrits] **CTDATA <---> source des tableaux chargés à la compilation. (SI CTDATA en spécif D) La spécif H est facultative, les I et O sont générées par le compilateur cela sera donc majoritairement : F D C. En version 7.2, les déclarations se font en format libre ctl-opt (H), dcl-f (F), dcl-ds et dcl-s (D) |
! RPG-IV ! Valeur ! !---------!----------------------------! ! 6 ! H ! ! ! ! ! 7-80 ! Mots-clés (format libre) ! ! ! ! !---------!----------------------------! La spécification de contrôle peut occuper plusieurs lignes Un mot-clé peut être scindé sur plusieurs lignes (sans marque de continuation) Exemple : *.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+. HKeywords++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ H DATEDIT(*MDY) DATFMT(*MDY/) H DECEDIT('.') |
En version 7.1 avec SI51094 et en version 7.2, la notion de spécif devient faculative, les mots-clés sont les mêmes. Vous utiliserez à la place d'un H en colonne 6 ctl-opt et ; Exemple : ctl-opt DATEDIT(*MDY) DATFMT(*MDY/) DECEDIT('.') ; ATTENTION, la colonne 6 est toujours réservée aux specifs, vous écrivez ce que vous voulez à partir de la colonne 8 ! Nous pouvons aussi mélanger nouvelle écriture et ancienne écriture. Exemple : ctl-opt DATEDIT(*MDY) DATFMT(*MDY/); H DECEDIT('.') |
+ DATEDIT(format<séparateur>) format d'édition de la date (*DATE) Représente le format d'édition des variables numériques avec édit-code Y formats valides : *YMD, *MDY, *DMY séparateur par défaut : '/' (& = l'espace) + DATFMT(format<séparateur>) format par défaut des variables date. formats valides : *YMD,*MDY,*DMY,*JUL - *ISO,*USA,*EUR,*JIS séparateurs : <--- au choix ----> <---- imposé -----> + DECEDIT('x') format d'édition des données numériques. '.' 123/1000 = .123 <- défaut ',' = ,123 '0.' = 0.123 '0,' = 0,123 + TIMFMT(format<séparateur>) format par défaut des variables heure formats valides : *HMS - *ISO,*USA,*EUR,*JIS |
Mots-clés des versions V3R60 / V3R20 : + NOMAIN (sans paramètres) : source ne contenant que des procédures. n'ayant pas de programme principal, il n'y aura pas de cycle généré par le compilateur. + COPYRIGHT('votre signature') génère un copyright dans le programme ou le programme de service. Mots-clés en V3R70 : + COPYNEST(1 -2048) support des /COPY imbriqués c'est à dire copie d'un source par : /copy fichier,membre contenant lui même un ordre /copy |
+ EXPROPTS( ) précision des variables intermédiaires. *MAXDIGITS nombre maximal de chiffres *RESDECPOS précision de la variable résultat + FLTDIV(*NO ! *YES) indique si les divisions (dans les expressions) sont faites en notation scientifique. Nouveaux mots-clés en spécif H V4R20 : (pratiquement tous les paramètres des commandes de création sauf DBGVIEW) particulièrement + ALWNULL support (ou non) des valeurs nulles ALWNULL(*NO + pas de support des valeurs nulles *INPUTONLY + en lecture uniquement *USRCTL) + support et gestion de la fonction %NULLIND() |
Nouveaux mots-clés en spécif H V4R40 : + OPTION(*SRCSTMT | *NOSRCSTMT) avec *SRCSTMT le compilateur génère une table de DEBUG ou chaque instruction porte le N° de ligne source avec *NOSRCSTMT les lignes dans l'objet sont numérotées en séquence + OPTION(*DEBUGIO | *NODEBUGIO) avec *DEBUGIO le compilateur génère dans la table de DEBUG une ligne par spécif I (ou O). ainsi un READ peut entrainer 10 points d'arret (ou plus) en mode pas à pas. avec *NODEBUGIO, un READ entraine UN SEUL point d'arret. |