Páginas

terça-feira, 12 de julho de 2016

Marcando campos em uma dbGrid e mostrando em outra

Boa noite, 

temos a seguinte situação:

1 lista em um DataSet com valores;
1 dbGrid com colunas com os mesmos nomes dos valores do DataSet 1

onde minha lista da direita eu tenho todos os campos de uma tabela por exemplo, e a da esquerda eu tenho registro por registro todas as informações.

Agora eu quero selecionar na minha lista da direita e quero que apareça somente as colunas marcadas na minha tabela da esquerda.

vamos lá:

Evento Duplo clique da tabela da direita temos a implementação

  LstCampos.Edit;
   if StrToBool(LstCampos.FieldValues['checado']) then
      LstCampos.FieldValues['checado']:=BoolToStr(False)
   else
      LstCampos.FieldValues['checado']:=BoolToStr(True);
   Auditoria.LstCampos.Post;


LstCampos.Tag:=Auditoria.LstCampos.RecNo;
LstCampos.DisableControls;
LstCampos.First;



while not LstCampos.Eof do
   begin
      if LstCampos.FieldValues['checado']=False then
      begin
         for x := 0 to gLista.Columns.Count do
         begin
            with gLista.Columns.Items[x] do
            begin
               if FieldName=LstCampos.FieldByName('nome').AsString then
               begin
                  Visible:=False;
                  Break
               end;
            end;
         end;
      end
      else
      begin
         for x := 0 to gLista.Columns.Count do
         begin
            with gLista.Columns.Items[x] do
            begin
               if FieldName=LstCampos.FieldByName('nome').AsString then
               begin
                  Visible:=True;
                  Break
               end;
            end;
         end;
      end;
      LstCampos.Next;
   end;

   LstCampos.RecNo:=LstCampos.Tag;
   LstCampos.EnableControls;

é isso ai, quando voce der 2 cliques na lista da direita ele vai atualizar as colunas da outra tabela.

Nenhum comentário: