Não é a linguagem de programação que define o programador, mas sim sua lógica

Criando gráficos no FastReport


Gráficos, mostram de forma mais amigável informações do que uma listagem, por exemplo. Como diz o ditado: uma imagem vale mais do que mil palavras, assim um gráfico, mostra informações de forma visual, muito mais rápido de serem avaliados.

Criar gráficos no FastReport é bastante fácil basicamente é como via delphi. Primeiro, vamos fazer a consulta que retorne os dados necessários para a criação do relatório. Posso dizer que a consulta, é 70% do gráfico, pois precisamos retornar dados que sejam interessantes de serem avaliados em um gráfico.

Então vamos la 
Vamos utilizar esses componentes 
 >> TfrxReport;
 >> TfrxChartObject;
 >> TfrxDBDataset;



Bom praticamente 80% do gráfico é a consulta SQL (Informações) 
Vamos utilizar uma simples (No meu exemplo que deixarei não vou fazer consulta vou deixar um TClientDataSet pre carregado com algumas informações aleatórios como normalmente faço para ser mais fácil de vocês pegarem e não precisarem baixar componente e tal

select R.NOME, count(N.CODREPRES) as QUANTIDADE
from NOTASFISCAIS N
inner join REPRESENTANTES R on R.CODREPRES = N.CODREPRES
group by 1




Figura 2. Editor do Chart object

No editor, vamos adicionar as séries (representa um gráfico), lembrando que podemos ter várias series que podem ser diferentes tipos de gráficos (em barra, pizza, linha etc). Clique no botão Add Series para criamos um gráfico.
Na janela que abre, temos várias opções de gráficos e suas derivações (Figura 3).


Figura 3. Galeria com os tipos de gráficos disponíveis

Escolha o item Pie e o tipo Normal. Na opção DataSource, escolha o frxDBDataSet configurado anteriormente. No Label, vamos indicar o campo "NOME" da consulta, pois queremos saber quais os departamentos possuem q quantidade de registros (Representantes)

No item Pie (que muda de nome, de acordo com o tipo de gráfico escolhido), vamos configurar com o campo que retorna a quantidade de representantes(QUANTIDADE).

Pronto, já temos um gráfico pronto para uso. Execute o relatório e veja o gráfico em execução (Figura 3).

Figura 3. Relatório em execução

Para adicionar um título, marque a opção Chart no editor. Acesse a propriedade Title>Text. Temos várias configurações para a propriedade Title. Vimos que o gráfico mostra uma quantidade grande de informações e que em alguns casos precisamos apenas das mais relevantes, como por exemplo, os cincos primeiros departamentos em quantidade de funcionário.
Para conseguir esse “agrupamento” de informações, é bem fácil. Na série que criamos, temos um GrupoBox chamado Other options. A opção TopN values indica a quantidade de informações que queremos agrupar, por exemplo, para saber os primeiros departamentos em número de funcionário, digite “5” no item.
Ao rodar o relatório, são mostrados no gráfico, os quatros primeiros departamentos em quantidade de funcionário e um item a mais com a soma de todos os outros. Esse último item não retorna nenhum título, mas podemos colocar um texto indicativo no item TopN caption (Figura 4).

Figura 4. Agrupando informações com o TopN

Veja na Figura 5 outros tipos de gráficos criados.

Figura 5. Tipos de gráficos que podemos criar no FastReport


Cross-tab

Também conhecido como tabela de referência cruzada, serve para cruzarmos dados de duas ou mais tabelas para que possamos encontrar uma relação que nos retorne informações para serem apresentadas. Um exemplo simples: montante de vendas do ano, mês ou período por cliente.

Nesse caso, nossas linhas da consulta são dinâmicas (cliente), como de costume, mas as colunas, também precisam ser dinâmicas (meses, período). Com o croos-tab, fica fácil de fazer esse tipo de relatório.
Nosso SQL precisar retornar o nome do cliente, o montante gasto e o período da venda (nesse caso, será mensal). Veja naListagem 2 a consulta.

Listagem 2. Consulta para croos tab
select c.customer,
extract(MONTH from s.ship_date) as Mes_digito,
case extract(MONTH from s.ship_date)
when 1 then 'Jan'
when 2 then 'Fev'
when 3 then 'Mar'
when 4 then 'Abr'
when 5 then 'Mai'
when 6 then 'Jun'
when 7 then 'Jul'
when 8 then 'Ago'
when 9 then 'Set'
when 10 then 'Out'
when 11 then 'Nov'
when 12 then 'Dez'
end as Mes, s.total_value
from customer c
inner join sales s on s.cust_no = c.cust_no
where s.ship_date is not null
group by Mes, Mes_digito, c.customer, s.total_value
order by Mes_digito

Criamos o campo Mes_digito para que possamos ordenar corretamente os meses no período. Faça a ligação da consulta com o relatório, conforme exemplos anteriores. No design do relatório, temos o Cross-tab object e DB Cross-tab object.

O Cross-tab object, permite a inserção de dados manualmente.

Já o DB Croos-tab object, como o próprio nome sugere, permite a criação desse tipo de relatório, usando uma consulta do banco de dados. Adicione um ao relatório e será aberto o editor para configuração do croos-tab (Figura 6).

Figura 6. Editor de configuração do DB cross-tab object

Em Source data, escolhemos a fonte de dados. Agora no croos-tab structure, vamos configurar as colunas e linhas docroos-tab. Arraste o campo Customer para a linha. O campo Mes será nossa coluna e Total_value será a parte centralizada.

As linhas e colunas possuem ordenação e agrupamento, já o campo centralizado, possui configurações de cálculos, como somatório, contador, média, mínimo e máximo. Para o campo Mes não vamos usar nenhuma ordenação (opção None), pois já temos a consulta ordenada corretamente.

Na parte inferior do editor, temos um preeview de como ficará o relatório. Ao lado temos várias opções de configuração como: mostrar o título, cabeçalho de coluna e linha, totalizadores de colunas e linhas etc. Veja na Figura 7, como ficou o editor após as configurações.

Figura 7. Configuração do cross-tab

Basta rodar o relatório que teremos um croos-tab (Figura 8).

Figura 8. Croos-tab em execução


Código de barras

Atualmente, outro componente muito importante é o barcode. No FastReport, podemos configurar o Barcode objectfacilmente. Se precisarmos gerar um código de barras padrão, com um único número, basta adicionar o controle no relatório e configurar o seu editor (Figura 9).

Figura 9. Editor de configuração do Barcode object

Indicamos o valor do código de barras no campo Code e configuramos o tipo do mesmo (temos muitas opções). Note ainda que podemos rotacionar o campo no relatório. Caso tenhamos uma listagem e seja necessário um código de barras para cada item, basta usar a mesma configuração, apenas no campo Source, vamos escolher o campo da consulta (Figura 10).

Figura 10. Configurando um campo para o Barcode object


Objetos OLE

O OLE object serve para "adicionarmos" no relatório arquivos de texto, imagens etc. OLE (Object Linking and Embedding) é uma tecnologia Microsoft que esta no mercado há bastante tempo e podemos conceitua-la como um sistema de objetos distribuídos.

OLE é uma arquitetura cliente pesada, ou seja, para termos a oportunidade de mostrar uma planilha do Excel, temos que ter um software instalado na máquina que abra esse tipo de arquivo.

Temos a facilidade de adicionar textos, planilhas no relatório e vincular as mesmas, ou seja, qualquer alteração no arquivo original vai refletir no relatório. Mas devemos ter cuidado, pois, caso o arquivo seja removido de seu diretório original da vinculação, os dados continuarão a ser apresentados, desde a última visualização atualizada.

Para trabalhar com OLE no FastReport, devemos adicionar um frxOLEObject no formulário e um OLE Object no relatório. Ao adicionar no relatório, será aberto um editor para escolher a inserção de um novo arquivo ou a edição de um já vinculado.
Clique em Insert. Caso você já tenha trabalhado com OLE, a próxima tela é padrão para criação de um novo arquivo ou vinculação com um já existente (Figura 11).

Figura 11. Adicionando um objeto OLE no relatório

Veja que temos várias possibilidade de arquivo e isso varia de acordo com os softwares instalados em sua máquina. Marque Criar do arquivo, escolha o mesmo e marque a opção Vincular. Pronto, basta redimensionar o controle no relatório que temos imagens, arquivos de texto, planilhas etc, vinculadas com o relatório.


Templates

O FastReport oferece uma funcionalidade bastante interessante, o uso de templates. Com o Quick Report, podíamos usar a herança visual de formulários para facilitar a construção de relatórios com layout padronizado, sem a necessidade de criar o layout em todo relatório.

No Rave Reports temos Global Pages para “simular” isso (veja dica em www.lucianopimenta.com/post.aspx?id=34).
No FastReport temos os templates, onde podemos salvar um relatório (arquivo FR3) com o layout padrão e depois, usar esse template na criação dos novos relatórios. No design do FastReport, acesse o menu File>New. Será aberta uma janela com alguns templates pré-definidos (Figura 12).

Figura 12. Adicionando um novo item

Na aba Templates, temos os templates que podemos criar. Nesse caso, como não definimos nenhum, o mesmo esta vazio. Crie um novo relatório. Adicione bandas e controles de tela, como da Figura 13.

Figura 13. Layout padrão para relatórios do sistema



Nota: Não faça nenhuma vinculação de dados com o relatório template. Ele não pode ter vinculação a dados, pois é o “base”. Os que herdarem dele, sim, devem ser vinculados.

Esse é o layout que será usado por todos os relatórios. Salve o arquivo FR3 como “LayoutPadrao.fr3” em um diretório de sua escolha. Acesse o menu Report>Options. Na aba Inheritance podemos indicar em que local (diretório) temos os arquivos

FR3 que serão usados como templates (Figura 14).

Figura 14. Indicando o diretório onde teremos os templates

Pronto, agora basta acessar novamente o menu File>New, que o template estará pronto para ser usado (Figura 15).

Figura 15. Escolhendo o template criado para um novo relatório

Se precisarem de exemplos podem pedir tenho vários sisteminhas explicando isso só não vou colocar todos pois tem varios

0 comentários:

Postar um comentário