PDA

Ver la Versión Completa : [Sintaxis] Convertir DECIMAL a NUMERO para COBOL


Dasije
11 de agosto de 2019, 23:44
Hola buenas.

Comparto el código para convertir un campo decimal/currency a campos numéricos legible para COBOL de IBM, muy útil para importación de archivos generados desde Windev.

PROCEDURE PUBLIC convertir_DECIMAL_PIC_COBOL(IMPORTE is numeric(15,2), NUMERO_ENTEROS is int, SIGNO is boolean)

IMPORTE_FINAL is numeric(15,2)

CARACTER_SIGNO is fixed string on 1 = ""

RESULTADO is UNICODE string = ""

SWITCH IMPORTE
CASE < 0
IMPORTE_FINAL = IMPORTE * (-1)
CARACTER_SIGNO = "N"
OTHER CASE
IMPORTE_FINAL = IMPORTE
CARACTER_SIGNO = "0"
END

SWITCH SIGNO
CASE True
NUMERO_ENTEROS-=1
RESULTADO = CARACTER_SIGNO+NumToString((IMPORTE_FINAL * 100),"0"+NUMERO_ENTEROS+".0F")
CASE False
RESULTADO = NumToString((IMPORTE_FINAL * 100),"0"+NUMERO_ENTEROS+".0F")
END

RESULT RESULTADO


Sí el número fuera -4.85 donde tiene 15 enteros y 2 decimales, el resultado sería así : N00000000000485

Saludos y espero que os sirvan para aquellos que trabajen desde la plataforma de IBM.