Ver Mensaje Individual
  #3  
Antiguo 22-06-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Belen12.

A mi tampoco me queda clara la forma en que deseas implementar la solución. Entiendo que tenes tres tablas,
Código:
Empleados
---------
ID
...

Puestos
-------
ID
...

Asignado
--------
 Empleados_ID,
 Puestos_ID
donde la tabla PUESTOS ya tiene cargado los cargos disponibles y la tabla ASIGNADO se encarga de almacenar las distintas relaciones: empleado_N -> cargo_1, cargo_2, ..., cargo_N.

Pero, ¿ Por que hacer la elección del puesto desde otro formulario ? Podrías hacerlo todo desde el formulario de ingreso de empleado, una imágen de ejemplo a lo que me refiero:


Si no entendí mal tu planteo, podría resultarte una opción mas sencilla de mantener y el código tampoco es muy complejo:
Código Delphi [-]
// Cargar cargo/ID en el TCheckListBox
procedure TForm1.FormCreate(Sender: TObject);
begin
  qyPuesto.Open;
  qyPuesto.DisableControls;
  qyPuesto.First;
  try
    while not qyPuesto.Eof do
    begin
      CheckListBox1.Items.AddObject(
        qyPuesto.FieldByName('CARGO').AsString,
        TObject(qyPuesto.FieldByName('ID').AsInteger));
      qyPuesto.Next;
    end;
    qyPuesto.First;
  finally
    qyPuesto.EnableControls;
  end;
  ...
end;

procedure TForm1.btnSaveClick(Sender: TObject);
var
  i: Integer;
begin
  ...
  ...  ( guardar datos del empleado )
  ...

  for i := 0 to CheckListBox1.Items.Count -1 do
  begin
    if CheckListBox1.Checked[i] then
    begin
      tbAsignado.Insert;

      tbAsignado.FieldByName('ID_EMPLEADO').AsInteger :=
        tbEmpleado.FieldByName('ID').AsInteger;

      tbAsignado.FieldByName('ID_PUESTO').AsInteger   :=
        Integer(CheckListBox1.Items.Objects[i]);

      tbAsignado.Post;
    end;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita