> Tech > Le programme DMAPDEMO2

Le programme DMAPDEMO2

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

  La figure 2 montre le programme DMAPDEMO2, qui illustre l'utilisation de ces procédures. Comme je veux utiliser des noms plus longs pour certains paramètres, j'utilise une interface de prototype de procédure. L'objet du programme est d'accepter deux champs packés à  l'exécution comme paramètres, d'appliquer une opération arithmétique demandée paramétriquement aux

Le programme DMAPDEMO2

deux valeurs à  l’exécution, puis de stocker le résultat dans un champ caractère contenant le résultat packé. Le premier paramètre transmis à  ce programme (PrmFld1) est un champ caractère de 16 octets contenant des données packées. Les deux paramètres suivants (PrmFld1Digits, ParmFld1Decimals) indiquent la précision et le nombre de décimales pour la première valeur de donnée packée. Les trois paramètres suivants (Prm-Fld2, PrmFld2Digits et PrmFld2Deci-mals) représentent la même information que le premier jeu de paramètres mais pour une seconde valeur packée obtenue à  l’intérieur d’un champ caractère de 16 octets. Le paramètre suivant (PrmOp) est l’opération que l’on veut effectuer sur ces deux champs packés. A noter que j’ai codé quatre constantes nommées – OpAdd, OpSub, OpMult et OpDiv – à  utiliser pour tester la valeur de ce paramètre. Les deux derniers paramètres (Prm-ResultDigits, PrmResultDecimals) définissent la précision et le nombre de décimales souhaitées dans le résultat final. Le programme invoque pCnvPac-kedToThirtyFmt deux fois pour convertir les deux paramètres packés à  l’exécution au format Thirty. Une fois que le premier appel à  pCnvPackedToThirtyFmt est terminé, la représentation au format Thirty du premier paramètre packé à  l’exécution se trouve dans Num1_30_0 et Num1_30_30. De même, après le second appel à  pCnvPackedToThirtyFmt, la représentation au format Thirty du deuxième paramètre packé à  l’exécution est dans Num2_30_0 et Num2_30_30. Ensuite, le bloc Select/EndSl effectue l’opération demandée sur les deux valeurs au format Thirty. Comme on peut le voir, la procédure arithmétique invoquée dépend de PrmOp. Après le bloc Select/EndSl, on trouve un appel à  pCnvPackedFromThirtyFmt, qui reconvertit le résultat en une valeur packée unique.

  Même si ce petit programme ne présente pas de technique permet-tant d’effectuer des calculs arithmétiques mixtes (à  l’exécution et à  la compilation), la technique est simple. Aucune loi ne dit que pCnvPackedToThirtyFmt doit opérer sur un champ packé à  l’exécution. On peut aussi utiliser cette procédure pour convertir un champ packé à  la compilation au format Thirty. Par exemple, si l’on veut ajouter un champ packé à  la compilation à  un champ packé à  l’exécution, utiliser pCnvPackedToThirtyFmt sur les deux champs packés pour obtenir la représentation au format Thirty, puis appliquer l’une des quatre procédures arithmétiques expliquées ici.

Téléchargez gratuitement cette ressource

Guide de facturation électronique, voie royale pour le DAF et la digitalisation de la fonction finance

Guide de facturation électronique, voie royale pour le DAF et la digitalisation de la fonction finance

Ce livre blanc expose les problématiques auxquelles sont confrontés les DAF modernes et souligne les bénéfices de la facturation électronique pour la trésorerie. Il dévoile également le processus de déploiement de ce projet de transformation digitale que la réglementation rendra bientôt obligatoire.

Tech - Par iTPro - Publié le 24 juin 2010