Data Report - Agrupando e totalizando campos do relatório
Confira a criação de um relatório utilizando o componente Data Report!
Criando a consulta para gerar o relatório
Neste exemplo eu vou usar o banco de dados Northwind.mdb do Access (versão em português), no meu caso eu fiz uma cópia do arquivo com o nome de Nwind2002.mdb. A idéia é gerar um relatório de produtos por categoria de forma a criar um grupo com o nome da categoria e mostrar as informações do produto totalizando os campos itens e o preço unitário no relatório.
A primeira coisa a fazer é criar uma consulta que exiba os produtos por categoria. A maneira mais fácil de fazer isto é usando o Microsoft Access e o Assistente de Consulta. Vamos usar as tabelas Produtos e Categorias conforme exibidos na figura abaixo (O campo PreçoUnitário também foi incluído, embora não apareça na imagem).
![]() |
Consulta Produtos por Categoria sendo criada no Access |
A instrução SQL equivalente ao modo estrutura mostrado acima é:
SELECT
Produtos.NomeDoProduto, Produtos.QuantidadePorUnidade,
Produtos.UnidadesEmEstoque, Categorias.NomeDaCategoria,
Produtos.PreçoUnitário FROM Categorias INNER JOIN Produtos ON Categorias.CódigoDaCategoria = Produtos.CódigoDaCategoria; |
Salve esta consulta com o nome de Produtos por Categoria. Com a consulta criada podemos começar a gerar o nosso relatório:
Gerando o relatório
1- Inicie um novo projeto padrão no Visual
Basic e inclua um Data
Environment no seu projeto escolhendo no
menu principal Project | More Active Designers e a seguir
clique em Data Environment
Obs: se esta opção não estiver aparecendo para você clique em Project|Components e em Designers selecione o Data Environment) Após a inclusão altere a propriedade Name para : datNwind2002 |
| ||
2- Vamos criar agora uma conexão com o banco
de dados Nwind2002.mdb. Clique com o botão direito do
mouse sobre o objeto Connection1 e selecione
Properties.
Na aba Provider selecione o provedor conforme abaixo:
Na aba Connection informe o local do banco de dados e nome do usuário e senha ( se houver) ; a seguir clique em - Test Connection. Se tudo foi feito de acordo você vai ver a imagem como a figura ao lado direito indicando uma conexão efetuada com sucesso. Altere a propriedade Name do objeto Connection para: cnNwind2002 |
| ||
3- Após criar a conexão vamos criar um
comando para obter os dados da consulta Categoria por
Produtos que criamos no início do artigo. No menu View | Data
View abra a pasta Views e arraste a consulta -
Produtos por Categoria -
para o Data Environment
conforme figura ao
lado.
A estrutura básica do relatório já esta criada vamos agora mostrar como criar o Grupo para o relatório em questão. Foi criado um objeto Command com o nome - Produtos por Categoria. |
![]() | ||
4- Para criar o grupo clique com o botão
direito sobre o comando
Produtos por Categoria recem
criado e clique em Properties
Na guia Grouping (veja figura ao lado) marque Group Command Object e não altere a propriedade Grouping Command Name. Agora selecione o campo que será usado para agrupar os dados do relatório. Como iremos agrupar por categoria selecione NomedaCategoria e clique na seta > para que o mesmo apareça na caixa de listagem do lado direito. - A seguir clique em OK. |
![]() | ||
5- No menu Project
selecione a opção Add Data Report para incluir o Data
Report no seu projeto.
Feito isto altera as propriedades do Data Report: Name, DataMember, Data Source e Caption conforme a figura ao lado: Obs: Não esqueça de alterar o nome do Data Report. Vamos usar o nome: datrptProdutosCategoria. |
| ||
6- Para ajustar a estrutura do
Data Report
com a estrutura criada no
Data Environment
clique com o botão direito do mouse sobre o Data Report e selecione
- Retrieve
Structure.
Observe que a estrutura criada possui a seção Group conforme o comando criado além das seções Details, Header e Footer. | |||
7- Agora temos que criar o relatório arrastando os campos do Data Environment para o Data Report conforme figura abaixo: | |||
![]() | |||
8 - Vamos incluir alguns controles Rptlabel para informar o nome do relatório e dos campos. | |||
| |||
9- Vamos incluir dois controles RptFunction - Function1 e Function2 para calcularmos a quantidade de produtos por categoria e o total dos preços por categoria. | |||
| |||
10 - Após incluir os controles rptFunctions
temos que configurar as propriedades: DataMember, FunctionType e
DataField conforme as figuras ao lado.
DataField deve corresponder ao campo que desejamos aplicar a função. A função -rptFuncSum irá somar os campos agrupados. Altere o valor de DateFormat para Currency para exibir os valores conforme a configuração da moeda local(R$). |
| ||
11- Após mais alguns ajustes o seu relatório Data Report deverá ter a seguinte aparência: | |||
| |||
12- Podemos inserir o número da página, a data atual, o total de número de páginas e outras funcionalidades clicando com o botão direito do mouse na seção apropriada e selecionando Insert Control do menu suspenso; a seguir basta clicar na opção desejada. |
| ||
13- Agora só falta exibir o seu relatório. É só chamar: datrptProdutosCategoria.Show e ver o resultado conforme abaixo. | |||
|