fr en

RPG FreeForm - %LIST

Fonction :

La fonction %LIST définit une liste temporaire de valeurs.

Cela permet de tester si une variable correspond ou non aux valeurs définies dans la liste.

L’utilisation de la fonction %LIST améliore la lisibilité du code en évitant de complexifier une condition IF ou WHEN…

  •  

  •  

Syntaxe :

%LIST( ma_valeur_1 : ma_valeur_2 : ma_valeur_3 : : ma_valeur_n )

if ma_variable_a_tester IN %LIST( ma_valeur_1 : ma_valeur_2 : ma_valeur_3 : : ma_valeur_n );

if NOT ( ma_variable_a_tester IN %LIST( ma_valeur_1 : ma_valeur_2 : ma_valeur_3 : : ma_valeur_n ) );

Exemples :

Les exemples suivants, sont basés sur les variables déclarées ci-dessous : 

Dcl-s   ma_variable_a_tester   char(10)     inz(‘JEROME‘);

 Dcl-s   ma_valeur_1                char(10)     inz(‘YVES‘);
 Dcl-s   ma_valeur_2                char(10)     inz(‘YOUCEF‘);
 Dcl-s   ma_valeur_3                char(10)     inz(‘MICA‘);
 Dcl-s   ma_valeur_4                char(10)     inz(‘JEROME‘);

Exemple 1 : Tester si ma_variable_a_tester correspond à une de mes variables « ma_valeur_x » : SANS %LIST 

if  ma_variable_a_tester = ma_valeur_1
or ma_variable_a_tester = ma_valeur_2
or ma_variable_a_tester = ma_valeur_3
or ma_variable_a_tester = ma_valeur_4;
    … 
endif;

Exemple 2 : Tester si ma_variable_a_tester correspond à une de mes variables « ma_valeur_x » : AVEC %LIST 

 if ma_variable_a_tester IN %LIST(ma_valeur_1 : ma_valeur_2 : ma_ valeur_3 : ma_valeur_4);

endif;

Exemple 3 : Tester si ma_variable_a_tester ne correspond à aucune de mes variables « ma_valeur_x » : SANS %LIST 

if     ma_variable_a_tester <> ma_valeur_1
and ma_variable_a_tester <> ma_valeur_2
and ma_variable_a_tester <> ma_valeur_3
and ma_variable_a_tester <> ma_valeur_4;
    … 
endif;

Exemple 4 : Tester si ma_variable_a_tester ne correspond à aucune de mes variables « ma_valeur_x » : AVEC %LIST 

 if NOT ( ma_variable_a_tester IN %LIST(ma_valeur_1 : ma_valeur_2 : ma_ valeur_3 : ma_valeur_4) );

endif;

Conclusions :

La fonction %LIST est très simple à utiliser et apporte de la lisibilité au code.

 

  •