Guide
Guide
Guide
Guide développement
Version 2
1. Bonnes pratiques............................................................................................................................. 3
1) Général ........................................................................................................................................ 3
2) Présentation du code .................................................................................................................. 3
3) Les variables ................................................................................................................................ 3
4) Les instructions ............................................................................................................................ 4
5) Les variables globales .................................................................................................................. 4
6) Les fenêtres ................................................................................................................................. 4
7) Les écrans .................................................................................................................................... 4
8) Les fichiers ................................................................................................................................... 4
9) Les tables ..................................................................................................................................... 4
2. Aides au développement................................................................................................................. 5
1) Numéros réservés au spécifique ................................................................................................. 5
2) Traitements spécifiques .............................................................................................................. 5
3) Traitements compilés .................................................................................................................. 5
4) Limites des écrans ....................................................................................................................... 5
5) Limites des tables ........................................................................................................................ 6
6) Limites des fenêtres .................................................................................................................... 6
7) Limites des objets ........................................................................................................................ 6
8) Limites des types de données ..................................................................................................... 6
9) Limites des codes consultation ................................................................................................... 6
1) Général
Tous les éléments spécifiques doivent être rattachés à un code activité spécifique commençant par
« Y ».
Un code activité doit être créé pour chaque nouveau développement, même non complexe.
Comme pour les codes activité, chaque élément créé (champ, table, écran, …) doit commencer par
« Y ».
2) Présentation du code
3) Les variables
Le nom d'une variable doit être suffisamment explicite (Exemple : on évite donc les variables YVAR1,
YTMP4, …)
Ne pas utiliser de négations dans le nom d'une variable (Exemple : YPAS_OK > Si c'est vrai alors c'est
faux …).
Ne jamais déclarer de variables Char sans préciser la dimension.
Pour la gestion des booléens, il est possible d’utiliser un « Shortint » associé à un commentaire
précisant les valeurs utilisées. (Exemple : Local Shortint YVERIF_BPC # Permet de savoir si le client
existe (1=Oui et 0=Non)).
Lors de l’utilisation d’un menu local 1, préférer tester les valeurs « [V]G_OUI » et « [V]G_NON » (ou
« [V]G_YES » et « [V]G_NO ») car plus explicites.
Toujours mettre les classes de variables devant leur nom.
Les instructions « Errbox », « Infbox », etc sont à remplacer par « Call ERREUR() FROM GESECRAN »
etc.
Ne pas réaliser d'opérations en base de données sans transactions et vérification de « [S]fstat ».
Limiter au maximum l'utilisation de l'instruction « Filter ».
Ne jamais écrire deux instructions sur une seule ligne (grâce au caractère « : ») à l’exception des
déclarations de tables avec « clalev() ».
Ne jamais avoir deux instructions « Return » pour une même étiquette.
6) Les fenêtres
Ajouter les listes gauches et onglets en dernière ligne dans les fenêtres mais en changeant
éventuellement sa position via le champ « Rang ».
Les menus et boutons sont créés avec des lettres en minuscules.
7) Les écrans
Lors de l’ajout de blocs, toujours les positionner en dernier dans la liste en changeant éventuellement
l’ordre via le champ dédié.
8) Les fichiers
9) Les tables
Lors de l’ajout d’un champ de type « Menu local » dans une table, toujours l’initialiser (valeur 0
incohérente).
2) Traitements spécifiques
3) Traitements compilés
Les abréviations des écrans sont limitées à 4 caractères jusqu’en V6 et à 8 caractères à partir de la V7.
Le maximum de blocs/sections est de 15.
Le nombre de champs maximum est de 500 par écran. Si l’écran doit être validé, la limite est de 240
champs jusqu’en V9 et 300 champs à partir de la V11.
Les abréviations des tables sont limitées à 3 caractères jusqu’en V6 et à 7 caractères à partir de la V7.
Les index sont limités à 256 caractères et 16 champs.
Les enregistrements sont limités à 8060 octets sous SQL Server et 32ko sous Oracle.
Le nombre de champs maximum est de 255 par table et avec les dimensions on ne peut pas dépasser
512 colonnes.
Un seul champ de type blob ou clob par table avec une taille totale de l’enregistrement limitée à 2Go.
Impossible d'ouvrir plus de 255 tables simultanément.
Les codes objets sont sur 3 caractères jusqu’en V6 et peuvent être sur 8 caractères à partir de la V7.
Les codes des types de données sont limités à 3 caractères jusqu’en V6 et à 8 caractères à partir de la
V7.
Les codes des consultations sont limités à 3 caractères jusqu’en V6 et à 5 caractères à partir de la V7.