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.
WinDev Code:
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.