FoxPro/Visual FoxPro - Validar Campos antes de salir

 
Vista:

Validar Campos antes de salir

Publicado por Edith (29 intervenciones) el 16/02/2007 19:35:42
Hola a tod@s

Me he estado peleando con el codigo para poder validar los campos vacios, es decir.

Deseo que el usuario no cierre el formulario ni pueda guardar hasta que todos los campos tengan datos y asi se puedan almacenar.

Tengo es siguiente codigo, pero no me funciona, me manda el mensaje de que hay datos en blanco y despues el otro mensaje de datos guardados y me deshabilita los objetos.
Que es lo que esta mal????????

IF thisform.txtcliente.text="" or thisform.txtdireccion.text=" " OR thisform.txtcolonia.text=" " OR thisform.txtdelegacion.text=" " OR thisform.txtcp.text=" " OR thisform.txttelefono.text=" " OR thisform.txtrfc.text = " " then
lnmen=MessageBox("No puede haber campos en blanco, Verifique la informacion",24,"Guardar")
else
SELECT all_cliente
Begin Transaction

if tableUpdate(.t.) then
End Transaction

lnmen=MessageBox("Datos Guardados con Exito",24,"Guardar")
else
RollBack

lnmen=MessageBox("Los Datos No se Guardaron",24,"Guardar")
endif
ENDif
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
sin imagen de perfil

RE:Validar Campos antes de salir

Publicado por Ernesto Hernandez (4623 intervenciones) el 16/02/2007 19:44:05
Revisa la funcion EMPTY te serviria mejor para esos casos

Suerte
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 Campos antes de salir

Publicado por CarlosA (86 intervenciones) el 16/02/2007 21:25:32
ERNESTO... no contestes por contestar... se mas concreto... es para beneficio de todos... no te limites en la respuesta.. un saludo y gracias...

EDITH
lo que estas haciendo mal es la validacion... cuando quieres evaluar si un text esta en blanco debes preguntar por la propiedad VALUE

y como dice Ernesto.. usa el comando empty. quedaria asi

IF empty(thisform.txtcliente.value) or empty(thisform.txtdireccion.value) OR empty(thisform.txtcolonia.value) OR empty(thisform.txtdelegacion.value) OR empty((thisform.txtcp.value) OR empty(thisform.txttelefono.value) OR empty(thisform.txtrfc.value) then
lnmen=MessageBox("No puede haber campos en blanco, Verifique la informacion",24,"Guardar")
else
SELECT all_cliente
Begin Transaction

if tableUpdate(.t.) then
End Transaction

lnmen=MessageBox("Datos Guardados con Exito",24,"Guardar")
else
RollBack

lnmen=MessageBox("Los Datos No se Guardaron",24,"Guardar")
endif
ENDif

saludo

CarlosA
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 Campos antes de salir

Publicado por Gregory (187 intervenciones) el 16/02/2007 21:44:01
tambien puedes colocar esto en cada textbox en el evento valid de mismo

if empty(this.value)
=messagebox("Debe llenar el campo",16,"Verificar")
return .f.
endif

* lo que hace return .f. es que no deja pasar o salir el cursor del campo hasta que este este lleno

suerte.
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
sin imagen de perfil

RE:Validar Campos antes de salir

Publicado por Ernesto Hernandez (4623 intervenciones) el 16/02/2007 22:16:09
Compañero recuerda que siempre se te daran las armas para que aprendas a hacer las cosas no hay que hacer las cosas por ti. Tambien hay que razonar un poco

:-|
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
sin imagen de perfil

RE:Validar Campos antes de salir

Publicado por neo (1604 intervenciones) el 16/02/2007 21:41:23
Y porque no mejor valida en tiempo de ejecucion los textbox u objetos que desee..

en el Evento "Valid" o "LostFocus" del Textbox u objeto:
If empty (Thisform.txtcliente.value)
messagebox("el campo cliente no puede estar vacio",4+32,"Error")
Return .f.

endif


Suerte►
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 Campos antes de salir

Publicado por CarlosA (86 intervenciones) el 16/02/2007 21:45:37
El validar en ejecucion sirve cuando el usuario tiene que desplazarce por todos los campos... pero como se puede saltar usando el mouse, si el usuario hace click en un boton guardar o salir se salta todas las validaciones de los campos.... por eso por lo general es mejor validar al final...

saludo

CarlosA
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 Campos antes de salir

Publicado por CarlosA (86 intervenciones) el 16/02/2007 21:45:45
El validar en ejecucion sirve cuando el usuario tiene que desplazarce por todos los campos... pero como se puede saltar usando el mouse, si el usuario hace click en un boton guardar o salir se salta todas las validaciones de los campos.... por eso por lo general es mejor validar al final...

saludo

CarlosA
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 Campos antes de salir

Publicado por Plinio (7841 intervenciones) el 16/02/2007 22:59:03
1- Esa comparacion me gusta mas hacerla con AND que con OR. Tiene su logica.
2- Es preferible usar EMPTY() como dicen los compañeros, porque en algunos campos preguntas por " " y eso significa si tiene esos dos espacios.
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 Campos antes de salir

Publicado por Ernesto Ruiz (134 intervenciones) el 17/02/2007 17:38:17
Hola que tal, tengo una rutina PRG para validar todo eso, aparte de validar textbox, valida optionsgroups, combobox ect, de una manera muy facil y sencilla, si alguien le interesa se los mando por email, cabe mencionar que esa rutina la hizo un amigo y con gusto la comparto.
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
sin imagen de perfil

RE:Validar Campos antes de salir

Publicado por Ernesto Hernandez (4623 intervenciones) el 17/02/2007 19:12:16
Estaria bien analizarla ... y por que no lapublicas para toda la comunidad :-)
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 Campos antes de salir

Publicado por janniel (1 intervención) el 15/05/2007 02:01:31
no te amarres demasiado yo trabajo asi simple y sencillo:
en el boton guardar coloco lo siguiente:
if (thisform.texto1.value=" ") then
messagebox("Debe colocar datos en el campo")
endif
=tableupdate=.t.
thisform.refresh()

y listo
Nota en el punto value es igual a " " debes dejar un espacio es importante sino
indicaras que limpie la pantalla pero para mejor verificacion mandame un correo y en lo que lo abra sabre si funciono o no tengo tiempo que no trabajo en foxpro
mi correo es [email protected]
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