Un Get con formato y rellenado automatico...

Post Reply
User avatar
lubin
Posts: 451
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Un Get con formato y rellenado automatico...

Post by lubin »

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
Carlos Mora
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Post by Carlos Mora »

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
User avatar
lubin
Posts: 451
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Post by lubin »

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

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

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

Post by lubin »

Amigos
Si alguien tiene alguna otra idea...

estare atento de escucharla

Lubin
User avatar
karinha
Posts: 7935
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Post by karinha »

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
ACC69
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm
Contact:

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

Post by ACC69 »

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
User avatar
lubin
Posts: 451
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

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

Post by lubin »

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.
Post Reply