No exemplo a seguir eu usei o grid da DevExpress, mas creio que
outras grids tem as mesmas propriedades, então basta encontra-las e usar que
vai dar certo.
Supondo que temos uma tabela CLIENTE, com os campos CLI_ID,CLI_ NOME,CLI_ ENDERECO,
primeiro passo é montar o SQL dando apelidos aos campos, pois esses apelidos
irão aparecer como título da coluna no grid, exemplo:
select CLI_ID
as Codigo,CLI_NOME as Nome, CLI_ENDERECO as Endereco from CLIENTE
Até ai
tranquilo, nada de novidade, esse comando vai estar em uma query, que podemos
criar em tempo de execução , e não podemos esquecer do dataSource, vamos ao
código.
//dentro da
procedure ou evento, na seção var, criamos as variável que vamos usar.
//aqui estou usando a query do IBO, mas se for usar outra, basta substituir o tipo.
var
qryGrid : TIBOQuery;
dsGrid : TDataSource;
//agora no
momento que achar necessário vamos instanciar os objetos , passar o sql, fazer
as ligações e //pronto.
//instanciando
os objetos
qryGrid :=
TIBOQuery.Create(Application);
qryGrid.
IB_Connection := //aqui você passa a sua conexão com o banco
de dados
dsGrid :=
TDataSource.Create(Application);
//agora vamos
passar o SQL
qryGrid.close;
qryGrid.sql.clear;
qryGrid.sql.add(' select CLI_ID as Codigo,CLI_NOME as
Nome, CLI_ENDERECO as Endereco from CLIENTE');
qryGrid.open;
//agora vamos
passar a qry para o dataSource
dsGrid.dataSet
:= qryGrid;
//agora vamos
limpar a grid e passar o dataSource com as informações para ela.
gridDBTableView1.DataController.DataSource := nil;
gridDBTableView1.ClearItens;
gridDBTableView1.DataController.DataSource := dsGrid;
gridDBTableView1.DataController.CreateAllItens(True);
//com isso já
vai dar certo, não esquencendo que a grid que usei no exemplo é a da DevExpress,
mas não //tem segredo, passando o dsGrid para o dataSource da grid já funciona
//agora se
você quiser configurar a largura das colunas, basta acessa-las pelo índice.
gridDBTableView1.Columns[0].
Width := 65;
gridDBTableView1.Columns[1]. Width
:= 65;
gridDBTableView1.Columns[2]. Width
:= 65;
pronto,
fizemos toda a configuração e os componentes query e dataSource em tempo de
execução, assim temos mais controle sobre o código.
espero ter
ajudado alguém, e não esqueçam de dar uma clicadinha nos anúncios da
página.rsrs
Nossa, era isso mesmo que eu precisava, obrigado!
ResponderExcluirajudou muito
olá, por curiosidade, se executares o teu código + do que uma vez não dá erro em gridDBTableView1.DataController.CreateAllItens(True); ?
ResponderExcluirBom dia amigo, repare que nas primeiras linhas do código, o dataSource do grid é limpado, e os itens destruidos.
ExcluirgridDBTableView1.DataController.DataSource := nil;
gridDBTableView1.ClearItens;
depois é setado o dataSource novo e os itens são criados novamente
gridDBTableView1.DataController.DataSource := dsGrid;
gridDBTableView1.DataController.CreateAllItens(True);
espero ter ajudado amigo.
qualquer duvida posso te passar mais informações, hoje em dia tenho umas idéias novas, meu e-mail é marcio_rodrigo83@yahoo.com.br
ao usar este método de carregamento pelo código está dando erro porque o colega postou os comandos ".clearItens" e "createallItens" com a letra "N" na palavra "ITENS" e o correto é com "M" = "ITEMS"
ResponderExcluir