Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
Retroceder   COBOL Foro > Programación e Informática > Otros lenguajes de programación > WinDev
WinDev Entorno RAD cada vez más popular.
Noticias y Avisos
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Información] Eejempo: convertir string binario en valor Kuk MicroFocus COBOL 0 9 de agosto de 2019 15:24
[Sintaxis] Tipo de dato decimal en mysql... Fito PowerCOBOL (ActiveX, v4 - v11) 8 4 de mayo de 2018 13:54
[Herramienta] DECIMAL-POINT IS COMMA en Cobview Gatomalo COBOL - General 1 3 de mayo de 2018 04:06
[Herramienta] Convertir Label a JPG Anthony AcuCobol 2 22 de julio de 2016 23:54
[Componente] OCR para convertir la IMG a texto Roger PowerCOBOL (ActiveX, v4 - v11) 8 6 de marzo de 2015 11:24
Respuesta
 
Herramientas

  #1
Antiguo 11 de agosto de 2019, 22:44
IDENTIFICATION DIVISION
Dasije
Novato Senior
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
Forero desde (Registrado)noviembre 2015
España
UbicaciónJerez De La Frontera (cádiz)
Última Actividad11.08.2019 22:46
PROCEDURE DIVISION
PostsPosts: 163
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 70
Mejores respuestasSoluiones: 5
ReputaciónReputación: 10
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
Respuesta


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado



La franja horaria es GMT +1. Ahora son las 17:16.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.