Verificar si un datawindows esta vacío

Como puedo verificar si los campos de mi datawindows esta vacío .. Te doi un ejemplo para que me entiendas
Tengo un datawindows tipo freeforn con los campo (código, nombre, dirección) y también tengo un botón que dice nuevo y otro botón guardar. El botón nuevo ia se como es y el botón guardar también se como es pero lo que no se es como hacer si por ejemplo cuándo le doy click en nuevo tengo que ingresar datos pero no ingreso nada no ingreso ningún dato y luego le doy click en el botón guardar y quiero que me bote un mesagebox diciendo "Tienes que ingresar datos" y cuando aia llenado los datos recién guarde

1 respuesta

Respuesta
1
Bueno eso es muy sencillo, lo puedes hacer de la siguiente manera:
Botón Guardar (Evento Clicked)
---------------------------------------
// Declaramos Variables
String ls_codigo, ls_nombre, ls_direccion
// Almacenos en las variables, los datos obtenidos del DataWindows
ls_codigo = dw_1.GetItemString( dw_1.GetRow( ), "idcliente")
ls_nombre = dw_1.GetItemString( dw_1.GetRow( ), "nombrecliente")
ls_direccion = dw_1.GetItemString( dw_1.GetRow( ), "direccioncliente")
// Ahora verificamos los campos si estan vacios
If isNull( ls_codigo) or isNull( ls_nombre) or isNull( ls_direccion) Then
   MessageBox("MENSAJE", "Porfavor Ingrese todos los datos", StopSign!)
Else
   // GUARDAR
   MessageBox("MENSAJE", "Los datos se han almacenado correctamente")
End If
Bueno eso seria todo, si tienes más dudas, hasmelas saber.
En el
ls_codigo = dw_1.GetItemString( dw_1.GetRow( ), "idcliente")
ls_nombre = dw_1.GetItemString( dw_1.GetRow( ), "nombrecliente")
ls_direccion = dw_1.GetItemString( dw_1.GetRow( ), "direccioncliente")
los que estan ne negrita son los nombre de los campos del datawindow ?
* Noc si algo estara mal en mi codigo porq no me sale
Cuando lleno todos los datos me vota el messagebox diciendo que faltan llenar datos pero io ia los llene todos.. y cuando vuelvo a escribir de nuevo ahí recién me guarda los datos no se que esta mal..
String ls_apellido, ls_nombre, ls_dni,ls_sexo,ls_direccion,ls_distrito,ls_telefono,ls_ruc
datetime ls_fnac
int ls_visitas
// Almacenos en las variables, los datos obtenidos del DataWindows
ls_apellido = dw_1.GetItemString( dw_1.GetRow( ), "apellido")
ls_nombre = dw_1.GetItemString( dw_1.GetRow( ), "nombre")
ls_dni = dw_1.GetItemString( dw_1.GetRow( ), "dni")
ls_sexo = dw_1.GetItemString( dw_1.GetRow( ), "sexo")
ls_fnac = dw_1.GetItemDateTime( dw_1.GetRow( ), "f_nac")
ls_direccion = dw_1.GetItemString( dw_1.GetRow( ), "direccion")
ls_distrito= dw_1.GetItemString( dw_1.GetRow( ), "distrito")
ls_telefono = dw_1.GetItemString( dw_1.GetRow( ), "telefono")
ls_visitas = dw_1.GetItemNumber( dw_1.GetRow( ), "visitas")
ls_ruc = dw_1.GetItemString( dw_1.GetRow( ), "ruc")
If isNull( ls_apellido) or isNull (ls_nombre) or isNull(ls_dni) or isNull(ls_sexo) or                   isNull(ls_fnac) or isNull(ls_direccion) or isNull(ls_distrito) or isNull(ls_telefono) or  isNull(ls_visitas) or isNull(ls_ruc) then
  MessageBox("Mensaje", "Ingrese todos los datos", StopSign!)
end if
Bueno veo que tienes muchos más campos, por ahí veo que tienes de tipo datetime, integer, ¿los has declarado así a tus variables? , recuerda que tus variables ls_fnac(ls = local string, es de tipo string,  recuerda que para tu caso debe de ser datetime = ldt_fnac) verifica bien esas variables. Si tienes más dudas hasmelas saber.
naaa man sige iwal ia arregle los erroes q me digistes pero sigw iwal , osea cuando no ingreso nada y le doy el boton guardar me dice ingrese los datos eso esta bien pero cuando termino de llenar los TODOS los datos le doy click al boton guardar y iwal me boto el mensaje "debe llenar todos datos" y cuando cambio un dato ahi recien me guarda....
Ahi sta mi codigo
// Declaramos Variables
String ls_apellido, ls_nombre, ls_dni,ls_sexo,ls_direccion,ls_distrito,ls_telefono,ls_ruc
datetime ldt_fnac
int li_visitas
// Almacenos en las variables, los datos obtenidos del DataWindows
ls_apellido = dw_1.GetItemString( dw_1.GetRow( ), "apellido")
ls_nombre = dw_1.GetItemString( dw_1.GetRow( ), "nombre")
ls_dni = dw_1.GetItemString( dw_1.GetRow( ), "dni")
ls_sexo = dw_1.GetItemString( dw_1.GetRow( ), "sexo")
ldt_fnac = dw_1.GetItemDateTime( dw_1.GetRow( ), "f_nac")
ls_direccion = dw_1.GetItemString( dw_1.GetRow( ), "direccion")
ls_distrito= dw_1.GetItemString( dw_1.GetRow( ), "distrito")
ls_telefono = dw_1.GetItemString( dw_1.GetRow( ), "telefono")
li_visitas = dw_1.GetItemNumber( dw_1.GetRow( ), "visitas")
ls_ruc = dw_1.GetItemString( dw_1.GetRow( ), "ruc")
// Ahora verificamos los campos si estan vacios
If isNull( ls_apellido) or isNull (ls_nombre) or isNull(ls_dni) or isNull(ls_sexo) or isNull(ldt_fnac) or isNull(ls_direccion) or isNull(ls_distrito) or isNull(ls_telefono) or isNull(li_visitas) or isNull(ls_ruc) then
    MessageBox("Mensaje", "Ingrese todos los datos", StopSign!)
Else
    dw_1.update( )
    if sqlca.sqlcode=0 then
            messagebox("Mensaje","Los datos se guardaron correctamente")
             commit;
                         dw_1.setfocus( )
                 dw_1.enabled=false
    cb_foto.enabled=false
    pb_6.enabled=false
    pb_10.enabled=false
    pb_8.enabled=true
    pb_5.enabled=true
    pb_7.enabled=true
        else
    messagebox("Mensaje","Error al guardar los datos")
    rollback;
    cb_foto.enabled=false
    end if
End If
Mmm ya veo, hay otra manera mucho más fácil, esto se hace en la base de datos:
1.- Modificar tu Tabla, a los campos que deseas validad, cambiale a No Null (no permitir ingresar valores nulos), esto evita que se ingresen campos vacíos.
2.- En el botón Guardar, has un simple Update validando el SQLCA. SQLCODE ya que al no ingresar un campo se producirá un error en el SQL, y pones un mensaje, "Error al guardar, asegurece que se han ingresado todos los campos" o algo parecido.
Bueno creo que eso es todo, me avisas si te funcionó.
Las tablas ya no se pueden modificar cuando quiero modificarlas me sale un mensaje diciendo que si quiero modificarlas tengo que crearla de nuevo tengo el sql server 2008.. ni modo creo que no se va a poder . de todos modos gracias xD
No men, yo ya lo hice, el sql 2008 esta medio espeso, tienes que eliminar la tabla y crearla de nuevo con todos los campos NO NULL.
No olvides Calificar y Cerrar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas