MODIFICAR UN GET NUMERICO (solucionado)
MODIFICAR UN GET NUMERICO (solucionado)
Buenas tardes Amigos del Foro :
- Comportamiento Con el viejo Clipper,
Tengo un campo GET ya escrito con el numero 1.000
Cuando regreso al campo para modificar su contenido, y como primera tecla pulso el punto decimal,
Clipper elimina el entero, poniendo el cursor en el primer decimal, el numero va apareciendo 0.000.
- Comportamiento Visual FWH
FWH no elimina el entero, poniendo el cursor en el primer decimal, el numero va apareciendo 1.000.
- El picture es '9999.999'
- La pregunta:
Puedo emular el comportamiento de Clipper para éste caso específico??
Otrosi:
He estado probando modificar el numero pulsando flecha derecha, luego un cero mas el punto decimal,
el GET no modifica, sigue precisando 1.000 y lo que pulsé no lo tomó en cuenta.
En otro modo, si al volver al campo, lo primero que pulso es el cero, si modifica el GET
Muchas Gracias por Vuestras respuestas !!!
Julio César Gómez Cortéz
Godryc Experiencias
Lima Perú
- Comportamiento Con el viejo Clipper,
Tengo un campo GET ya escrito con el numero 1.000
Cuando regreso al campo para modificar su contenido, y como primera tecla pulso el punto decimal,
Clipper elimina el entero, poniendo el cursor en el primer decimal, el numero va apareciendo 0.000.
- Comportamiento Visual FWH
FWH no elimina el entero, poniendo el cursor en el primer decimal, el numero va apareciendo 1.000.
- El picture es '9999.999'
- La pregunta:
Puedo emular el comportamiento de Clipper para éste caso específico??
Otrosi:
He estado probando modificar el numero pulsando flecha derecha, luego un cero mas el punto decimal,
el GET no modifica, sigue precisando 1.000 y lo que pulsé no lo tomó en cuenta.
En otro modo, si al volver al campo, lo primero que pulso es el cero, si modifica el GET
Muchas Gracias por Vuestras respuestas !!!
Julio César Gómez Cortéz
Godryc Experiencias
Lima Perú
Last edited by Maggiro on Tue Sep 29, 2015 2:45 pm, edited 1 time in total.
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: MODIFICAR UN GET NUMERICO
Saludos, yo lo uso de esta manera y me funciona perfectamente al colocar el punto (.) asume que va entrar decimales, intenta asi y comenta, gracias...
Code: Select all
PICTURE "@E 999,999.99"
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: MODIFICAR UN GET NUMERICO
Saludos joseluisysturiz :
No hay problema en el Picture, tanto el mio como el tuyo van directo al punto decimal cuando se pulsa.
Necesito encontrar la forma que FWH, cuando pulse un punto, entienda CERO mas PUNTO.
y creo que he visto el código a modificar en el TGET.PRG
si lo aplico, te comento.
Un Abrazo
Julio César Gómez Cortéz
Godryc Experiencias
Lima Perú
No hay problema en el Picture, tanto el mio como el tuyo van directo al punto decimal cuando se pulsa.
Necesito encontrar la forma que FWH, cuando pulse un punto, entienda CERO mas PUNTO.
y creo que he visto el código a modificar en el TGET.PRG
si lo aplico, te comento.
Un Abrazo
Julio César Gómez Cortéz
Godryc Experiencias
Lima Perú
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: MODIFICAR UN GET NUMERICO
Te respondo que a mi me funciona como dices, al colocar el punto, se asume de forma automatica q es decimal y se coloca el cero del lado izquierdo y da paso a que coloque la cantidad decimal, nose si ese es tu problema q no te lo hace, saludos...Maggiro wrote:Saludos joseluisysturiz :
No hay problema en el Picture, tanto el mio como el tuyo van directo al punto decimal cuando se pulsa.
Necesito encontrar la forma que FWH, cuando pulse un punto, entienda CERO mas PUNTO.
y creo que he visto el código a modificar en el TGET.PRG
si lo aplico, te comento.
Un Abrazo
Julio César Gómez Cortéz
Godryc Experiencias
Lima Perú
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: MODIFICAR UN GET NUMERICO
Asi es, amigo joseluisysturiz :
No encuentro la razon aun ...
Probé la máscara con el Picture que me indicaste.
- Al pasar por primera vez por el GET, escribi la cantidad 1.000
- Regresé a modificarlo para poner la cantidad 0.075
- cuando regreso, el cursor se posiciona al inicio del GET
- alli es cuando pulso el punto decimal
- y lo que hace el GET solo es correr el cursor al punto decimal, no borra el entero.
Qué podría estar pasando?
No encuentro la razon aun ...
Probé la máscara con el Picture que me indicaste.
- Al pasar por primera vez por el GET, escribi la cantidad 1.000
- Regresé a modificarlo para poner la cantidad 0.075
- cuando regreso, el cursor se posiciona al inicio del GET
- alli es cuando pulso el punto decimal
- y lo que hace el GET solo es correr el cursor al punto decimal, no borra el entero.
Qué podría estar pasando?
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: MODIFICAR UN GET NUMERICO
Hola buen dia
También a mi me sucede, para poner en un campo get
una cantidad de solo decimal tengo que teclear "0."
Con la mascara que nos dice JoseLuis tampoco me funciona
Saludos.
También a mi me sucede, para poner en un campo get
una cantidad de solo decimal tengo que teclear "0."
Con la mascara que nos dice JoseLuis tampoco me funciona
Saludos.
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: MODIFICAR UN GET NUMERICO
Estan inicializando la Var en cero.? nVar := 0, asi inicializo mis VAR numericas y hasta ahora me trabaja todo como uds quieren, saludos...VitalJavier wrote:Hola buen dia
También a mi me sucede, para poner en un campo get
una cantidad de solo decimal tengo que teclear "0."
Con la mascara que nos dice JoseLuis tampoco me funciona
Saludos.
Code: Select all
REDEFINE GET aGet[6] VAR aVar[6] ID 4010 OF oDlg PICTURE "@E 999,999.99"
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: MODIFICAR UN GET NUMERICO
joseluisysturiz :
las variables numericas siempre inicializan en cero al invocar el dialogo con GET
Recuerda que el comportamiento GET sucede al intentar modificar el valor que se le asignó
anteriormente, es decir, cuando la variable ya posee un valor.
Creo que el comportamiento puede solucionarse por aquí ...
METHOD KeyChar( nKey, nFlags ) CLASS TGet
case nKey >= 32 .and. nKey < 256
if ::oGet:Type == "N" .and. ( Chr( nKey ) == "." .or. Chr( nKey ) == "," )
if ::oGet:Clear()
#ifndef __XHARBOUR__
::oGet:DelEnd()
#endif
endif
::oGet:ToDecPos()
Parece que la orden en el método keychar indica que,
al pulsar un punto o una coma,
si la variable tiene un valor,
corra directamente el cursor hacia el decimal a la derecha del punto.
Lo que buscamos es que
cuando entramos a modificar el campo GET numerico con un valor ya asignado
y el cursor dentro del GET se encuentre al inicio del campo
if ::oGet:nPos:=1
Si pulsamos en ese momento el punto decimal
queremos que el método borre el valor previo de nuestra variable
le asigne un valor CERO mas PUNTO DECIMAL a la variable
y que el usuario continue modificando su variable en la parte decimal que desea escribir.
Dando vueltas
Mañana podré hacer una revision al código para enlazar un procedimiento
que capture ese momento y pueda modificar su comportamiento.
Salgo a trabajar ahora.
las variables numericas siempre inicializan en cero al invocar el dialogo con GET
Recuerda que el comportamiento GET sucede al intentar modificar el valor que se le asignó
anteriormente, es decir, cuando la variable ya posee un valor.
Creo que el comportamiento puede solucionarse por aquí ...
METHOD KeyChar( nKey, nFlags ) CLASS TGet
case nKey >= 32 .and. nKey < 256
if ::oGet:Type == "N" .and. ( Chr( nKey ) == "." .or. Chr( nKey ) == "," )
if ::oGet:Clear()
#ifndef __XHARBOUR__
::oGet:DelEnd()
#endif
endif
::oGet:ToDecPos()
Parece que la orden en el método keychar indica que,
al pulsar un punto o una coma,
si la variable tiene un valor,
corra directamente el cursor hacia el decimal a la derecha del punto.
Lo que buscamos es que
cuando entramos a modificar el campo GET numerico con un valor ya asignado
y el cursor dentro del GET se encuentre al inicio del campo
if ::oGet:nPos:=1
Si pulsamos en ese momento el punto decimal
queremos que el método borre el valor previo de nuestra variable
le asigne un valor CERO mas PUNTO DECIMAL a la variable
y que el usuario continue modificando su variable en la parte decimal que desea escribir.
Dando vueltas
Mañana podré hacer una revision al código para enlazar un procedimiento
que capture ese momento y pueda modificar su comportamiento.
Salgo a trabajar ahora.
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: MODIFICAR UN GET NUMERICO
Igual comportamiento tengo en mis programas:VitalJavier wrote:Hola buen dia
También a mi me sucede, para poner en un campo get
una cantidad de solo decimal tengo que teclear "0."
Con la mascara que nos dice JoseLuis tampoco me funciona
Saludos.
1- Si el get tiene valor cero, no hay problemas.
2- Si ya tenía valor y tecleamos el ".", no borra el entero, tenemos que teclear "0."
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Re: MODIFICAR UN GET NUMERICO
Hola Julio Cesar,
Incluye la "k" en el picture.
De esta forma, al pulsar la primer tecla, lo primero que hace es borrar el contenido del campo.
y por tanto si la primero tecla es el signo de separación decimal, aparecerá "0,"
Incluye la "k" en el picture.
Code: Select all
"@KE 999,999.99"
y por tanto si la primero tecla es el signo de separación decimal, aparecerá "0,"
Un saludo
Fernando González Diez
ALSIS GHE Sistemas Informáticos
Fernando González Diez
ALSIS GHE Sistemas Informáticos
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: MODIFICAR UN GET NUMERICO
Fernando, buen dia
Pues ya lo probe como nos indicas "@KE 99,999.999" y nada
sigue igual.
Pues ya lo probe como nos indicas "@KE 99,999.999" y nada
sigue igual.
Re: MODIFICAR UN GET NUMERICO
Mira si ayuda:
Saludos.
Code: Select all
// -----------------------------------------------------------------------
// Funci¢n ...: PictPts
// Descripci¢n: Cadena Picture para un GET.
// Par metros : Ninguno.
// Devolve ..: Una cadena.
// -----------------------------------------------------------------------
FUNCTION PictPts()
RETURN( "@E 9,999,999,999" )
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// Funci¢n ...: PictEuros
// Descripci¢n: Cadena Picture para un GET.
// Par metros : Ninguno.
// Devolve ..: Una cadena.
// -----------------------------------------------------------------------
FUNCTION PictEuros()
RETURN( "@E 9,999,999,999.99" )
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// Funci¢n ...: Num2StrDec
// Descripci¢n: Convierte un campo num‚rico a cadena, para mostrar en un
// LISTBOX.
// Par metros : nCampo -> Valor Num‚rico.
// Devolve ..: Cadena formateada.
// -----------------------------------------------------------------------
FUNCTION Num2StrDec( nCampo )
RETURN Transform( nCampo, "@E 999,999,999.99" )
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// Funci¢n ...: Num2Str
// Descripci¢n: Convierte un campo num‚rico a cadena, para mostrarlo en un
// LISTBOX.
// Par metros : nCampo -> Valor Num‚rico.
// Devolve ..: Cadena formateada.
// -----------------------------------------------------------------------
FUNCTION Num2Str( nCampo, nSize, nDec )
LOCAL cPicture := "@E 999,999,999,999"
DO CASE
CASE nSize = 12 .AND. nDec = 0
cPicture := "@E 999,999,999,999"
CASE nSize = 12 .AND. nDec = 2
cPicture := "@E 999,999,999.99"
CASE nSize = 12 .AND. nDec = 3
cPicture := "@E 99,999,999.999"
CASE nSize = 08 .AND. nDec = 0
cPicture := "@E 99,999,999"
CASE nSize = 08 .AND. nDec = 2
cPicture := "@E 99,999.99"
CASE nSize = 08 .AND. nDec = 3
cPicture := "@E 9,999.999"
CASE nSize = 07 .AND. nDec = 0
cPicture := "@E 9,999,999"
CASE nSize = 07 .AND. nDec = 2
cPicture := "@E 9,999.99"
CASE nSize = 07 .AND. nDec = 3
cPicture := "@E 999.999"
CASE nSize = 05 .AND. nDec = 0
cPicture := "@E 99,999"
CASE nSize = 05 .AND. nDec = 2
cPicture := "@E 99.99"
CASE nSize = 05 .AND. nDec = 3
cPicture := "@E 9.999"
CASE nSize = 02 .AND. nDec = 0
cPicture := "99"
ENDCASE
RETURN Transform( nCampo, cPicture )
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// Funci¢n ...: Num2Doc
// Descripci¢n: Convierte un campo num‚rico a cadena, para mostrarlo en un
// LISTBOX. Solo para los n£meros de documento.
// Par metros : nCampo -> Valor Num‚rico.
// Devolve ..: Cadena formateada.
// -----------------------------------------------------------------------
FUNCTION Num2Doc( nCampo )
RETURN Transform( nCampo, "@E 9999999" )
// -----------------------------------------------------------------------
João Santos - São Paulo - Brasil
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: MODIFICAR UN GET NUMERICO
Tienes toda la razon, he probado muchas combinaciones y cuando es para modificar, si le colocas el punto, no te hace la limpieza de los enteros, imagino ya sera algo de la clase...saludos...
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: MODIFICAR UN GET NUMERICO
Amigos del foro:
Como información adicional les menciono que en la clase TXBrowse sí
funciona como lo requieren.
Saludos
Como información adicional les menciono que en la clase TXBrowse sí
funciona como lo requieren.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
-
- Posts: 188
- Joined: Mon Jun 10, 2013 6:40 pm
Re: MODIFICAR UN GET NUMERICO
Armando
En el TxBrowse
Si le das "enter" para editar si lo hace bien.
Pero si le das oBrow:lFastEdit := .T. al darle el "." no hace nada
le tienes que dar un numero primero, ya sea 0...9 y después el "."
Saludos.
En el TxBrowse
Si le das "enter" para editar si lo hace bien.
Pero si le das oBrow:lFastEdit := .T. al darle el "." no hace nada
le tienes que dar un numero primero, ya sea 0...9 y después el "."
Saludos.