DOC

Java Reporting com JasperReports e iReport Open Source

By Corey James,2014-04-24 13:48
16 views 0
Java Reporting com JasperReports e iReport Open Source

Java Reporting com JasperReports e iReport Open

    Source

    JasperReports é uma solução open source poderosa e flexível para geração de

    relatórios. O visual designer iReport, permite tirar total vantagem do poder do

    JasperReports sem necessidade de conhecimento profundo do formato XML

    nativo JasperReports.

by John Ferguson Smart

O JasperReports é um poderoso e flexível gerador de relatórios open source. É fácil de ser integrado a

    aplicações Java empresariais, mas carece de um editor de relatórios visual integrado. Portanto, se quiser

    usar diretamente o JasperReports, precisará manipular sua estrutura de relatórios XML uma atividade

    relativamente técnica, com uma curva de aprendizagem alta, para dizer o mínimo.

Na realidade, escrever do começo um JasperReport completo usando só o formato XML representa uma

    tarefa longa, dolorosa e pouco compensadora.

    Afortunadamente, existem algumas alternativas disponíveis que são muito mais fáceis de usar. A melhor

    de todas, é o uso de um editor visual para projetar, compilar e testar os relatórios.

    Um dos editores visuais mais úteis que podemos usar é o iReport. Este artigo demonstra como usar o

    iReport para aproveitar todo o poder do JasperReports, sem se emaranhar em complexidades do formato

    XML nativo do JasperReports.

    Começando

    A primeira coisa a fazer, é carregar e instalar o iReport. Esta é uma aplicação Java, portanto,

    precisaremos de um JDK na máquina (JDK 1.4 ou maior - este tutorial usa o JDK 1.5.0):

    Fazer o download do iReport no ireport.sourceforge.net. Descomprimir o arquivo iReport.

    Rodar o startup script (bin\startup.bat ou. / bin/startup.sh). O download do iReport vem com o seu próprio pacote JasperReports (a versão mais atual - a 0.5.1 -

    suporta o JasperReports 1.0.1 recentemente liberado). Uma vez que o iReport esteja rodando, podemos começar a projetar os relatórios!

    O Banco de dados

    Este tutorial usa um banco de dados muito simples para efeitos de demonstração (ver Figura 1). Para

    segui-lo passo a passo, poderemos tanto carregar os scripts para preparar este banco de dados com o

    MySQL e montá-lo na sua máquina, ou então, usar um banco de dados similar e traduzir as técnicas para

    a sua situação particular.

Figura 1. O Schema do Tutorial Employee Database

    Adicionando uma Nova Conexão de Banco de dados Primeiramente, adicione uma nova conexão ao seu banco de dados. Use o menu "Datasource ->

    Connections/Datasources" para montar uma nova conexão de banco de dados (ver Figura 2). Se

    selecionar o driver JDBC da lista (no exemplo escolhemos o MySQL), entre com o endereço do servidor e o

    nome do banco de dados, e clique no botão 'Wizard'. O iReport deverá fornecer uma URL JDBC correta

    para o seu banco de dados particular.

    Agora que temos um datasource, está na hora de fazer alguma coisa com ele.

Figura 2. Adicionando uma Nova Conexão de Banco de Dados

Criando um Relatório Simples

Figura 3. Um Novo Relatório JasperReports

Crie um novo documento JasperReports usando o item de menu "File/New Document". Podemos ignorar

    todas as demais opções por enquanto. Apenas daremos um nome ao relatório. Teremos assim um

    relatório vazio, como mostrado na Figura 3.

    Um relatório JasperReport é dividido nas seções de exibição mostradas na tela iReport,:

    1. Title: como o nome o indica, esta seção contém o título do relatório; 2. Page Header: esta seção aparece no topo de cada página (como esperado). É um bom lugar para

    colocar datas, numeração de páginas, etc.;

    3. Column Header: esta seção aparece no topo de cada coluna; 4. Detail: nesta área serão colocadas as informações para cada item de registro. O JasperReports gera

    uma seção de detalhe para todo e cada registro processado; 5. Column Footer: esta seção aparece ao final de cada coluna; 6. Page Footer: esta seção aparece ao final de cada página; 7. Last Page Footer: esta seção aparece ao final da última página; 8. Summary: esta seção aparece ao término do relatório, logo após o último registro.

Para começar, especificamos uma consulta SQL apropriada para o relatório, utilizando o menu

    Datasource/Report Query (ver Figura 4). A consulta recuperará uma lista de todos os empregados no

    banco de dados:

select * from employee e, service s

    where e.serv_id = s.serv_id

    order by s.serv_name, e.emp_surname, e.emp_firstname

Figura 4. O Report Query

    Report Fields

    Cada relatório JasperReports tem uma lista de campos que são usados para colocar no layout do relatório,

    os dados dos registros recuperados pela consulta ao banco de dados Podemos visualizar a lista de campos utilizando o menu "View/Report Fields" (ver Figura 5).

Figura 5 Report Fields

Figura 6. Inserindo os Report Fields

Quando criamos uma consulta SQL, esta lista é automaticamente atualizada com os campos que a

    consulta retorna. Para os casos nos quais usamos outros tipos de datasources, podemos ter que definir os

    campos manualmente.

    A partir da janela campos de relatório (report fields window), podemos arrastar e soltar campos no

    relatório. Os campos geralmente entram na seção Detail, como mostrado na Figura 6. Colocamos três

    campos na seção Detail, junto com os títulos de coluna apropriados na seção Column Header (Cabeçalho

    de Colunas). Os títulos de coluna são itens de texto estáticos que podemos inserir usando o ícone "T" ou o

    item de menu "Insert Element/Static Text". Experimente as opções de formatação e de layout para

    familiarizar-se com que iReport têm a oferecer nesta área.

    Para visualizarmos a saída do relatório, rodamos o mesmo utilizando o item de menu "Build/Execute

    Report‖ (usando active conn). Deveremos obter um relatório como o da Figura 7.

Figura 7. Pré-visualização dos Resultados do Relatório

    Daremos continuidade à discussão sobre o Java Reporting no próximo artigo. Até lá!

Java Reporting com JasperReports e iReport Open Source Parte II

    JasperReports é uma solução open source poderosa e flexível para geração de

    relatórios. O visual designer iReport, permite tirar total vantagem do poder do

    JasperReports sem necessidade de conhecimento profundo do formato XML

    nativo JasperReports

     por John Ferguson Smart

    Adicionando Título de Relatório e Data

    Então agora podemos gerar um relatório com dados reais. Adicionemos agora um título na barra de título.

    Este título só será exibido no começo do relatório. Suponhamos que o título seja "Employees/service"

    seguido pela data do dia. Para inserir o texto "Employees/Service", apenas colocamos uma zona de texto

    estática na seção title (usar "Edit/Insert Element/Static Text" ou o ícone "T").

Agora, suponhamos que desejamos também exibir a data atual. Inserimos um novo campo texto

    ("Edit/Insert Element/Text Field"). Fazemos duplo clique no objeto campo texto (text field object) e a

    seguir, na aba "TextField" da janela (ver Figura 8).

Figura 8. Adicionar um Campo Data

Neste momento temos uma idéia do poder de JasperReports: sendo o JasperReport compilado uma classe

    Java, podemos usar qualquer expressão Java para auxiliar na construção do relatório, assim como

    também campos JasperReports, variáveis e parâmetros. Por exemplo, a expressão "TextField" é uma

    expressão Java e será interpretada como tal.

    Para exibir a data atual, criamos apenas uma novo objeto Date() que será automaticamente instanciado

    como a data e hora atuais. A seguir, informamos ao JasperReports o tipo de expressão a ser usado (na

    classe Textfield Expression: java.util.Date), quando dever[a ser avaliada a expressão (Evaluation time

    momento da Avaliação) e qual formato usar (―Pattern field‖ - "campo Formato").

    Finalizando, adicionamos uma borda transparente ao redor do título ("Edit/Insert Element/Rounded

    Rectangle") e uma imagem ("Edit/Insert Element/Image") e então personalizamos as cores e fontes (ver

    exemplo na Figura 9).

Figura 9 O Relatório com uma Barra de Título

    Calculando Totais

    Vamos supor agora, que desejamos exibir o custo total de todos os salários dos empregados. Para calcular

    estes tipos de valores com o JasperReports, precisamos usar variáveis de relatório. Usamos variáveis de

    relatório para armazenar e calcular qualquer valor temporário necessário para o relatório, tais como totais,

    subtotais, médias, etc. Vejamos alguns detalhes importantes a respeito de variáveis de relatório:

    ? O tipo de classe variável (variable class type) tem que ser compatível com o tipo de

    campo (field type), para que os cálculos funcionem corretamente. Portanto,

    devemos configurá-lo como Doublé;

    ? O tipo de cálculo informa ao JasperReports como calcular a variável. Neste caso,

    configuramos como 'Sum', para achar a soma total de todos os valores do campo

    emp_salary;

    ? A expressão variável representa o valor a ser avaliado no cálculo. Esta expressão

    pode ter vários formatos:

    o Uma expressão Java (por exemplo, New Date());

    o $F para campos (por exemplo, "$F{emp_salary}");

    o $V para variáveis (por exemplo, "$V{service_employee_count}");

    o $P para parâmetros de relatório;

    o $R para recursos localizados (localized resources).

Para exibir as variáveis de relatório, abrimos o menu "View/Report Variables". Precisamos adicionar uma

    nova variável para localizar o salário do empregado e calcular o valor total. Chamemos esta variável de

    total_salaries (ver Figura 10). Configuramos o tipo de classe da variável (variable class type) como Double

    e o tipo de cálculo (calculation type) como Sum.

Report this document

For any questions or suggestions please email
cust-service@docsford.com