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
[Compilador] String para Decimal Joseg PowerCOBOL (ActiveX, v4 - v11) 16 20 de marzo de 2026 12:52
[Sintaxis] Convertir DECIMAL a NUMERO para COBOL Dasije WinDev 0 11 de agosto de 2019 23:44
Cambiar configuración regional Gatomalo PowerCOBOL (ActiveX, v4 - v11) 5 6 de junio de 2018 00:54
[Sintaxis] Tipo de dato decimal en mysql... Fito PowerCOBOL (ActiveX, v4 - v11) 8 4 de mayo de 2018 14:54
[Herramienta] DECIMAL-POINT IS COMMA en Cobview Gatomalo COBOL - General 1 3 de mayo de 2018 05:06

Respuesta

  #1
Antiguo 13 de noviembre de 2015, 11:02
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179
Guiño Cambiar el punto decimal por coma
0 Inactivo Inactivo

Estou com outro problema, o pessoal normalmente pede-me para alterar o "." (ponto) do teclado numerico pela "," virgula.
Sabe como se poderá fazer isso via API ou outro meio?
Eu ja tenho rotinas em PowerCobol para alterar as definições regionais automáticamente, mas esta esta troca do ponto pela virgula só no teclado numerico não estou a ver como.

Cumprimentos,
JoseManuel
Joseg is offline   Responder Con Cita
  #2
Antiguo 13 de noviembre de 2015, 12:44
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 Joseg Ver Mensaje
Estou com outro problema, o pessoal normalmente pede-me para alterar o "." (ponto) do teclado numerico pela "," virgula.
Sabe como se poderá fazer isso via API ou outro meio?
En el evento "Keypress" del control que quieras, pones:

Código COBOL:
  1.      EVALUATE POW-ARG-KEYASCII
  2.               WHEN 46
  3.                    MOVE 44 TO POW-ARG-KEYASCII
  4.      END-EVALUATE.

y debería de funcionar.

Un saludo.-
Josber is offline   Responder Con Cita
  #3
Antiguo 13 de noviembre de 2015, 16:11
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Josber Ver Mensaje
En el evento "Keypress" del control que quieras, pones:

Código COBOL:
  1.      EVALUATE POW-ARG-KEYASCII
  2.               WHEN 46
  3.                    MOVE 44 TO POW-ARG-KEYASCII
  4.      END-EVALUATE.

y debería de funcionar.

Un saludo.-
Gracias!

Mas ...é complicado. Tinha que alterar muito código
Tem que ser de outra forma. Quando entra na aplicação alterar logo para todo o programa. A Microsoft tem um utilitario para fazer isso, mas não é pratico para o cliente.
O Excel já faz a "," no lugar do "." no teclado numerico.
Joseg is offline   Responder Con Cita
  #4
Antiguo 13 de noviembre de 2015, 17:07
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Joseg, el propio Form tiene también eventos de teclado. Al menos en la versión 9 me acuerdo que hay PreKeyDown, donde creo que se podría hacer.



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
  #5
Antiguo 13 de noviembre de 2015, 17:28
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Kuk Ver Mensaje
Joseg, el propio Form tiene también eventos de teclado. Al menos en la versión 9 me acuerdo que hay PreKeyDown, donde creo que se podría hacer.
Gracias, mas também é necessario alterar a programação.
Com o utilitário "keytweak" consegui alterar. É uma altaração global e não apenas para o meu programa, que era o que pretendia, mas para já resolve.
Joseg is offline   Responder Con Cita
  #6
Antiguo 13 de noviembre de 2015, 18:11
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Joseg, no entiendo nada... Preguntabas por cómo cambiar el punto decimal por coma. Pensábamos que te referías al teclado, en tu programa, que cuando introduzcas el punto decimal del teclado numérico te aparezca coma en vez de punto. Luego, según lo que has dicho, he entendido que tendías muchos CmEdit (por ejemplo) y que te suponía muchos cambios en el código. El Form también tiene "PreKeyPress" en el cual si pones el código de Josber te cambia el punto por la coma en todos los controles de ese Form.

Pero ahora dices que no quieres alterar tu programa. Entonces nos vamos a la configuración de Windows (en adjuntos). Pero cambiar esta configuración significa que todos los programas la comparten. Lo cual, no es aconsejable, si en tu país es la norma es la configuración americana (999,999,999.00) y no la europea (999.999.999,00).

Se puede cambiar por programa y por tiempo limitado dicha configuración de WIndows, pero tampoco es aconsejable si usas otros programas al mismo tiempo.

Yo tengo código para comprobar el punto decimal, si es punto o coma (yo lo hago en el evento "Opened":

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  LOCALE-USER-DEFAULT     PIC S9(9) COMP-5 VALUE h"0400".
  5.  01  LOCALE-SDECIMAL         PIC S9(9) COMP-5 VALUE h"0E".
  6.  01  RET                     PIC S9(9) COMP-5.
  7.  01  LONG                    PIC S9(9) COMP-5.
  8.  01  BUFFER                  PIC X(256).
  9.  
  10.  PROCEDURE       DIVISION.
  11.  
  12.      MOVE 256 TO LONG
  13.      
  14.      CALL "GetLocaleInfoW" WITH STDCALL USING BY VALUE LOCALE-USER-DEFAULT    
  15.                                               BY VALUE LOCALE-SDECIMAL
  16.                                               BY REFERENCE BUFFER
  17.                                               BY VALUE LONG
  18.                                               RETURNING RET.
  19.          
  20.      IF  BUFFER(1:1) = ","
  21.          DISPLAY "COMA : " BUFFER  
  22.          
  23.      ELSE
  24.          DISPLAY "PUNTO : " BUFFER  
  25.      END-IF
  26.      

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  REGIONALCONFIG.png
Vistas: 175
Tamaño:  54,9 KB  



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
  #7
Antiguo 14 de noviembre de 2015, 17:50
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Kuk Ver Mensaje
Joseg, no entiendo nada... Preguntabas por cómo cambiar el punto decimal por coma. Pensábamos que te referías al teclado, en tu programa, que cuando introduzcas el punto decimal del teclado numérico te aparezca coma en vez de punto. Luego, según lo que has dicho, he entendido que tendías muchos CmEdit (por ejemplo) y que te suponía muchos cambios en el código. El Form también tiene "PreKeyPress" en el cual si pones el código de Josber te cambia el punto por la coma en todos los controles de ese Form.

Pero ahora dices que no quieres alterar tu programa. Entonces nos vamos a la configuración de Windows (en adjuntos). Pero cambiar esta configuración significa que todos los programas la comparten. Lo cual, no es aconsejable, si en tu país es la norma es la configuración americana (999,999,999.00) y no la europea (999.999.999,00).

Se puede cambiar por programa y por tiempo limitado dicha configuración de WIndows, pero tampoco es aconsejable si usas otros programas al mismo tiempo.

Yo tengo código para comprobar el punto decimal, si es punto o coma (yo lo hago en el evento "Opened":

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  LOCALE-USER-DEFAULT     PIC S9(9) COMP-5 VALUE h"0400".
  5.  01  LOCALE-SDECIMAL         PIC S9(9) COMP-5 VALUE h"0E".
  6.  01  RET                     PIC S9(9) COMP-5.
  7.  01  LONG                    PIC S9(9) COMP-5.
  8.  01  BUFFER                  PIC X(256).
  9.  
  10.  PROCEDURE       DIVISION.
  11.  
  12.      MOVE 256 TO LONG
  13.      
  14.      CALL "GetLocaleInfoW" WITH STDCALL USING BY VALUE LOCALE-USER-DEFAULT    
  15.                                               BY VALUE LOCALE-SDECIMAL
  16.                                               BY REFERENCE BUFFER
  17.                                               BY VALUE LONG
  18.                                               RETURNING RET.
  19.          
  20.      IF  BUFFER(1:1) = ","
  21.          DISPLAY "COMA : " BUFFER  
  22.          
  23.      ELSE
  24.          DISPLAY "PUNTO : " BUFFER  
  25.      END-IF
  26.      

OK, portugués / español problema entendimiento.
Quiero simplemente haciendo clic en el botón "." (botón DEL) keypad (teclado numerico), asumir "," (coma) (ver imagem em anexo).

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  2015-11-14_164235.png
Vistas: 160
Tamaño:  64,1 KB  
Joseg is offline   Responder Con Cita
  #8
Antiguo 14 de noviembre de 2015, 19:49
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Joseg, eso lo he entendido desde el primer post Lo que no entiendo es cómo lo quieres hacer sin modificar el programa!



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
  #9
Antiguo 14 de noviembre de 2015, 22:39
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

Joseg, Si no quieres tocar nada de programación, lo tienes muuuuuyyyy dificil, o lo haces como te ha puesto Kuk o lo haces como te he puesto yo, el problema de hacerlo en el evento "PreKeyPress" es que lo cambia para todo, incluido cuando es un texto, pero cambiar el programa tienes que hacerlo sí o sí.

Un saludo.-
Josber is offline   Responder Con Cita
  #10
Antiguo 18 de noviembre de 2015, 16:51
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Josber Ver Mensaje
Joseg, Si no quieres tocar nada de programación, lo tienes muuuuuyyyy dificil, o lo haces como te ha puesto Kuk o lo haces como te he puesto yo, el problema de hacerlo en el evento "PreKeyPress" es que lo cambia para todo, incluido cuando es un texto, pero cambiar el programa tienes que hacerlo sí o sí.

Un saludo.-
Sem nenhuma programação fiz o que queria!
Teclado PT, apenas no teclado numerico (keypad) trocar o "ponto" (mesma tecla do "DEL") pela "coma".
O resto é para ficar como esta. A onde esta a "," fazer a "coma" a onde esta "." fazer o "ponto".
Na verdade ainda não entenderam o que estou a pedir. Queria ser eu a controlar esta ação sem ter que recorrer a utilitários externos.
Quero apenas alterar o layout do teclado (keypad e apenas uma tecla).
Joseg is offline   Responder Con Cita
Respuesta


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

Saltar a Foro


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