FTOA : Convertir un nombre à un format alphanumérique

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.


Haut de page

x
Syntaxe : Convertir un nombre à un format alphanumérique
PTOA(number, '(format)', output)

où :

number

Numérique P (décimaux condensés)

est le nombre à convertir, ou le champ qui contient le numéro.

format

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);
output

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.



Exemple : Convertir un format numérique à un format alphanumérique

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