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ó... |