Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Cambiar el punto decimal por coma (https://www.cobolforo.es/showthread.php?t=264)

Josber 18 de noviembre de 2015 17:44

Si entendemos, por lo menos yo, perfectamente lo que quieres hacer, pero insisto, sin tocar nada de programa, lo veo imposible.

Un saludo.-

Kuk 18 de noviembre de 2015 18:45

Josber, a mí me parece que yo no me estoy enterando, porque la pregunta la veo clara y las respuestas también, pero insiste en lo suyo... Con lo cual, a lo mejor está diciendo otra cosa, no sé...

Joseg, no se puede sustituir el punto por la coma y viceversa de otra manera. O cambias el programa, o cambias la configuración de Windows. Porque el programa recibe las señales de las teclas por Windows, es Windows el que envía la tecla. Entonces, sea cambias en el propio Windows, sea cambias la interpretación de dicha tecla en tu programa. Es que no hay otra solución. No existe.

Dasije 18 de noviembre de 2015 19:45

Existen pequeños programas residentes en memoria, que cambian lo que se introduzca como punto sea como coma al pulsar la tecla en el teclado numérico.

Yo recuerdo que Andrés Montes para sus aplicaciones de modo texto, no podía cambiar este parámetro y utiliza un exe que llamaba cuando arrancaba el programa y se quedaba en memoria cuando entraban los usuarios en el terminal server y después al cerrar la aplicación se quitaba de la memoria, y cumplia esta misión.

Yo en las aplicaciones en Power, lo que hago es mover lo que pulsa como punto se convierta a coma cuando en el keypress en los campos de importes/cantidades con decimales.

Josber 18 de noviembre de 2015 20:09

Cita:

Citación del post de Dasije (Mensaje 1248)
Existen pequeños programas residentes en memoria, que cambian lo que se introduzca como punto sea como coma al pulsar la tecla en el teclado numérico.

Eso lo sabemos, pero el problema que tenían esos programas es que lo cambiaban para todo, fuera un texto o un número.

Un saludo.-

Rapinto 18 de noviembre de 2015 23:14

Joseg,

Não sei se isto obriga a por este código em todas as Forms!!
Mas resolve, penso eu, o problema.
Nos eventos da Form em PreKeyDown, coloca o seguinte código:

Código COBOL:
  1.        IF POW-ARG-KEYCODE = 110
  2.           MOVE 188 TO POW-ARG-KEYCODE.

Saludo,
Rui

Joseg 24 de noviembre de 2015 17:57

Cita:

Citación del post de Rapinto (Mensaje 1250)
Joseg,

Não sei se isto obriga a por este código em todas as Forms!!
Mas resolve, penso eu, o problema.
Nos eventos da Form em PreKeyDown, coloca o seguinte código:

Código COBOL:
  1.        IF POW-ARG-KEYCODE = 110
  2.           MOVE 188 TO POW-ARG-KEYCODE.

Saludo,
Rui

Boa dica,

Obriga a por em cada form o código, mas já é uma boa alternativa.

Obrigado

Kuk 24 de noviembre de 2015 18:47

Joseg, macho, te ha comentado lo mismo Josber, y lo de PreKeyDown yo y decías que no entendíamos lo que querías hacer ??? :losiento:

Rapinto 25 de noviembre de 2015 00:34

Joseg,

Eu criei em cada "form" uma propriedade : IsNumeric

No PreKeyDown fica o código:
Código COBOL:
  1.     IF IsNumeric OF POW-SELF = POW-TRUE
  2.        IF POW-KEYCODE = 110
  3.           MOVE 188 TO POW-KEYCODE.

No GotFocus dos campos numéricos:
Código COBOL:
  1. *
  2.     MOVE POW-TRUE TO IsNumeric OF POW-SELF.

No LostFocus de cada campo numerico:
Código COBOL:
  1.     MOVE POW-FALSE TO IsNumeric OF POW-SELF.

Com este código, consigo substituir o ponto decimal do Numeric Keypad pela virgula (comma) só nos campos numéricos. Nos campos alfa o ponto mantem-se como ponto.

Isto é outra alternativa, um pouco mais trabalhosa, mas mais perfeita.

Saludo,
Rui Pinto

Galileo 20 de diciembre de 2015 11:50

2 Archivos Adjunto(s)
Entiendo qué es lo que quiere hacer Joseg. No se cuales son las diferencias entre PowerCOBOL 3.0 y las versiones posteriores, pero en esta versión basta con indicar en el evento SPECIAL-NAMES de la pantalla principal el clásico
Código COBOL:
  1. DECIMAL-POINT IS COMMA.
. Así, convierte la pulsación del punto decimal en coma sólo en los campos numéricos.

Cita:

Citación del post de Galileo (Mensaje 1384)
... basta con indicar en el evento SPECIAL-NAMES de la pantalla principal...

Perdón, quería decir del form.

Kuk 21 de diciembre de 2015 11:21

Galileo, no se trata de campos COBOL, sino que de los controles EDIT que no tienen nada que ver. ;)


La franja horaria es GMT +2. Ahora son las 03:43.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.