...
Avertissement |
---|
Ne pas indenter tout le source (CTRL+SHIFT+S) car cela perdrait les alignements manuels. |
...
Declarations
1 -
...
Déclarations par référence
Pour déclarer des variables il vaut mieux faire des déclarations en référence à une autre variable ou à une propriété (du MLD). Si l'entité n'est pas utilisée dans le programme, vous pouvez aussi indiquer à quelle entité appartient la propriété dans l'ordre REF.
Pour declarer des listes il vaut mieux faire référence à une entité (1 ou plusieurs entités si nécessaire
When declaring variables it is better to declare in reference to another variable or property (of an LDM). If the LDM is not used in the program, you can also specify that the property belongs to a LDM in the REF order.
When declaring lists it is better to declare in reference to an LDM (1 or more LDM if needed).
Bloc de code | ||
---|---|---|
| ||
/* ___ VariablesDéclarations des declarationsvariables ___________________________________________________________ REF(A5_COD_ARTICLE) w_COD_ARTICLE_1 /* definingdéfinir la thevariable w_COD_ARTICLE_1 as the de la même façon que la propriété A5_COD_ARTICLE REF(A5_COD_ARTICLE HL_ART_ALCOOL) w_COD_ARTICLE_2 /* definingdéfinir la thevariable w_COD_ARTICLE_2 as the de la même façon que la propriété A5_COD_ARTICLE ofde thel'entité HL_ART_ALCOOL LDM REF(w_COD_ARTICLE_2) w_COD_ARTICLE_3 /* définir definingla thevariable w_COD_ARTICLE_3 as thede la même façon que la variable w_COD_ARTICLE_2 variable /* ___ ListsDéclarations des declarationslistes _______________________________________________________________ LISTLISTE LST_ART_ALC_1 *REF_LDMMLD(HL_ART_ALCOOL) /* definingdéfinir aune listliste withavec alltoutes theles propertiespropriétés ofde thel'entité HL_ART_ALCOOL ldm LISTLISTE LST_ART_ALC_2 *REF_LDMMLD(HL_ART_ALCOOL) *REF_LDMMLD(HL_ART_LANGUE) /* definingdéfinir aune listliste withavec alltoutes theles propertiespropriétés ofdes theentités HL_ART_ALCOOL ldm and theet HL_ART_LANGUE ldm LISTLISTE LST_ART_ALC_3 *REF_LDMMLD(HL_ART_ALCOOL) *REF_LDMMLD(HL_ART_LANGUE) w_COD_ARTICLE_1 /* definingdéfinir aune listliste withavec alltoutes theles propertiespropriétés ofdes theentités HL_ART_ALCOOL ldm and theet HL_ART_LANGUE et ldmégalement plusla thevariable w_COD_ARTICLE_1 variable |
2 -
...
Taille des variables
1 - Variables ALPHA
Les variables
...
de type Alpha peuvent avoir une taille comprise entre 1 et 8386552 .
La taille de la variable peut auss en
Alpha variables range from 1 to 8386552 .
The length can also be indicated in :
- kilobytes (* 1024) by adding the suffix en ajoutant le suffixe "K" to the value (up to à la valeur (jusqu'à 8189K), orou bien
- megabytes (* 1048576) by adding the suffix en ajoutant le suffixe "M" to the value (up to à la valeur (jusqu'à 7M)
Remarque | ||
---|---|---|
| ||
If Autant que possible, ALPHA variables must be declared in reference to another les variables de type ALPHA doivent être déclarées en référence à une propriété ou une autre variable. |
Bloc de code | ||
---|---|---|
| ||
/* ___ Déclarations Variablesdes declarationsvariables ___________________________________________________________ ALPHA( 35) MyVariable1 ALPHA( 2205) MyVariable2 ALPHA( 5K) MyVariable3 ALPHA( 7M) MyVariable4 |
2 - Variables NUM_E
Les variables
...
de type NUM_E variables are defined with a Total Length value and a decimal value sont définies par la taille Totale de la variable et le nombre de décimales : NUM_E(totalLengthValueNombreDeChiffresAuTotal, decimalValue)nombreDeDécimales)
La taille totale de la variable numérique doit être comprise entre 1 et 63 .
La taille correspond au nombre total de chiffres (décimales comprises).
La valeur décimale est inclue dans le nombre total de chiffres.
Comme le nombre de décimales est inclue dans le nombre total de chiffre, le nombre de décimales sera inférieur ou égal au nombre total de chiffresThe total length value range from 1 to 63 .
The length value is the total number of digits.
The decimal value is included in the number of digits .
So, as the decimal value is included in the number of digits, the decimal value must be less than or equal to the length.
Remarque | ||
---|---|---|
| ||
If Autant que possible, les variables de type NUM_E variables must be declared in reference to another doivent être déclarées en référence à une propriété ou une autre variable. |
Bloc de code | ||
---|---|---|
| ||
/* ___ Déclarations Variablesdes declarationsvariables ___________________________________________________________ NUM_E( 8,0) MyNum1 /* 8 digitschiffres, 8 forpour thela integerpartie partentière, 0 forpour thela decimalpartie partdécimale NUM_E( 15,3) MyNum2 /* 15 digitschiffres, 12 forpour thela integerpartie partentière, 3 forpour thela decimalpartie partdécimale NUM_E( 5,5) MyNum3 /* 5 digitschiffres, 0 forpour thela integerpartie partentière, 5 forpour thela decimalpartie partdécimale |
Constants
Constants must be used in order to replace an hard coded value in a code.
...
Constantes
Les constantes sont utilisées pour remplacer une valeur "en dur".
Une constante peut être utilisée pour afficher un valeur texte, un code action, un code retourA constant can be used for a displayed text value, an action code value, a return code value, etc.
1 -
...
Définition
To define Pour définir a new constant, simply go the the L4G editor , Repository menu , Constant dictionary line (or press F9 )
- The name should be a representative name for the constant,
- the value is what should replace the constant in the code,
- the "Translatable constant checkbox is used when a constant must be translated (for example for a text value)
2 - Usage
constante, il suffiit d'aller dans menu Référentiel de l'éditeur L4G, séléctionner la ligne de menu Dictionnaire des constantes (ou bien d'appuyer sur F9).
- Le nom doit être représentatif de la valeur de la constante,
- la valeur est ce qui va remplacer la constante dans le code,
- la case à cocher "Constante traduisible" est à cocher pour les textes dont on voudra qu'ils soient extraits par le gestionnaire de traduction (par exemple pour les constantes textes affichées dans un écran)
2 - Utilisation
Exemples d'utilisations des constantes Examples of consant usages :
Bloc de code |
---|
/* ___ Code withoutsans constantsconstantes _____________________________________________________________ ifsi codeAction = 'CR' btn_action:texttexte = 'CreateCréer' elsesinon btn_action:texttexte = 'ModifyModifier' endfin ... returnCode = 'EX' /* ___ Code withavec constantsconstantes ______________________________________________________________ ifsi codeAction = _ACTION_CREATION btn_action:texttexte = _TEXT_CREATE elsesinon btn_action:texttexte = _TEXT_MODIFY endfin ... returnCode = _RETURN_EXIT |
...
...
Valeurs numeriques
1 -
...
Valeurs arrondies
Pour effectuer un calcul avec une valeur arrondie, on utilisera la lettre H juste avant le signe =.
Sans l'opérateur H, le résultat serait tronqué.
La lettre H correspond à
...
To calculate a rounded value , we can use the letter H in front of the = sign.
Without the H operator the result will simply be truncated .
The H character instruction is for "Half adjustment".
Results in the range 0 to Les resultats compris entre 0 et 0.49 will be rounded down to 0, and results between seront arrondis à 0, les resultats compris entre 0.50 and et 0.99 will be rounded up to seront arrondis à 1.
Bloc de code |
---|
/* ___ DeclarationsDéclarations _____________________________________________________________________ NUM_E( 3,0) x NUM_E( 3,0) y /* ___ Code _____________________________________________________________________________ x = 2 / 3 /* x will containcontiendra 0 y H= 2 / 3 /* y will containcontiendra 1 |
2 -
...
Calcul du reste
To retrieves the remainder in a mathematical division we can use the remainder instruction.
The instruction remainder must be placed immediately after the arithmetical expression of the division .
...
Bloc de code |
---|
/* ___ Declarations _____________________________________________________________________ DECL_PGM /* global variables, DS, lists, cursors, parameters declarations INIT_PGM INITIALIZE WIN_2205 /* call the paragraph to load the data EXECUTE WIN_2205 /* show the window to the user WIN_2205 DECLARATION /* window variables, DS, lists, cursors, parameters declarations INITIALIZATION /* code to execute before displaying the window WORK_WITH_EVENTS OBJECTS_EVENTS... BTN_VALIDATE LeftButtonClick VERIFY /* call the verification paragraph VALIDATE /* call the validation paragraph TERMINATE /* end the window process VERIFICATION /* code to verify the data entered in the window by a user SEND_MSG *CLR_ALL /* clear the error messages if [errorCondition for object ZZ_JLP] prepare_msg hl21734 ZZ_JLP init_msg ZZ_JLP anomaly end ... VALIDATION /* code to store the data in the database after verification UPD_SQL or CREATE_SQL or ... |
...
Procedures
1 - Definition
A procedure is a block of code we can call from inside a program or from outside a program if the procedure is public.
...
Bloc de code | ||
---|---|---|
| ||
/* ___ Management Rule "My_Beautiful_MR" ________________________________________________ /* ___ Declarations _____________________________________________________________________ decl alpha( 50) w:01_val decl ref(cli_usr_:02 client) wCli_usr_:02 decl num_e(9,0) sqlcode_mr /* ___ Code _____________________________________________________________________________ wcli_usr_:02 = :03 if wcli_usr_:02 = *blank wcli_usr_:02 = *user end upd_sql client cli_usr_:02 = :wcli_usr_:02 sqlcode_mr = *sqlcode :06 insert_mr BOL_TRC_:05('*DEBUG';'my beautiful MR, sqlCode : '//sqlcode_mr ;1) :04 = sqlcode_mr |
2 - Usage
To use a MR, we simply have to insert it with the INSERT_MR order
...