PTOA: Cómo convertir un número decimal empaquetado al formato alfanumérico

Cómo:

Idiomas disponibles: informes, Maintain

La función PTOA convierte un número decimal empaquetado del formato numérico al alfanumérico. Mantiene las posiciones decimales del número y lo justifica a la derecha, con espacios en blanco iniciales. También puede añadir opciones para editar los números convertidos por FPTOA.

Al usar PTOA para convertir un número que contenga decimales en una cadena de caracteres, especifique un formato alfanumérico lo suficientemente grande para acomodar las partes entera y decimal del número. Por ejemplo, un formato P12.2C queda convertido a A14. Si el formato de salida no es lo suficientemente grande, se truncan los caracteres situados más a la derecha.


Principio de página

x
Sintaxis: Cómo Convertir un número decimal empaquetado al formato alfanumérico
PTOA(number, '(format)', output)

donde:

number

P (decimal empaquetado)

Es el número que se va a convertir o el nombre del campo que lo contenga.

format

Alfanumérico

Es el formato del número entre comillas simples y paréntesis.

El único formato compatible es el decimal empaquetado. Incluya cualquier opción de edición que desee mostrar en la salida.

El valor de formato no tiene que tener la misma longitud o número de posiciones decimales que el campo original. Si cambia el número de posiciones decimales, se redondea el resultado. Si provoca que la longitud sea demasiado corta para incluir la porción entera del número, aparecen asteriscos en lugar del número.

Si utiliza un nombre de campo para este argumento, especifique el nombre sin comillas ni paréntesis. Sin embargo, el formato almacenado en este campo debe estar entre paréntesis. Por ejemplo:

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

Desde ese momento, podrá usar este campo como argumento de formato cuando esté usando la función en su solicitud:

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

Alfanumérico

Es el nombre del campo que contiene el resultado, o el formato del valor de salida puesto entre comillas solas. La longitud de este argumento debe ser mayor que la de number y debe tener en cuenta las opciones de edición y un posible signo negativo.



Ejemplo: Cómo convertir del formato empaquetado al alfanumérico

Se llama dos veces a PTOA para que convierta el campo PGROSS del formato decimal empaquetado al alfanumérico. El formato especificado en la primera llamada a la función se almacena en un campo virtual llamado FMT. El formato especificado en la segunda llamada a la función no incluye posiciones decimales, así que queda redondeado al aparecer:

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 salida es:

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