> Tech > Boîte à  outils System iNews : Définir les valeurs des champs date, Compilation Conditionnelle

Boîte à  outils System iNews : Définir les valeurs des champs date, Compilation Conditionnelle

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

Par Scott Klement. Mise en ligne, 19 Mars 2007; Publication iSeries News : Septembre 2006

- Définir les valeurs des champs date
- Compilation Conditionnelle

Boîte à  outils System iNews : Définir les valeurs des champs date, Compilation Conditionnelle

Q : J’essaie d’utiliser des champs date natifs en RPG et j’ai du mal à compiler le programme. Je reçois un message d’erreur pour ID RNF305 indiquant une valeur de date invalide. Le programme de la figure 1 démontre le problème. Quand j’essaie de compiler ce programme, il se plaint de la valeur du champ MyDate. J’ai spécifié le format date comme *USA et « 01/01/2006 » respecte ce format. De quoi le compilateur se plaint-il ? Quel est le défaut de mon champ ?

R : Quand vous spécifiez le mot-clé DatFmt sur une D-spec, vous spécifiez bien le format du champ. Mais votre problème ne provient pas du champ. Il provient de la valeur littérale (D’12/25/2005′). Pour chaque type de données (caractère, numérique, date, par exemple), RPG impose des règles concernant les littéraux. Pour les champs date, les règles suivantes s’appliquent. Les littéraux date se présentent sous la forme D’xxx’ où

• D indique que le littéral est du type date
• xxx est une date valide (y compris le caractère séparateur) dans le format spécifié dans la Hspec (*ISO par défaut)
• la valeur date doit être mise entre apostrophes

Vos programmes peuvent inclure des champs date de divers formats, mais vous devez indiquer les littéraux date en un seul format, conformément aux règles ci-dessus.

Comme il ne contient pas une H-spec qui spécifie le mot-clé DatFmt, votre programme s’attend à des littéraux date dans le format par défaut (*ISO). Vous pouvez résoudre ce problème de deux manières :

• Spécifier les littéraux date en format (*ISO), comme dans l’exemple de la figure 2
• Inclure une H-spec qui spécifie le format date *USA comme ceci :

H DatFmt( *USA )

Ensuite, vous spécifierez tous les littéraux date en format *USA, indépendamment du format de vos champs date.

Téléchargez gratuitement cette ressource

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

HP Elite Slice G2 : optimisez la collaboration… et votre budget !

Téléchargez cette étude Forrester et découvrez comment booster la collaboration tout en dégageant un excellent R.O.I grâce au système de vidéoconférence HP Elite Slice G2 avec Microsoft Teams !

Tech - Par iTPro.fr - Publié le 24 juin 2010