Relatórios com JasperReports

No desenvolvimento de uma aplicação uma das tarefas mais comuns é a elaboração e impressão de relatórios profissionais.

A criação de um relatório envolve a definição do design e o mapeamento dos dados para os campos do esquema do relatório. Para o efeito existem diversas ferramentas open.source com a robustes de ferramentas comerciais, mas com a conveniência de serem gratuitas. De entre estas a de maior destaque é o JasperReports.

JasperReports

O JasperReports é um Framework de código fonte aberto, utilizado para gerar relatórios multiplataforma. Inteiramente escrita em java, essa biblioteca apresenta grande habilidde na orgnização e apresentação de conteúdo, permitindo a geração dinâmica de relatórios em diversos formatos, como PDF, HTML, XLS, CSV e XML, podendo ainda ser utilizada em qualquer aplicação Java, incluindo aplicações desktop, Web e distribuídas.

Usando XML, o desenvolvedor pode definir textos estáticos, imagens, linhas, formas geométricas, como rectângulos e elipses, e as suas localizações dentro do relatório. Quando pronto, esse ficheiro XML deve ser compilado e, então é gerado um ficheiro com a extensão .jasper, contendo a versão compilada do código XML.

O processo de desenvolvimento de um relatório começa com a codificação da definição do relatório em XML. Depois, é criado um ficheiro com a extensão. jrxml (o “template de relatório”), onde é descrita toda a estrutura do relatório: a posição dos textos, imagens e formas geométricas; a forma de recuperação dos dados necessários, a forma de fazer cálculos e totalizações, e quais parâmetros devem ser passados, entre outras definições.

O ficheiro .jasper, é utilizado por diferentes objectos do JasperReports para a geração dos relatórios. Os objetos mais comuns são o JasperReport, JasperPrint e JasperViewer. Os dados necessários para a geração de uma relatório podem ser obtidos de diferentes fontes, tais como um Sistema de Gestão de Gestão de Base de Dados, um ficheiro XML, um ficheiro do Excel (xls), um ficheiro CSV, etc. O JasperReports tem suporte para as mais varias fontes de dados (datasources) e dispoe da interface JRDataSource que representa uma abstração de um data source JasperReports. Todos os tipos de data source implementam esta interface.

O JasperReport está disponível na URL http://community.jaspersoft.com. Mas adiante será apresentado o processo de instalação e configuração desta biblioteca, numa aplicação Web construida na plataforma Java EE.

TIBCO Jaspersoft Studio

Jaspersoft Studio é a ferramenta visual utilizada para automatisar o desenho de relatórios para JasperReports e JasperReports Server. É um IDE WYSIWYG que permite criar layouts sofisticados que contêm gráficos, imagens, sub-relatórios, tabelas de referência cruzada, etc. A utilização do Jaspersoft Studio possibilita o desenvolvimento de relatórios com elevado nivel de complexidade a nivel de elaboração sem a necessidade de intervir directamente no código XML que é gerado automaticamente.

Com o Jaspersoft Studio pode-se ter acesso aos dados do JDBC, TableModels, JavaBeans, XML, Hibernate, CSV, e fontes personalisadas. E os relatórios podem ser publicados nos mais diversos formatos, tais como PDF, RTF, XML, XLS, CSV, HTML, XHTML, texto, DOCX ou OpenOffice.

O Jaspersoft Studio fornece um ambiente amigável com vários recursos que facilitam e agilizam a elaboração, a compilação e visualisação do relatório, entre outros recursos e funcionalidades.

Ciclo de vida de um relatório

Quando se desenha um relatório com o Jaspersoft Studio é criado inicialmente um ficheiro JRXML, que é um documento XML que contém a definição do layout do relatório. A disposição dos componentes no layout é totalmente visual e o desenvolvedor nao deve preocupar-se com a estrutura real do relatório subjacente no ficheiro JRXML.

Antes de ser executado o relatório, o ficheiro JRXML dever ser compilado num objeto binário, chamado ficheiro Jasper. O Jasper é o ficheiro que deve ser enviado com a aplicação de modo a poder executar os relatórios.

A execução do relatório é realizado por meio de um ficheiro Jasper e uma fonte de dados para o JasperReports. Existem muitos tipos de fonte de dados. Um ficheiro jasper pode ser preenchido a partir de uma consulta SQL, um ficheiro XML, um ficheiro .csv, uma consulta HQL (Hibernate Query Language), uma coleção de JavaBeans, e outros.

Quanto nao se tem uma fonte de dados adequada, JasperReports permite que o desenvolvedro escreva a sua própria fonte de dados personalizada. Com um ficheiro Jasper e uma fonte de dados, o JasperReports é capaz de gerar o documento final no formato que se quiser.

O Jaspersoft Studio também permite configurar fontes de dados e utilizá-los para testar os relatórios. Em muitos casos, os assistentes orientados por dados pode ajudar a criar os relatórios muito de forma muito mais rápida. Jaspersoft inclui o motor JasperReports que permite visualizar a sua saída do relatório, testar e refinar os relatórios.

Interface do Jaspersoft Studio

A baixo pode-se ver uma pré-visualização da interface do Jaspersoft Studio, com algumas das principais áreas em destaque:

Na descrição das areas serão mantidos os nomes em inglês sugeridos pelos guias oficiais do Jaspersoft Studio. Assim segue-se:

1)-Report Editing Area é a area onde se projeta visualmente o relatório arrastando, posicionando, alinhando e redimensionado os elementos do relatório, escolhidos na paleta de desenho(Palette) , assinalda com o numero 5 na figura anterior.

O Jaspersoft Studio disponibiliza algumas opções para a exploração dos dados:

2)-Repository e Project Explorer O Repository Explorer mostra a lista das conexões do JasperServer e os adaptadores de dados disponiveis. O Project Explorer view mostra a lista de projetos no workspace activo, geralmente projetos JasperReports.

3)-Editor tabs: design, source and preview. Como podem ser vistos na figura, são três separadores diferentes:

O separador Design é o que aparece selecionado quando se abre um ficheiro e permite criar graficamente o relatório. O separador Source mostra o código fonte JRXML do relatório. Ja o separador Preview permite executar a previsualização do relatório depois de se ter selecionado uma fonte de dados e um formato de saida.

4)-Outline view ou vista de destaques, mostra a estrutura completa do relatório em forma de árvore. Nesta estrutura são visieis as bandas do relatório.

5)-Designer palette, a paleta de desenho contem os elementos que podem ser arrastados para o interior de uma banda do relário.

6)-Properties e Problems view O Properties view mostra as propriedades do elemento selecionado. Algumas destas propriedades podem ser de somente leitura, mas a maioria delas são editaveis e a sua alteração reflecte-se imediatamente nos elementos desenhados. O Problems view, como o nome sugere, mostra uma lista de problemas e erros que podem, por exemplo, bloquear a compilação correta do relatório.

7)-Report State summary. Mostra o resumo e estastísticas e outras informações uteis sobre a compilação, preenchimento e execução do relatório. Os erros também são mostrados nesta parte.

Estrutura de configuração do ficheiro do relatório (jrxml)

O ficheiro do desenho do Jasper – jrxml – contem os seguintes elementos:

<jasperReport> : elemento raiz. <title>: o conteudo deste elemento é impresso apenas uma vez no início do relatório. <pageHeader>: o conteúdo deste elemento é impresso no início de cada pagina do relatório. <detail>: contem o corpo do relatório, é repetido por um número variado de resultados . <pageFooter>: o conteúdo deste elemento é impresso na parte inferiro de cada pagina do relatório. <band>: define uma seção do relatório. Todos os elementos acima referidos, contêm um elemento de banda como seu único filho. Apenas o elemento raiz é obrigatório. Os restantes elementos são opcionais.

Estrutura do relatório no Jaspersoft Studio

Um relatório é definido como uma pagina tipo. Esta página está dividida em diferentes porções horizontais chamadas bandas. Os dados colocados em cada uma das bandas, são impressos de acordo com a especificidade de cada banda. Por exemplo, o cabeçalho da página é repetido no início de cada pagina, a banda detalhe é repetida para cada ficha de leitura única.

Por padrão um template de relatório no Jaspersoft Studio apresenta-se com nove bandas aos quais podem ser adicionados novos grupos. O Jaspersoft Studio gere uma faixa de título (cabeçalho do grupo) e uma banda de recapitulação (rodapé do grupo) para cada grupo. As bandas ou secções, auxiliam na definição visual da estrutura do relatório. As bandas que aparecem assim que se cria um relatório são: Background, Title, Page Header, Column Header, Detail, Column Footer, Page Footer e Summnary.

O conteúdo colocado na banda Background é mostrado como plano de fundo das páginas do relatório. Por padrão este é mostrado em todas as páginas. No entanto, pode-se decidir uma configuração diferente.

O conteúdo da banda Title aparece apenas uma vez no início do relatório. Não se repete noutras páginas.

O conteúdo colocado na banda Page Header aparece no alto de cada pagina do relatório. Nesta secção pode-se, por exemplo, colocar a data e hora, o logo e nome da empresa, etc.

A banda Colmn Header permite listar os nomes dos campos a apresentar numa visualização em forma de tabular.

A banda Detail é a banda onde vão os valores dos campos que serão apresentados.

Por exemplo, num relatório tipo formulário, todos os campos e dados são colocados nesta parte.

A banda Column Footer pode ser útil para apresentar valores calculados dos campos.

A banda Page Footer aparece no fim de cada pagina e pode conter, por exemplo, o número de página ou qualquer outra informação que se queira na parte inferior da página.

A banda Summary é a banda onde as informação da banda Detail pode ser sintetizada através de dados calculados ou representação gráfica. No Outline ainda podem ser vistas as bandas Last Page Footer que permite colocar informação diferenciada no rodapé da última página e a banda No Data que é impressa quando não existem dados para a impressão no relatório.

Uma banda é sempre grande quanto à largura da pagina(margens direita e esquerda excluídas). No entanto, a altura, mesmo se for estabelecida durante a fase de design, pode variar dinamicamente, durante a definição do espaço de impressão de acordo com os elementos contidos.

Nem todas as bandas podem ser esticadas dinamicamente de acordo com o conteúdo. É o caso do rodapé de coluna, o rodapé de pagina e as bandas de rodapé da ultima página.

Mas detalhes para uma mais profunda abordagem dos relatórios com o Jaspersoft Studio podem ser encontrados no http://community.jaspersoft.com/wiki/community-wiki ou outro material especifico. Para o propósito do presente ebook estas elucidações podem ser suficientes para proceder à criação de um relatório.

results matching ""

    No results matching ""