Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Componente] Cambio de formato de ficheros PDF a JPG Begoguay PowerCOBOL (ActiveX, v4 - v11) 1 28 de octubre de 2019 13:43
[Sintaxis] Formato de Fecha jmeza PowerCOBOL (ActiveX, v4 - v11) 1 3 de diciembre de 2017 18:03
[Duda] Cambio de orden de ejecución de eventos lfortuny PowerCOBOL (ActiveX, v4 - v11) 2 10 de octubre de 2017 00:04
[Duda] Tamaño y formato de Icono Gatomalo PowerCOBOL v3 (V3L10, Win32) 2 17 de marzo de 2017 00:02
[Sintaxis] Equivalencia de formato de campos numéricos Galileo COBOL - General 1 29 de enero de 2016 09:19

Respuesta
 
Herramientas

  #11
Antiguo 12 de junio de 2018, 13:50
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Citación del post de jmeza Ver Mensaje
Josber, esto funciona ok para transforma el punto en coma en la digitación.
El problema se presenta cuando la configuración del compu en el panel de control el (.) punto esta como decimal y la comma (,) como unidad de mil, al grabar se registra como un numero entero.
Hay alguna forma de cambiar la configuración del panel de control por programa sin intervención del usuario.
Supongo que a través del registro de windows, se podrá hacer, si es así y alguno sabe la "rama" del registro, puedo poner un ejemplo de como leer/grabar el registro.

Un salu2.-
Josber is offline   Responder Con Cita
  #12
Antiguo 12 de junio de 2018, 14:02
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Amigos, a ver si usamos la búsqueda [Sintaxis] Cambiar el punto decimal por coma - COBOL Foro



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #13
Antiguo 13 de junio de 2018, 00:07
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola Amigos:

Asi lo hago yo al ingresar a la primera ventana.

Código COBOL:
  1. *... variables para verificar la configuración regional...
  2.  01  caracter        pic x(255).
  3.  01  buffer          pic s9(9) comp-5.
  4.  01  retcode         pic s9(9) comp-5.
  5.  01  estilo          pic s9(9) comp-5.
  6.  77  wsep-dec        pic x.
  7.  77  wsep-mil        pic x.
  8. *.........................................................
  9. *... variables para verificar el tamaño de la pantalla
  10.  01  xsysmetric      pic s9(9) comp-5.
  11.  01  xancho-pan      pic 9(9).
  12.  01  xalto-pan       pic 9(9).
  13.  
  14.  
  15.  01  control-win     pic S9(9) COMP-5.
  16.      88 cw-ok        value 0.
  17.      88 cw-cancel    value 1.

Código COBOL:
  1.      *-------------------------------------------------------------------------------------------------------------
  2.      *   Hago las llamadas a las API de Windows para controlar:
  3.      *        Tamaño de la pantalla (no debe ser inferior a 1024 x 768)
  4.      *        Configuración regional (controlo los separadores decimales y de miles)
  5.      *             en caso de no ser los correctos, pregunta si quiere cambiarlos automáticamente
  6.      *-------------------------------------------------------------------------------------------------------------
  7.        llamadas-api-windows.
  8.      *... Saco el tamaño de la Pantalla
  9.            call "GetSystemMetrics" with stdcall linkage using by value 0 returning xsysmetric.
  10.            move xsysmetric     to xancho-pan.          
  11.            call "GetSystemMetrics" with stdcall linkage using by value 1 returning xsysmetric.
  12.            cancel "GetSystemMetrics".
  13.            move xsysmetric     to xalto-pan.          
  14.            if xancho-pan < 1024 or xalto-pan < 720
  15.               invoke pow-self "displaymessage" using
  16.                     "El tamaño de la pantalla no puede ser inferior a 1024 x 768 pixeles"
  17.               move 1           to sen-salida
  18.               invoke pow-self "closeform"
  19.               go sale
  20.            end-if.      
  21.    
  22.       *... Saco de Windows el separador decimal
  23.            call "GetLocaleInfoA" with stdcall linkage
  24.                                  using by value 1024
  25.                                        by value 14
  26.                                        by reference caracter
  27.                                        by reference buffer
  28.               returning retcode.
  29.            cancel "GetLocaleInfoA".          
  30.            move caracter      to wsep-dec.
  31.    
  32.       *... Saco de Windows el separador de miles
  33.            call "GetLocaleInfoA" with stdcall linkage
  34.                                  using by value 1024
  35.                                        by value 15
  36.                                        by reference caracter
  37.                                        by reference buffer
  38.               returning retcode.
  39.            cancel "GetLocaleInfoA".          
  40.            move caracter      to wsep-mil.
  41.    
  42.       *... En el caso de que sea incorrecto pregunto si los quiere modificar
  43.            if wsep-dec not = "," or wsep-mil not = "."
  44.               compute estilo = pow-dmokcancel + pow-dmiconexclamation + pow-dmdefbutton2
  45.               invoke pow-self "displaymessage" using
  46.                  "¿Autoriza establecer COMA como separador decimal y PUNTO como separador de miles?"
  47.                  "Configuración regional incorrecta para esta aplicación"
  48.                  returning retcode
  49.               if retcode = pow-dmrcancel
  50.                  move 1           to sen-salida
  51.                  invoke pow-self "closeform"
  52.                  go sale
  53.               end-if
  54.            end-if.
  55.    
  56.       *... Seteo en Windows el separador decimal
  57.            move spaces        to caracter.
  58.            move ","           to caracter(1:1).
  59.            move X"00"         to caracter(2:1).  
  60.            call "SetLocaleInfoA" with stdcall linkage
  61.               using by value 1024
  62.                     by value 14
  63.                     by reference caracter
  64.               returning retcode.
  65.            cancel "SetLocaleInfoA".          
  66.    
  67.       *... Seteo en Windows el separador de miles
  68.            move spaces        to caracter.
  69.            move "."           to caracter(1:1).
  70.            move X"00"         to caracter(2:1).  
  71.            call "SetLocaleInfoA" with stdcall linkage
  72.               using by value 1024
  73.                     by value 15
  74.                     by reference caracter
  75.               returning retcode.
  76.            cancel "SetLocaleInfoA".          
  77.      *-------------------------------------------------------------------------------------------------------------
  78.      *   Fin de las llamadas
  79.      *-------------------------------------------------------------------------------------------------------------

Saludos.

Fito...
Fito is offline   Responder Con Cita
Respuesta



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

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:58.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.