Social Icons

domingo, 4 de novembro de 2012

Usando TJvDBGrid – Parte 1

Hoje eu começo uma série de artigos ensinando como utilizar os recursos avançados do componente TJvDBGrid. Ele faz parte dos componentes JEDI VCL que são gratuitos e livres.

Caso ainda não tenha o JEDI VCL instalado você pode fazer o download a partir do site http://jvcl.delphi-jedi.org/.
Com o TJvDBGrid pode-se facilmente criar colunas que mostram campos no formato de checbox, também permite o congelamento de colunas e facilita a edição de dados na grid. Nessa primeira parte ensinarei como utilizar as colunas que mostram os dados de formato de checkbox.
Crie uma nova aplicação no seu delphi e inclua os seguintes componentes ao formulário.
  • TDBNavigator
  • TJvDBGrid
  • TClientDataSet
  • TDataSource
Crie no ClientDataSet1 os seguintes campos
  • CHECK :Booleano
  • DESCRIÇÃO :String[80]
Faça as seguintes ligações dos componentes:
  • DataSource1.DataSet := ClientDataSet1
  • JvDBGrid1.DataSource := Datasource1
  • DBNavigator1.DataSource := DataSource1
No evento OnCreate do formulário coloque o seguinte código
procedure TForm1.FormCreate(Sender: TObject); 
begin 
   ClientDataSet1.CreateDataSet; 
end;
No evento AfterInsert do Clientdataset1 coloque o seguinte código:
procedure TForm1.ClientDataSet1AfterInsert(DataSet: TDataSet); 
begin 
   ClientDataSet1CHECK.AsBoolean := false; 
end;

No evento OnCellClick do JvDBGrid1 coloque o seguinte Código:
if Column.FieldName = 'CHECK' then 
begin 
   if ClientDataSet1.IsEmpty then 
      exit; 
   if ClientDataSet1.State = dsBrowse then 
      ClientDataSet1.Edit; 

   ClientDataSet1CHECK.AsBoolean := not ClientDataSet1CHECK.AsBoolean; 
   ClientDataSet1.Post; 
end;

Pronto! Basta executar o exemplo e incluir registros usando o JVDBNavigator, assim quando clicarmos na coluna CHECK será marcado ou desmarcado o checkbox dela.

imagem1

É isso aí, até o próximo artigo pessoal!!!

Dica
O fato da coluna CHECK ser do tipo Booleano faz com que a JvDBGrid1 interprete automaticamente a coluna como visualização de checbox, no entanto podemos fazer isso para colunas de outros tipos de dados.
Ex.: Se a coluna CHECK fosse um String[1] e mostrasse valores S ou N então bastaria utilizar o evento OnCheckIfBooleanField e Alterar as variáveis StringForTrue := 'S' e StringForFalse := 'N'


Baixe os fontes do artigo no GitHub

2 comentários:

  1. Olá, estou seguindo seu post para incrementar o checkbox no meu grid, no meu caso o campo é string recebendo 'S' ou 'N', mas não consigo visualizar o check, mesmo usando o OnCheckIfBooleanField. Pode me dar mais alguma dica sobre isso, por favor? Obrigada!

    ResponderExcluir
  2. Ola, você conseguiu realizar os testes ?

    ResponderExcluir

Diga-nos, o que achou deste artigo?