Ver Mensaje Individual
  #2  
Antiguo 18-10-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
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.

Creo entender que tenes problemas para que en el CheckListBox se muestren (queden marcados) los puestos que a cada empleado ya le han sido asignados. Y, si interpreté bién, podrías hacer algo así:
Código Delphi [-]
// Cargar puestos en el CheckListBox
procedure TForm1.FormCreate( Sender: TObject );
begin
  //...

  // Cargar puestos en el CheckListBox
  qyPuestos.Open;
  while not qyPuestos.Eof do
  begin
    CheckListBox1.Items.AddObject(
      qyPuestos.FieldByName( 'NOMBREPUESTO' ).AsString,
      TObject( qyPuestos.FieldByName( 'IDPUESTO').AsInteger ) );
    qyPuestos.Next;
  end;

  //...
  tEmpleados.AfterScroll := tEmpleadosAfterScroll;
  tEmpleados.First;
end;

// Mostrar puestos del empleado actual en CheckListBox
procedure TForm1.tEmpleadosAfterScroll( DataSet: TDataSet );
var
  i: Integer;
begin
  for i := 0 to CheckListBox1.Count - 1 do
    CheckListBox1.Checked[i] := False;

  qyTmp.Close;
  qyTmp.SQL.Clear;
  qyTmp.SQL.Add( 'SELECT P.NOMBREPUESTO' );
  qyTmp.SQL.Add( 'FROM EMPLEADO E');
  qyTmp.SQL.Add( 'INNER JOIN ASIGNADO A ON E.IDEMPLEADO = A.IDEMPLEADO' );
  qyTmp.SQL.Add( 'INNER JOIN PUESTO P ON A.IDPUESTO = P.IDPUESTO' );
  qyTmp.SQL.Add( 'WHERE E.IDEMPLEADO = :PID' );
  qyTmp.ParamByName( 'PID' ).AsInteger :=
    tEmpleados.FieldByName( 'IDEMPLEADO' ).AsInteger;
  qyTmp.Open;

  while not qyTmp.Eof do
  begin
    i := CheckListBox1.Items.IndexOf( qyTmp.FieldByName( 'NOMBREPUESTO' ).AsString );
    if i <> -1 then
      CheckListBox1.Checked[i] := True;
    qyTmp.Next;
  end;
end;
...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  tEmpleados.AfterScroll := nil;
end;

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 18-10-2016 a las 07:39:30.
Responder Con Cita