Data Report - Agrupando e totalizando campos do relatório
Vou ser sincero : Eu não gosto de usar o Data Report ; prefiro usar o Crystal Reports ou o objeto Printer quando tenho que gerar meus relatórios. Como recebo muitas perguntas sobre o Data Report vou tentar mostrar neste artigo algumas das dúvidas relacionadas com a geração de relatórios usando grupos e a totalização de campos.
Se você esta começando agora com o Data Report saiba que ele esta disponível apenas na versão 6.0 do VB. Para saber mais sobre o Data Report leia os artigos :
Neste artigo vou criar um relatório usando o Data Report e mostrar como criar grupos e usar funções para totalizar valores dos campos no relatório.
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 ídeia é 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 . Pronto ! com a consulta criada podemos começar a gerar o nosso relatório. Vamos a ele :
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 0-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. Sabe como fazer isto ??? È só comandar : datrptProdutosCategoria.Show e ver o resultado conforme abaixo. | |||
Básico , não é mesmo !!!.Até o próximo artigo...