07/03/2006

Trocar e Atualizar Valor Booleano em Grid

Boa tarde, pessoal...

Tenho uma Grid que é alimentada por uma ADOQuery onde há um campo do tipo Boolean (Sim/Nâo) que é um campo de uma tabela Access. Na Grid os campos saem como ´True´ ou ´False´.

Há uma forma, sem usar campo Lookup, de que saia ´Sim´ ou ´Nâo´ no lugar, podendo ainda ser atualizado/trocado (´Sim´ para ´Não´ e vice-versa) utilizando por exemplo um combobox na coluna ?

Espero ter explicado direito.

Obrigado pela ajuda.


Adalberto

Respostas

07/03/2006

Paullsoftware

certo, mais só uma ideia... não seria legal usar Chekebox???

daí vc adapta o código abaixo ao seu critério...
no OnCellClick do Grid
  if Column.Field=DM_BANCO.DETLOCACAODEVOLVIDO then
  begin
    DM_BANCO.DETLOCACAO.Edit;
    if DM_BANCO.DETLOCACAODEVOLVIDO.AsString=´S´ then
    begin
    DM_BANCO.DETLOCACAODEVOLVIDO.AsString := ´N´;
    DM_BANCO.DETLOCACAO.Post;
    end else
    begin
    DM_BANCO.DETLOCACAODEVOLVIDO.AsString := ´S´;
    DM_BANCO.DETLOCACAO.Post;
    end;
  end;

no OnCollEnter do Grid
 
 if DBGrid1.SelectedField=DM_BANCO.DETLOCACAODEVOLVIDO then
    DBGrid1.Options := DBGrid1.Options - [dgEditing&93;
    else
    DBGrid1.Options := DBGrid1.Options + &91;dgEditing&93;;

no OnDrawColumnCell do Grid
if Column.Field=DM_BANCO.DETLOCACAODEVOLVIDO then
  begin
   DBGrid2.Canvas.FillRect(Rect);
   FPRINCIPAL.ImageList1.Draw(DBGrid2.Canvas,Rect.Left+10,Rect.Top+1,0);
    if DM_BANCO.DETLOCACAODEVOLVIDO.AsString = ´S´ then
     FPRINCIPAL.ImageList1.Draw(DBGrid2.Canvas,Rect.Left+10,Rect.Top+1,2)//Aqui carrego de um imagemList a segunda imagem que é uma imagem semelhante a um campo chekebox com seleção
    else
     FPRINCIPAL.ImageList1.Draw(DBGrid2.Canvas,Rect.Left+10,Rect.Top+1,1);//Aqui carrego de um imagemList a segunda imagem que é uma imagem semelhante a um campo chekebox sem seleção
  end;


é só uma ideia, mais espero ter ajudado! :wink:


Responder Citar