Comment : |
Langages disponibles : reporting, Maintain
La fonction PTOA convertit un nombre décimal condensé à partir d'un format numérique à un format alphanumérique. Elle conserve les décimales du nombre et justifie à droite celui-ci à l'aide d'espaces incorporés. Vous pouvez aussi ajouter des options pour modifier un certain nombre converti par PTOA.
Lors de l'utilisation de PTOA pour convertir un nombre contenant des décimales à une chaîne de caractères, vous devez spécifier un format alphanumérique suffisamment grand pour accueillir à la fois le nombre entier et les décimales de celui-ci. Par exemple, le format P12.2C est converti à A14. Si le format de sortie n'est pas assez grand, les décimales du côté extrème droit sont tronquées.
PTOA(number, '(format)', output)
où :
Numérique P (décimaux condensés)
est le nombre à convertir, ou le champ qui contient le numéro.
Alphanumérique
est le format de sortie du nombre délimités par des guillemets simples et parenthèses.
Seul le format décimal condensé est pris en charge. Inclure toutes les options de modification que vous voulez voir apparaître dans la sortie.
La valeur de format ne nécessite ni la même longueur ni le même nombre de décimales que le champ d'origine. Si vous modifiez le nombre de décimales, le résultat est arrondi. Si vous rendez la durée trop courte pour contenir la partie entière du nombre, des astérisques s'affichent à la place du numéro.
Si vous utilisez un nom de champ pour cet argument, précisez le nom sans les guillemets ou parenthèses. Cependant, les parenthèses doivent être comprises autour du format stocké dans ce champ. Par exemple :
FMT/A10 = '(P12.2C)';
Vous pouvez ensuite utiliser ce champ comme l'argument de format lors de l'utilisation de la fonction de votre requête :
COMPUTE ALPHA_GROSS/A20 = PTOA(PGROSS, FMT, ALPHA_GROSS);
Alphanumérique
est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples. La longueur de cet argument doit être plus grande que la longueur du nombre et doit prendre en considération les options d'édition et signes négatifs possibles.
PTOA est appelé à deux reprises pour convertir le champ PGROSS d'un nombre décimal condensé au format alphanumérique. Le format spécifié dans le premier appel à la fonction est stocké dans un champ virtuel nommé FMT. Le format spécifié dans le deuxième appel à la fonction n'inclut pas les décimales, la valeur est donc arrondie quand il apparaît :
DEFINE FILE EMPLOYEE PGROSS/P18.2=GROSS; FMT/A10='(P14.2C)'; END TABLE FILE EMPLOYEE PRINT PGROSS NOPRINT COMPUTE AGROSS/A17 = PTOA(PGROSS, FMT, AGROSS); AS '' COMPUTE BGROSS/A37 = '<- THIS AMOUNT IS' | PTOA(PGROSS, '(P5C)', 'A6') | ' WHEN ROUNDED'; AS '' IN +1 BY HIGHEST 1 PAY_DATE NOPRINT BY LAST_NAME NOPRINT END
La sortie est :
2,475.00 <- THIS AMOUNT IS 2,475 WHEN ROUNDED 1,815.00 <- THIS AMOUNT IS 1,815 WHEN ROUNDED 2,255.00 <- THIS AMOUNT IS 2,255 WHEN ROUNDED 750.00 <- THIS AMOUNT IS 750 WHEN ROUNDED 2,238.50 <- THIS AMOUNT IS 2,239 WHEN ROUNDED 1,540.00 <- THIS AMOUNT IS 1,540 WHEN ROUNDED 1,540.00 <- THIS AMOUNT IS 1,540 WHEN ROUNDED 1,342.00 <- THIS AMOUNT IS 1,342 WHEN ROUNDED 1,760.00 <- THIS AMOUNT IS 1,760 WHEN ROUNDED 1,100.00 <- THIS AMOUNT IS 1,100 WHEN ROUNDED 791.67 <- THIS AMOUNT IS 792 WHEN ROUNDED 916.67 <- THIS AMOUNT IS 917 WHEN ROUNDED
Information Builders |