Com­bien gère t’on l…
 
Notifications 
Reti­rer tout

Com­bien gère t’on les valeurs nulles en Rpg ?

Posts
Uti­li­sa­teurs
Reac­tions
131  Vu
0
Début du sujet

Bon­jour,

Com­ment gérer les valeurs nulles sur les variables Rpg ile ?

Cor­dia­le­ment,

2 Réponses 
0

En carte H ou dans la par­tie control ctl-opt, on ajoute ALWNULL(*USRCTL).

Au niveau variable, on ajoute le mot-clef NULLIND pour que la variable puisse sup­por­ter les valeurs nulles.

Au niveau usage dans le source, on uti­lise le %BIF %Nul­lind.

Exemple ci-des­sous :

    dcl-s dueDate date nullind;

    if not %nullind(dueDate) and dueDate > %date();
       sendReminder (custId : dueDate);
    endif;

Voir la page  https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/rzasd/dkwnullind.htm

0

Bon­jour,

on peut éga­le­ment décla­rer une DS cor­res­pon­dant aux zones d’un enre­gis­tre­ment de fichier de la façon suivante :

dcl-ds T34_n  likerec(F34:*ALL:*NULL);

Les zones de cette DS sont des indi­ca­teurs (boo­léens) por­tant le même nom que que les zones du for­mat F34 du fichier en entrée, sor­tie ou entrée et sor­tie (ici);

Ensuite on peut asso­cier cette DS à la DS repre­nant la des­crip­tion des zones du for­mat F34 toutes zones com­bi­nées (entrée ou sor­tie) ou d’en­trée ou de sortie :

dcl-ds T34_o likerec(F34:*ALL) nullind(T34_n) inz;

Il suf­fi­ra donc pour écrire un enre­gis­tre­ment de posi­tion­ner les boo­léens cor­res­pon­dant aux zones de la ds T34_O devant être nulles à *on.

De même, pour connaitre les zones conte­nant des valeurs nulles dans la DS conte­nant un enre­gis­tre­ment en lec­ture, il suf­fi­ra d’as­so­cier une DS d’in­di­ca­teurs à la DS de données :

dcl-ds T34_i likerec(F34:*ALL) nullind(T34_n) inz;

On pour­ra donc tes­ter les valeurs nulles de la façon suivante :

if not F34_n.toto; 
  dsply 'Valeur de Toto : ' + T34_i.toto;
else;
  dsply 'Toto n''a pas de valeur';
endif;

Remarque : ça marche aus­si en 7.3

Share :