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.


1