Vamos ver como gerar gráficos no Crystal Reports. Eu
sei, eu sei , tem o Excel que é muito melhor, tem o
MSChart que também não lá estas coisas e tem também
alguns OCX's de terceiros(First Impression) que
são fantásticos. Mas tudo isto consome recursos , do
seu bolso e do sistema , e ao distribuir sua aplicação
você terá que contar que o usuário final tenha o
produto instalado (no caso do Excel). Espero que com
isto você se convença que valha a pena dar uma olhada
nesta possibilidade usando o Crystal Reports. Não espere
maravilhas , afinal estaremos usando a versão 4.6 que
vem junto com o VB 5.0 , e o Crystal já está na versão
6.0.
Construiremos dois gráficos : um de pizza
e outro de barras ( os mais usados ) ;
usaremos como fonte de dados a tabela tblalunos
do arquivo ESCOLA.MDB
construido anteriormente.(Veja estrutura da tabela
abaixo)
Gráfico de Pizza
Criando a Consulta SQL
O gráfico de pizza deverá mostrar
os alunos por período, onde cada fatia representará um
período discriminado no gráfico pela cor e pela legenda
aplicada.
O pulo do gato neste caso é montar uma consulta que
totalize os alunos por período e usar o resultado para
montar o gráfico no Crystal. Vejamos como fazer isto.
- Crie uma consulta no seu banco de dados com o
nome de qry_periodo. Você pode
usar o Access para fazer isto ou criar um
consulta via código ( veja o artigo Criando Consultas
Parametrizadas ). Vamos usar o Access pois é
mais fácil:
- Abra o Banco de Dados Escola.mdb no Access
(Usamos aqui o Access 7.0 ) e selecione a aba
Consultas e a seguir clique
no botão Novo
- Clique no botão OK e a
seguir , estando selecionada a tabela
tblalunos clique no botão adicionar
e a seguir no botão fechar
- A seguir no Menu Exibir
selecione a opção Nome das Tabelas
e a opção Totais; percorra
a tblalunos e clique duas
vezes sobre o campo período ; repita
a operação anterior clicando duas vezes
sobre o campo periodo.
- Finalmente na primeira coluna Período
, na linha Total deixe em Agrupar Por
e na segunda coluna Período na linha
Total selecione Contar.(Veja
Resultado Final na tabela Abaixo)
- Se quiser aperfeiçoar o trabalho , na
segunda coluna, linha Campo, substitua o nome
periodo por: Numero de
Alunos: periodo. Pronto
terminamos a consulta , salve-a com o nome QRY_PERIODO.
- Agora clique no Menu Exibir opção
modo SQL e teremos a instrução SQL
para a nossa consulta:
SELECT
tblalunos.periodo, Count(tblalunos.periodo)
AS [Numero de alunos] FROM tblalunos GROUP BY
tblalunos.periodo; |
Criando o Gráfico de Pizza
- Abra o Crystal Reports e selecione no
menu as opções File->New ,
a seguir clique no ícone Ghaph
(fig 1.0) e na janela do Create Report
Expert clique no ícone Data
File.
|
fig 1.0 |
|
- Selecione o seu arquivo de dados , usaremos d:\escola\escola.mdb,
e clique no botão ADD da janela
Choose Database File . Após as tabelas
e consultas serem incluidas clique no botão
Done.(fig 2.0)
|
fig 2.0 |
Selecione a consulta criada - Qry_Periodo
- e delete as demais tabelas e consultas.
(fig3.0) |
|
fig 3.0 |
|
Na aba Fields inclua os
campos da consulta (fig 4.0) |
|
fig 4.0 |
|
Na Aba Graph , Selecione o
Tipo de Gráfico. (fig 5.0) |
|
fig 5.0 |
|
Na Aba Text, do Graph/Chart
Expert , Digite o Titulo do Gráfico na caixa
Title, e , informe o nome do eixo X e do eixo
Y(fig 6.0) |
|
fig 6.0 |
|
Na options, clique nas opções Show Legend ,
Show grid Lines e Show values on risers e a
seguir em Graph Done.(fig 7.0) |
|
fig 7.0 |
|
Pronto podemos visualizar o relatório em
tempo de desenho, faça os ajustes
escondendo(hide) as secções de forma a obter o
relatório da fig 8.0 |
|
fig 8.0 |
|
Vamos inserir uma formula que dará nome a
cada período. Clique na opção
Insert->Formula Field e digite a formula da
figura 9.0 |
|
fig 9.0 |
|
Pronto, podemos executar o relatório ;
devemos ter algo parecido com a fig 10 |
|
fig 10 |
Agora não esqueça de salvar o relatório ,
que tal grafico.rpt, e preparar
o código para imprimir o relatório no VB. Algo
como: (Aqui chamamos o nosso controle Crystal
Reports de CR1)
cr1.WindowState = 2 'janela
maximizada cr1.WindowControlBox = True
'ativa os botões de controle da janela
cr1.ReportFileName = App.Path &
"\gráfico.rpt" 'caminho nome
do relatorio
cr1.Destination = 0 'imprime na tela
cr1.Action = 1 'inicia impressao
|
Obs:
- Não esqueça de ao gerar o seu
relatório deixar ativa a opçao Verify
on Every Print do menu Database
- desative opção Save Data with Closed
Report
- na opção Database->Set
Location... clique no botão Same
as Report.
- Você pode alterar as opções em tempo
de desenho do relatório clicando com o
botão direito do mouse sobre o gráfico.
|
E, por hoje é só...
|