Ir al contenido


Foto

Modificacion de datos de una tabla


  • Por favor identifícate para responder
2 respuestas en este tema

#1 ctn222

ctn222

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 29 octubre 2016 - 06:24

Hola buenas noches tengo 2 formularios en mi aplicacion.uno esta conformador por un dbgrid que listo los empleados y cuenta con 3 botones de abm(nuevo,modificar,eliminar) y el otro formulario de alta de empleados(este se abre al apretar el boton nuevo o modificar) si apreto el boton nuevo se abre en forma de insert, y si apreto el modificar se abre en forma de edit. Bien mi tabla esta formada de la siguiente forma que un empleado  pueden tener 1 o varios puestos de trabajo
En el formulario de alta cargo los puestos de trabajo utilizando un CheckListBox que trae los puestos de una tabla de mi base de datos llamado "puestos". y dbedit para los demas datos como nombre, apellido,dni , para realizar consultas a la base uso componentes query de zeos la base de datos esta realizada en mysql-5 y la aplicacion en delphi 2010.


Bien mi problema esta que cuando realizo una modificacion de un empleado este que fue seleccionado de una grilla (al apretar el boton modificar) y al abrir el formulario de alta en forma de edit me trae todo los datos de ese empleado pero no me pone en true los puestos de trabajo del CheckListBox. Basicamente necesito que al hacer la modificacion me traiga marcado los puesto de trabajo del empleado seleccionado,alguien podria ayudarme con esto.
dejo mi extructura de las tablas de la base de datos y los botones


aclaracion en la base de datos tengo las siguientes tablas Puestos de trabajo, asignados, empleados las cuales sus estructuras son la siguiente

Código SQL [-]
puestos
idpuesto
nombrepuesto

 

Código SQL [-]
empleado
idempleado
dni
nombre
apellido

 

Código SQL [-]
asignado
idasignado
idempleado
idpuesto

y el boton modificar que ya como mencione este se encuentra en el formulario listado. y abre el "formulario de alta " que se encargar de  abrir el formulario en forma de edit es el siguiente codigo
 

Código Delphi [-]
procedure TfListadoEmpleados.bModificarClick(Sender: TObject);
begin
tEmpleados.Active:=True;
if tEmpleados.Locate('idempleado',qEmpleados['idempleado'],[]) then;        //localiza un registro
 begin
   fmodulo.tEmpleados.Edit;
   tfempleados.Create(self).ShowModal;
 end;
 tEmpleados.Active:=False;
 qEmpleados.Refresh;
end;

en el evento create del formulario de alta escribo el siguiente codigo para cargar el CheckListBox con los puestos de trabajo

Código Delphi [-]
begin
 qPuestos.Open;
 qPuestos.DisableControls;
 qPuestos.First;
 try
    while not qPuestos.Eof do
    begin
      CheckListBox1.Items.AddObject(
        qPuestos.FieldByName('nombrepuesto').AsString,
        TObject(qPuestos.FieldByName('idpuesto').AsInteger));
      qPuestos.Next;
    end;
    qPuestos.First;
  finally
    qPuestos.EnableControls;
  end;
end;

luego en el boton aceptar del formulario tengo el siguiente codigo

Código Delphi [-]
var
  i: Integer;
begin
tEmpleados['fechadenacimiento'] := dtFecha.Date;
 tEmpleados.Post;
for i := 0 to CheckListBox1.Items.Count -1 do
  begin
    if CheckListBox1.Checked[i] then
    begin
    tAsignados.Active:=True;
      tAsignados.Insert;

      tAsignados.FieldByName('idempleado').AsInteger :=
      tEmpleados.FieldByName('idempleado').AsInteger;

      tAsignados.FieldByName('idpuesto').AsInteger   :=
      Integer(CheckListBox1.Items.Objects[i]);
      tAsignados.Post;
    end;
  end;
 self.Close;
end;

aclaraciones:
*tAsignados hace referencia a componentes tztables de zeos que tiene enlazada la tabla asignados

*qPuestos: es un query que contiene la consulta de la tabla puestos
*templeados: es un tztable con la tabla empleados

*qEmpleados: es un query que realizo la consulta con la misma tabla

Bien como ya mencione antes lo que necesito es al clikear el boton modificar es que me marque los puestos de trabajo de ese empleado en el otro formulario que se abrio alguna idea o ayuda ?
desde ya muchas gracias


  • 0

#2 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 29 octubre 2016 - 09:02

Cuando agregas el item al CheckBoxList en ningun lado estas marcando a ninguno. Por eso todos te salen desmarcados


  • 0

#3 ctn222

ctn222

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 31 octubre 2016 - 02:27

Cuando agregas el item al CheckBoxList en ningun lado estas marcando a ninguno. Por eso todos te salen desmarcados

no hice eso dado el caso que no entiendo como hacer ese paso  :/ 


  • 0