Ver Mensaje Individual
  #1
Antiguo 11 de agosto de 2019, 22:44
IDENTIFICATION DIVISION
Dasije
 Forero
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
noviembre 2015
Jerez De La Frontera (cádiz)
03.10.2021 20:42
PROCEDURE DIVISION
Posts: 182
Enviado: 1
Recibido: 79
Soluiones: 7
Reputación: 13
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado Convertir DECIMAL a NUMERO para COBOL

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.

Código WinDev:
  1. PROCEDURE PUBLIC  convertir_DECIMAL_PIC_COBOL(IMPORTE is numeric(15,2), NUMERO_ENTEROS is int, SIGNO is boolean)
  2.  
  3. IMPORTE_FINAL is numeric(15,2)
  4.  
  5. CARACTER_SIGNO is fixed string on 1 = ""
  6.  
  7. RESULTADO is UNICODE string = ""
  8.  
  9. SWITCH IMPORTE
  10.     CASE < 0
  11.         IMPORTE_FINAL = IMPORTE * (-1)
  12.         CARACTER_SIGNO = "N"
  13.     OTHER CASE
  14.         IMPORTE_FINAL = IMPORTE
  15.         CARACTER_SIGNO = "0"
  16. END
  17.  
  18. SWITCH SIGNO
  19.     CASE True
  20.         NUMERO_ENTEROS-=1
  21.         RESULTADO = CARACTER_SIGNO+NumToString((IMPORTE_FINAL * 100),"0"+NUMERO_ENTEROS+".0F")     
  22.     CASE False
  23.         RESULTADO = NumToString((IMPORTE_FINAL * 100),"0"+NUMERO_ENTEROS+".0F")
  24. END
  25.  
  26. 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.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita