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