MODIFICAR UN GET NUMERICO (solucionado)

MODIFICAR UN GET NUMERICO (solucionado)

Postby Maggiro » Fri Sep 25, 2015 10:01 pm

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ú
Last edited by Maggiro on Tue Sep 29, 2015 2:45 pm, edited 1 time in total.
User avatar
Maggiro
 
Posts: 84
Joined: Thu Oct 14, 2010 3:26 am
Location: LIMA - PERU

Re: MODIFICAR UN GET NUMERICO

Postby joseluisysturiz » Sat Sep 26, 2015 3:43 am

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... :shock:
Code: Select all  Expand view

PICTURE "@E 999,999.99"
 
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: MODIFICAR UN GET NUMERICO

Postby Maggiro » Sat Sep 26, 2015 6:42 am

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ú
User avatar
Maggiro
 
Posts: 84
Joined: Thu Oct 14, 2010 3:26 am
Location: LIMA - PERU

Re: MODIFICAR UN GET NUMERICO

Postby joseluisysturiz » Sat Sep 26, 2015 2:13 pm

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ú

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... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: MODIFICAR UN GET NUMERICO

Postby Maggiro » Sat Sep 26, 2015 2:23 pm

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?
User avatar
Maggiro
 
Posts: 84
Joined: Thu Oct 14, 2010 3:26 am
Location: LIMA - PERU

Re: MODIFICAR UN GET NUMERICO

Postby VitalJavier » Sat Sep 26, 2015 3:35 pm

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.
User avatar
VitalJavier
 
Posts: 241
Joined: Mon Jun 10, 2013 6:40 pm

Re: MODIFICAR UN GET NUMERICO

Postby joseluisysturiz » Sat Sep 26, 2015 11:43 pm

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.


Estan inicializando la Var en cero.? nVar := 0, asi inicializo mis VAR numericas y hasta ahora me trabaja todo como uds quieren, saludos... :shock:

Code: Select all  Expand view

   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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: MODIFICAR UN GET NUMERICO

Postby Maggiro » Sun Sep 27, 2015 12:12 am

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.
User avatar
Maggiro
 
Posts: 84
Joined: Thu Oct 14, 2010 3:26 am
Location: LIMA - PERU

Re: MODIFICAR UN GET NUMERICO

Postby FranciscoA » Sun Sep 27, 2015 5:43 pm

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.


Igual comportamiento tengo en mis programas:
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.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2158
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: MODIFICAR UN GET NUMERICO

Postby fgondi » Mon Sep 28, 2015 8:31 am

Hola Julio Cesar,

Incluye la "k" en el picture.
Code: Select all  Expand view
"@KE 999,999.99"


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,"
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: MODIFICAR UN GET NUMERICO

Postby VitalJavier » Mon Sep 28, 2015 2:23 pm

Fernando, buen dia

Pues ya lo probe como nos indicas "@KE 99,999.999" y nada
sigue igual.
User avatar
VitalJavier
 
Posts: 241
Joined: Mon Jun 10, 2013 6:40 pm

Re: MODIFICAR UN GET NUMERICO

Postby karinha » Mon Sep 28, 2015 2:53 pm

Mira si ayuda:

Code: Select all  Expand view

// -----------------------------------------------------------------------
// 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" )
// -----------------------------------------------------------------------
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7805
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: MODIFICAR UN GET NUMERICO

Postby joseluisysturiz » Mon Sep 28, 2015 4:53 pm

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... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: MODIFICAR UN GET NUMERICO

Postby Armando » Mon Sep 28, 2015 5:58 pm

Amigos del foro:

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
User avatar
Armando
 
Posts: 3209
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: MODIFICAR UN GET NUMERICO

Postby VitalJavier » Mon Sep 28, 2015 6:20 pm

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.
User avatar
VitalJavier
 
Posts: 241
Joined: Mon Jun 10, 2013 6:40 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 56 guests