PTOA: Conversione di un numero decimale compresso in formato alfanumerico

Come:

Lingue disponibili: reporting, Maintain

La funzione PTOA converte unnumero decimale compresso da formato numerico in formato alfanumerico. Questa funzione mantiene le posizioni decimali del numero e lo giustica a destra con spazi iniziali. È inoltre possibile aggiungere opzioni di modifica ad un numero convertito da PTOA.

Quando si utilizza PTOA per convertire un numero contenente decimali in una stringa di caratteri, è necessario specificare un formato alfanumerico abbastanza grande per accomodare le porzioni sia dei valori interi che decimali del numero. Per esempio, un formato P12.2C viene convertito in A14. Se il formato d'emissione non è grande abbastanza, i caratteri più a destra vengono troncati.


Inizio pagina

x
Sintassi: Come convertire un numero decimale compresso in formato alfanumerico
PTOA(number, '(format)', output)

dove:

numero

P numerico (decimale compresso)

Il numero da convertire, o il nome di un campo che contiene il numero.

formato

Alfanumerico

Il formato di emissione del numero racchiuso in virgolette singole e parentesi.

Solo il formato decimale compresso non è supportato. Includere qualsiasi opzione di modifica che si desidera fa apparire nell'emissione.

Il valore di formato non richiede la stessa lunghezza o numero di posizioni decimali come il campo originale. Se si modifica il numero di posizioni decimali, il risultato viene arrotondato. Se la lunghezza è troppo corta per mantenere la porzione intera del numero, gli asterisci si visualizzano, invece del numero.

Se si usa un nome campo per questo argomento, specificare il nome senza virgolette o parentesi. Tuttavia, le parentesi devono essere incluse intorno ale formato memorizzato in questo campo. Per esempio:

FMT/A10 = '(P12.2C)';

È possibile, quindi, usare questo campo come argomento formato quando si usa la funzione nella propria richiesta.

COMPUTE ALPHA_GROSS/A20 = PTOA(PGROSS, FMT, ALPHA_GROSS);
emissione

Alfanumerico

Nome del campo che contiene il risultato o il formato del valore di emissione racchiuso tra virgolette singole. La lunghezza di questo argomento deve essere maggiore rispetto a quella del numero e deve tenere conto delle opzioni di modifica e di un eventuale segno negativo.



Esempio: Conversione da formato compresso a formato alfanumerico

PTOA viene chiamto due volte per convertire il campo PGROSS da decimale compresso in formato alfanumerico. Il formato specificato nella prima chiamata alla funzione viene memorizzato in un campo virtuale chiamato FMT. Il formato specificato nella seconda chiamata alla funzione non include le posizioni decimali, quindi il valore viene arrotondato quando appare:

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

L'emissione è:

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

WebFOCUS