Comparacion de campos!!! Urgente.
Tengo que desarrollar una interfaz que pueda revisar que los campos tecleados por el usuario cumplan con ciertas reglas de negocio, por ejemplo:
Tengo un campo denominado Numero de A, el usuario teclea el numero y debe de cumplir con ciertas reglas, como por ejemplo este campo debe contener 10 digitos.
Como le hago para que el si el campo es de 12 pues despliegue un mensaje de error???, y si cumple con la condicion despliegue un mensaje que indique que el campo es valido.
Mi pregunta no es como desplegar el mensaje sino como le hago para que compare el campo con las reglas establecidas???
Esto es URGENTE!!!! MI TRABAJO DEPENDE DE ELLO!!!
GRACIAS =)
Tengo un campo denominado Numero de A, el usuario teclea el numero y debe de cumplir con ciertas reglas, como por ejemplo este campo debe contener 10 digitos.
Como le hago para que el si el campo es de 12 pues despliegue un mensaje de error???, y si cumple con la condicion despliegue un mensaje que indique que el campo es valido.
Mi pregunta no es como desplegar el mensaje sino como le hago para que compare el campo con las reglas establecidas???
Esto es URGENTE!!!! MI TRABAJO DEPENDE DE ELLO!!!
GRACIAS =)
bueno espero sea el caso:
puedes poner sentencias en el evento INTERACTIVECHANGE del objeto
este evento se ejecuta cada vez que el usuario presiona una tecla ya que el objeto cambia de estado interactivamente.
como ejemplo:
if len(this.value))>10
messagebox("solo ingrese 10 digitos")
return (0)
endif
o sino mas facil
usa la validacion de campos a nivel de base de datos
ve al campor por decir "numerosA" entocnes en donde dice regla de negocio pones (len(numerosA)<=10) y en mensaje "ingrese como maximo 10 digitos"
espero te sirva sino agregame a tus contactos y talves podamos solucionarlo juntos conociendo los detalles del sistema que estas desarrollando.
puedes poner sentencias en el evento INTERACTIVECHANGE del objeto
este evento se ejecuta cada vez que el usuario presiona una tecla ya que el objeto cambia de estado interactivamente.
como ejemplo:
if len(this.value))>10
messagebox("solo ingrese 10 digitos")
return (0)
endif
o sino mas facil
usa la validacion de campos a nivel de base de datos
ve al campor por decir "numerosA" entocnes en donde dice regla de negocio pones (len(numerosA)<=10) y en mensaje "ingrese como maximo 10 digitos"
espero te sirva sino agregame a tus contactos y talves podamos solucionarlo juntos conociendo los detalles del sistema que estas desarrollando.
Segui tu consejo e hice un boton con el siguiente codigo:
if len(thisform.Text1.value)>10
messagebox("El campo es mayor a 10 digitos")
return(0)
endif
sin embargo no funciona ya que con cualquier digito que ingrese despliega el mensaje, puedes decirme donde esta mi error??
Gracias
if len(thisform.Text1.value)>10
messagebox("El campo es mayor a 10 digitos")
return(0)
endif
sin embargo no funciona ya que con cualquier digito que ingrese despliega el mensaje, puedes decirme donde esta mi error??
Gracias
Hola Javier:
"el dÃa 8 de diciembre de 2003 escribiste:
Segui tu consejo e hice un boton con el siguiente codigo:
if len(thisform.Text1.value)>10
messagebox("El campo es mayor a 10 digitos")
return(0)
endif
sin embargo no funciona ya que con cualquier digito que ingrese despliega el mensaje, puedes decirme donde esta mi error??"
Creo que si antecedes estas lineas con esto te funcionara hasta que el usuario presione una tecla, or decir ENTER:
if lastkey()=13
if len(thisform.Text1.value)>10
messagebox("El campo es mayor a 10 digitos")
return(0)
endif
endif
Pon esas lineas en el evento lostfocus del campo y el campo debera tener una longitud que te permita presionar enter luego de teclear los 10 digitos.
Cualquier cosa me avisas.
Saludos
Raul Urquilla
"el dÃa 8 de diciembre de 2003 escribiste:
Segui tu consejo e hice un boton con el siguiente codigo:
if len(thisform.Text1.value)>10
messagebox("El campo es mayor a 10 digitos")
return(0)
endif
sin embargo no funciona ya que con cualquier digito que ingrese despliega el mensaje, puedes decirme donde esta mi error??"
Creo que si antecedes estas lineas con esto te funcionara hasta que el usuario presione una tecla, or decir ENTER:
if lastkey()=13
if len(thisform.Text1.value)>10
messagebox("El campo es mayor a 10 digitos")
return(0)
endif
endif
Pon esas lineas en el evento lostfocus del campo y el campo debera tener una longitud que te permita presionar enter luego de teclear los 10 digitos.
Cualquier cosa me avisas.
Saludos
Raul Urquilla
Creo que tu error esta en que no utilzar el valor ascii de la tecla.
Loque puedes hacer es poner una condicion en el evento keypress o dar una mascara de entrada al texbox ejemplo
thisform.txtcedula.inputmask = '9999999999'
esto valida que solo se digiten numeros
y des pues pones en el evento VALID
if len(STR(this.value)) > 10 then
MESSAGEBOX('ERROR')
RETURN 0
else
RETURN 1
ENDIF
Espero ayudarte
Loque puedes hacer es poner una condicion en el evento keypress o dar una mascara de entrada al texbox ejemplo
thisform.txtcedula.inputmask = '9999999999'
esto valida que solo se digiten numeros
y des pues pones en el evento VALID
if len(STR(this.value)) > 10 then
MESSAGEBOX('ERROR')
RETURN 0
else
RETURN 1
ENDIF
Espero ayudarte
BUENO CREO Q TU LO QUE QUIERES HACER ES QUE NO TE VALIDE EL CAMPO SI INSERTAS UN NUMERO MAYOR O MENOR DE DIGITOS, LO QUE PUEDES HACER ES
como ejemplo:
IF LEN(ALLTRIM(NRO))>10
messagebox("solo ingrese 10 digitos")
return (0)
endif
CREO Q ESO ES LO QUE QUIERES, AUNQUE NO ESTOY SEGURO DE CUAL ES TU PROBLEMA EXACTAMENTE
como ejemplo:
IF LEN(ALLTRIM(NRO))>10
messagebox("solo ingrese 10 digitos")
return (0)
endif
CREO Q ESO ES LO QUE QUIERES, AUNQUE NO ESTOY SEGURO DE CUAL ES TU PROBLEMA EXACTAMENTE
para validar la regla de negocio que vos indicas, se me ocurren al menos dos posibilidades, muy parecidas.
Una es fijar la propiedad inputmask, donde determinas que lo unico que puede tipear el usuario son digitos (tipeas diez nueves 999999999).
Si queres validar que digiten los diez dÃgitos, colocas en el metodo VALID del cuadro de texto algo asi como
IF LEN(ALLTRIM(STR(THIS.VALUE)))<10 THEN
* tomo el valor del cuadro de texto, lo convierto a hilera de
* caracteres, elimino blancos que pudiera haber, calculo su
* longitud y veo que no sea menor que 10, la mascara que
* indique como propiedad, evita que haya algo distinto de
* dÃgitos o que sean mayo que 10
=MESSAGEBOX(...mensaje de error apropiado...)
RETURN 0
ELSE
=MESSAGEBOX(...felicitaciones, ud. lo ha hecho bien!!..)
ENDIF
SUGERENCIA: A los usuarios en un principio les puede agradar que lo feliciten por hacer las cosas bien, pero despues de un tiempo, tener que contestar al mensaje de felicitación se les pone pesado.
A los usuarios, al equivocarse, cuando mas discreto sea el aviso de error, mejor, un simple beep, indicando que el campo esta lleno es suficiente.
Hace mas de 20 años que codifico programas interactivos, y al final uno aprende.
Una es fijar la propiedad inputmask, donde determinas que lo unico que puede tipear el usuario son digitos (tipeas diez nueves 999999999).
Si queres validar que digiten los diez dÃgitos, colocas en el metodo VALID del cuadro de texto algo asi como
IF LEN(ALLTRIM(STR(THIS.VALUE)))<10 THEN
* tomo el valor del cuadro de texto, lo convierto a hilera de
* caracteres, elimino blancos que pudiera haber, calculo su
* longitud y veo que no sea menor que 10, la mascara que
* indique como propiedad, evita que haya algo distinto de
* dÃgitos o que sean mayo que 10
=MESSAGEBOX(...mensaje de error apropiado...)
RETURN 0
ELSE
=MESSAGEBOX(...felicitaciones, ud. lo ha hecho bien!!..)
ENDIF
SUGERENCIA: A los usuarios en un principio les puede agradar que lo feliciten por hacer las cosas bien, pero despues de un tiempo, tener que contestar al mensaje de felicitación se les pone pesado.
A los usuarios, al equivocarse, cuando mas discreto sea el aviso de error, mejor, un simple beep, indicando que el campo esta lleno es suficiente.
Hace mas de 20 años que codifico programas interactivos, y al final uno aprende.
Miguel: te agradezco tu ayuda, sin embargo esto que tu me recomiendas yo ya lo habia hecho, y me manda un error poco comun, espero puedas ayudarme nuevamente. El error que me envia es el siguiente:
Function argument value, type, or count is invalid
Gracias por tu ayuda.
P.D. si alguien sabe como resolver esto, les pido su ayuda!!!!
Function argument value, type, or count is invalid
Gracias por tu ayuda.
P.D. si alguien sabe como resolver esto, les pido su ayuda!!!!
