Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Clube Delphi 84 - DataGrid - Criando colunas dinamicamente
Artigo da Revista Clube Delphi Edição 84.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

ASP.NET
DataGrid - Criando colunas dinamicamente
Desde o lançamento do ASP.NET, o DataGrid é um dos controles mais empregados, principalmente pela sua fácil utilização e pela quantidade de recursos que auxiliam o desenvolvedor a criar páginas robustas e atrativas.
Com poucos cliques, tem-se acesso aos wizards que configuram as colunas (Property Builder) e o formato visual (Auto Format), restando apenas atribuir o DataSource, podendo ser um DataSet, DataTable, coleções, entre outros.
O objetivo deste artigo é mostrar a possibilidade de formatação e criação de colunas no DataGrid de forma dinâmica. É criado um projeto ASP.NET que efetua uma consulta de Produtos com suas respectivas Categorias, em um banco de dados do Firebird.
Nota: O banco de dados que acompanha o Firebird (Employee) não possui essas tabelas, então foi disponibilizado para download um banco com as respectivas tabelas.
Deseja-se apresentar ao usuário todos os Produtos agrupados por Categorias, com subtotais. Para isso, é utilizado como DataSource um DataTable criado a partir do retorno da consulta. Talvez você esteja se perguntando: “Por que criar colunas dinamicamente, se é possível criá-las sem uma linha de código e de forma quase que instantânea?”. Certo?
A resposta para essa pergunta pode ser melhor analisada através do seguinte questionamento: “Como fazer para que um mesmo DataGrid seja parametrizado de forma que em certas situações apresente X colunas e em outras situações apresente Y colunas?”. Resposta: Criar as colunas dinamicamente, podendo também utilizar artifícios de Orientação a Objetos como Herança e Polimorfismo.
Para aumentar a compreensão da resposta apresentada, imagine que você queira centralizar seus relatórios em apenas uma página ASPX com apenas um DataGrid e que cada relatório tenha uma consulta SQL diferente. Uma forma viável, através de OO, é criar uma classe pai RelatorioPadrao com dois métodos: retornaColunas e retornaDados e para cada relatório a ser gerado, criar classes filhas (exemplo RelatorioProduto) que irão sobrescrever esses métodos.
Dessa forma, na página ASPX será instanciada a classe desejada e invocados os métodos que retornam as colunas do DataGrid e seu DataSource. Neste artigo, para simplificar, não será modelado através de classes e subclasses.
A criação das colunas, formatação do DataGrid e agrupamento com subtotais serão feitos diretamente na classe da interface (ASPX).
Dica: Para uma introdução ao uso do DataGrid no Delphi, veja o artigo de Rodrigo Sendin na edição 73.
Projeto
No Delphi 8, 2005 ou 2006 crie um projeto ASP.NET chamado “DataGridAgrupadoColunas” contendo um formulário chamado “GridAgrupadoColunas.aspx”. Adicione um "
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Marcos Santos (mossantos@hotmail.com) e Alexandre Santos (alexandrecpd@hotmail.com) são graduados em Ciências da Computação na UFSC, trabalham como Analistas de Sistemas na Softway Contact Center e com a plataforma .NET desde a versão Beta.



