Un Get con formato y rellenado automatico...

Un Get con formato y rellenado automatico...

Postby lubin » Sat Nov 15, 2008 8:10 pm

buenas tardes con todos...

Tengo un get con el formtato.. "999999.9999-xxxxx"

Se vera que tienes dos zonas numericas separadas por un punto y una de tipo texto "xxxx" separadas por un "-"

la idea es que se vaya rellenado las zonas a medida que se va escribiendo,, por ejemplo:
se inicia digitando el codigo como "123" y al presionar el punto "." se rellene la primera zona asi "000123." y el cursor se ubique despues del "punto"

luego se continua digitando la 2da zona con "78" y al presionar el guion "-" lo rellene de ceros la 2da zona ... y vaya quedando asi : "000123.0078-" dejando el cursor despues del guion

finalmente se digita la zona de texto y se digita... "PF" y si se presiona el enter en el get quedara asi... "000123.0078-00PF"


Un detalle mass... donde quiera q este el cursor si se presiona el "." (punto), el cursor debe ubicarse siempre adelante del punto.. y si se presiona el guion el cursor se debe ubicar despues del "guion"
Espero haberme dejado entender

Graciasss. por su tiempo

Lubin
User avatar
lubin
 
Posts: 449
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru

Postby Carlos Mora » Sun Nov 16, 2008 8:22 am

Hola Lubin,

lo que yo use siempre fue formatear la entrada en el valid. Por ejemplo, en un programa de facturación el nro de comprobante tiene el formato A 9999-99999999, una letra , 4 digitos de sucursal/delegacion- y el nro de comprobante con 8 digitos. Para que fuese sencillo ingresar tales números, permito que el usuario ingrese en el get A3-104, y en el valid del get transformo la variable del get a su formato, A 0003-00000104. Eventualmente tambien puede ingresar A104, si está en la sucursal 3, ya que si no la especifica automáticamante asume la sucursal que tiene configurada el programa. Otro detalle es que el picture es @K, lo que implica que si lo primero que digita no es un movimiento de cursor borra la entrada.

Espero que te sirva la idea,

Un saludo
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby lubin » Sun Nov 16, 2008 8:32 am

GRacias Carlos
me das un hilo para comenzar a encontrar la solucion, vere la alternativa

Lubin
User avatar
lubin
 
Posts: 449
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru

Re: Un Get con formato y rellenado automatico...

Postby lubin » Mon Nov 17, 2008 5:09 am

Amigos
Si alguien tiene alguna otra idea...

estare atento de escucharla

Lubin
User avatar
lubin
 
Posts: 449
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru

Postby karinha » Mon Nov 17, 2008 1:46 pm

Hola,

Mira en el NORTON GUIDE(NG.EXE) del CLIPPER:

PICTURES CODE en el MENU del NORTON GUIDE.

Por ejemplo:

PICTURE "@B... ), PICTURE "@K...), PICTURE "@Z...), etc.

Busca uno que te sirva.

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

Re: Un Get con formato y rellenado automatico...

Postby ACC69 » Mon Nov 17, 2008 4:31 pm

lubin wrote:buenas tardes con todos...

Tengo un get con el formtato.. "999999.9999-xxxxx"

Se vera que tienes dos zonas numericas separadas por un punto y una de tipo texto "xxxx" separadas por un "-"

la idea es que se vaya rellenado las zonas a medida que se va escribiendo,, por ejemplo:
se inicia digitando el codigo como "123" y al presionar el punto "." se rellene la primera zona asi "000123." y el cursor se ubique despues del "punto"

luego se continua digitando la 2da zona con "78" y al presionar el guion "-" lo rellene de ceros la 2da zona ... y vaya quedando asi : "000123.0078-" dejando el cursor despues del guion

finalmente se digita la zona de texto y se digita... "PF" y si se presiona el enter en el get quedara asi... "000123.0078-00PF"


Un detalle mass... donde quiera q este el cursor si se presiona el "." (punto), el cursor debe ubicarse siempre adelante del punto.. y si se presiona el guion el cursor se debe ubicar despues del "guion"
Espero haberme dejado entender

Graciasss. por su tiempo

Hola Lubin, buenos dias como estas, tendrias que crear tu propia rutina para que te rellene los ceros a la izquierda, es como una captura de cuentas contables con formato de 1 a 4 digitos, te pasare un ejemplo de mi rutina.

FORMATO1(1020-1, Ctaf, .T.)


FUNCTION FORMATO1(VarCta, Ctaf,lGuion)
Local lcad1, lcad2, lcad3, lCad4, I, cFormCta

I := 0
lcad1 := ""
lcad2 := ""
lcad3 := ""
lcad4 := ""

//Procesa el primer campo de 4 Digitos: 0000- // Nivel 1
Do While .T.
I=I+1

IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
Exit
EndIF

lcad1 := lcad1 + SubStr(Ctaf, I , 1)
EndDo

//Procesa el segundo campo de 4 Digitos: 0000-0000 // Nivel 2
Do While .T.
I=I+1

IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
Exit
EndIF

lcad2 := lcad2 + SubStr(Ctaf, I , 1)
EndDo

//Procesa el tercer campo de 4 Digitos: 0000-0000-0000 // Nivel 3
Do While .T.
I=I+1

IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
Exit
EndIF

lcad3 := lcad3 + SubStr(Ctaf, I, 1)
EndDo

//Procesa el cuarto campo de 4 Digitos: 0000-0000-0000-0000 // Nivel 4
Do While .T.
I=I+1

IF SubStr(Ctaf, I, 1) == '-' .OR. I > Len(Ctaf)
Exit
EndIF

lcad4 := lcad4 + SubStr(Ctaf, I, 1)
EndDo

*Nota: Tienes que indicar los 3 '-', ej: 1--, y como resultado: 00001-0000-0000-0000

IF lGuion
cFormCta := STRZERO(Val(lcad1),4) +'-'+ STRZERO(Val(lcad2),4)+'-'+ STRZERO(Val(lcad3),4)+'-'+ STRZERO(Val(lcad4),4)
ELSE
cFormCta := STRZERO(Val(lcad1),4) + STRZERO(Val(lcad2),4) + STRZERO(Val(lcad3),4) + STRZERO(Val(lcad4),4)
ENDIF
RETURN (cFormCta)



Espero haberte dado la idea de lo que quieras hacer, buen dia amigo.

Lubin
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Un Get con formato y rellenado automatico...

Postby lubin » Mon Nov 17, 2008 5:07 pm

Muchas Gracias ACC69

por lo que veo me suguieres una funcion de conversion.. luego de haber digitado.. pero le dare vuelta.. para ver como lo hago en tiempo de ejecucion,, con esta ayudaa.. graciass.
User avatar
lubin
 
Posts: 449
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 52 guests