En Free comment tester la numéricité d'une variable alpha. ?

RPG (3 et 4, free), CL, SQL, etc...
Répondre
germor
Messages : 75
Enregistré le : lun. 06 juin 2011, 08:01:43

En Free comment tester la numéricité d'une variable alpha. ?

Message par germor »

Bonjour,
Sous V7R1,
En RPG FREE, je cherche à faire un test de numéricité.

si les 6 premiers caractères de la variable P_Champ
sont numériques,
alors je met ces 6 car. dans la variable P_MatD,
sinon je met 6 zéros dans la variable P_MatD.

J'ai opté pour l'utilisation de Monitor...on-error...endmon.
le code :

Code : Tout sélectionner

 
     DP_Champ        S             40
     DP_MatD           S               6
     DP_Mat9            S               6  0       
...
          P_Mat9 = 0;
          P_MatB = '';
       Monitor;
         P_Mat9 = %dec(%Subst(P_Champ:1:6):6:0);
         P_MatB = %Subst(P_Champ:1:6);
       On-Error;
         P_MatB = '000000';
       ENDMON;      
Est-ce la bonne solution ?


Est il possible de ne pas écrire dans le QPJOBLOG autant de messages qu'il y a de tests de numéricité ?
le message généré :
Instruction . . . . . . . . : 3714
Message . . . . : Représentation alphanumérique d'une valeur numérique en
erreur.
Cause . . . . . : Une opération de conversion de données alphanumériques en
données numériques a détecté des données incorrectes. Que faire . . . :
Corrigez les données numériques.
Merci de vos réponses.

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

teste numérique ?

Message par cmasse »

Si vous ne voulez pas de messages dans la JOBLOG, essayez :

Code : Tout sélectionner

if %CHECK('0123456789' : %Subst(P_Champ:1:6) ) = 0;
  P_Mat9 = %dec(%Subst(P_Champ:1:6):6:0); 
endif;
Christian Massé (Volubis.fr)

germor
Messages : 75
Enregistré le : lun. 06 juin 2011, 08:01:43

(sans texte)

Message par germor »

merci.

Répondre