FoxPro/Visual FoxPro - Validar TextBox Numerico

 
Vista:

Validar TextBox Numerico

Publicado por gabriel (427 intervenciones) el 24/05/2007 20:31:50
Que tal amigos :

Se me presenta un problema con el siguiente codigo...

DO CASE

CASE Thisform.COMBO1.DisplayValue = "D.N.I."

Thisform.TxtNum_Doc.MaxLength = 8

IF LEN(ALLTRIM(STR(Thisform.TxtNum_Doc.Value))) <= 8 THEN

=MESSAGEBOX("Ingrese Solo 8 Dígitos...",0+16,"Error")

RETURN 0

ENDIF

CASE Thisform.COMBO1.DisplayValue = "R.U.C."

Thisform.TxtNum_Doc.MaxLength = 11

IF LEN(ALLTRIM(STR(Thisform.TxtNum_Doc.Value))) < 11 THEN

=MESSAGEBOX("Ingrese Solo 11 Dígitos...",0+16,"Error")

RETURN 0

ELSE

IF LEN(ALLTRIM(STR(Thisform.TxtNum_Doc.Value))) = 11 THEN

=MESSAGEBOX("Ingreso 11 Dígitos.",0+64,"Ok...")

RETURN .T.

ENDIF

ENDIF

ENDCASE

El problema es cuando el usuario ingresa la cantidad de digitos exacta
por ejemplo en el R.U.C Nº12345627890 (El Valid me vuelve a mostrar el
mensaje de error...

Amigos me podrian decir que estoy haciendo mal o que falta para que
funcione la rutina correctamente.

Espero sus comentarios y respuestas.

Saludos,

GABRIEL

PD : SE PODRIA VARIAR EL ANCHO DEL TEXTBOX SEGUN LA CANTIDAD DE
DIGITOS DEL DOCUMENTO UTILIZANDO UN MISMO CONTROL TEXTBOX...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Validar TextBox Numerico

Publicado por enrique (1041 intervenciones) el 24/05/2007 20:41:55
En el ejemplo que pusiste del R.U.C el Nº es 12345627890 con el 2 entre el 6 y el 7? por que si se te chispoteo el 2 el tema es que estas ingresando 10 y no 11 digitos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar TextBox Numerico

Publicado por Hector (50 intervenciones) el 24/05/2007 20:51:04
Gabriel

Yo te recomiendo que valides la eleccion del combo de forma numerica, es mas facil validar un simple numero que varios caracteres.

Inicializa el combo thisform.combo1.value = 1

Esto indica que el combo muestra el primer registro y los demas toman el siguiente numero, de tal forma que la siguiente linea cambia de
CASE Thisform.COMBO1.DisplayValue = "D.N.I."
a
CASE Thisform.COMBO1.Value = 1

y continuas con lo demas.

En relacion al textbox con varios anchos no es problema pues la cantidad maxima de caracteres sebe ser el que tu requieras, pues en la validacion tu evaluas cuantos caracteres capturan.

Espero te sirva

Saludos desde Mexico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Validar TextBox Numerico

Publicado por Gabriel (112 intervenciones) el 24/05/2007 20:59:07
Hola ,
Me parece que en esta parte:
CASE Thisform.COMBO1.DisplayValue = "R.U.C."

Thisform.TxtNum_Doc.MaxLength = 11

IF LEN(ALLTRIM(STR(Thisform.TxtNum_Doc.Value))) > 11 THEN &&Mayor

=MESSAGEBOX("Ingrese Solo 11 Dígitos...",0+16,"Error")

RETURN 0

ELSE

IF LEN(ALLTRIM(STR(Thisform.TxtNum_Doc.Value))) = 11 THEN

=MESSAGEBOX("Ingreso 11 Dígitos.",0+64,"Ok...")

RETURN .T.

ENDIF

ENDIF
endcase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar