FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour MODIFICAR UN GET NUMERICO (solucionado)
Posts: 85
Joined: Thu Oct 14, 2010 03:26 AM
MODIFICAR UN GET NUMERICO (solucionado)
Posted: 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ú

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Sat Sep 26, 2015 03: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... :-)
Code (fw): Select all Collapse
PICTURE "@E 999,999.99"
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 85
Joined: Thu Oct 14, 2010 03:26 AM
Re: MODIFICAR UN GET NUMERICO
Posted: Sat Sep 26, 2015 06: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ú

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Sat Sep 26, 2015 02: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... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 85
Joined: Thu Oct 14, 2010 03:26 AM
Re: MODIFICAR UN GET NUMERICO
Posted: Sat Sep 26, 2015 02: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?

Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Sat Sep 26, 2015 03: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.

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: MODIFICAR UN GET NUMERICO
Posted: 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... :-)

Code (fw): Select all Collapse
   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!
Posts: 85
Joined: Thu Oct 14, 2010 03:26 AM
Re: MODIFICAR UN GET NUMERICO
Posted: 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.

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: MODIFICAR UN GET NUMERICO
Posted: Sun Sep 27, 2015 05: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
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: MODIFICAR UN GET NUMERICO
Posted: Mon Sep 28, 2015 08:31 AM
Hola Julio Cesar,

Incluye la "k" en el picture.
Code (fw): Select all Collapse
"@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
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Mon Sep 28, 2015 02:23 PM

Fernando, buen dia

Pues ya lo probe como nos indicas "@KE 99,999.999" y nada
sigue igual.

Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Mon Sep 28, 2015 02:53 PM
Mira si ayuda:

Code (fw): Select all Collapse
// -----------------------------------------------------------------------
// 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
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Mon Sep 28, 2015 04: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!
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Mon Sep 28, 2015 05: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
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: MODIFICAR UN GET NUMERICO
Posted: Mon Sep 28, 2015 06: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.