Manual de Utilização JasperReport, ireport e integração com PHP
Objetivo: Este manual se propõe à facilitar o uso da ferramenta JasperReport como engine para geração de relatórios dentro do ERP-IFTM. Será abordado ao longo do mesmo conceitos de utilização da ferramenta ireport ilustrando o processo de confecção de relatórios é integração com o ERP-IFTM através da tecnologia PHP.
Sumário 1- Primeiros Passos:...4 1.1- Softwares Necessários:...4 1.2- Preparando o ambiente...4 1.3- Entendendo o sistema(visão Superficial)...4 2- O ireport...5 2.1 - Conexão com SGDB...5 2.2 - Criando relatório...6 2.3 - Configurações de página...7 2.4 - Utilizando o Report Query...8 2.5 - Report Inspector e Paleta...9 3- Desenvolvendo relatórios para o ERP-IFTM...10 3.1 - Criando um novo relatório...10 3.2 - Integração do relatório com ERP-IFTM através da tecnologia PHP...11 3.2.1 - Criando Controlador que fará a geração do relatório utilizando a classe...12 3.2.2 - Solicitando o controlador...12
1 - Primeiros Passos: 1.1- Softwares Necessários: Para executar os passos descritos neste manual será necessário os seguintes softwares instalados (não será abordada instalação destes): 1. Java(JRE ou JDK) 2. ireport Designer 4.0.1 3. PHP5(Necessário somente se os teste forem realizados localmente) 1.2- Preparando o ambiente Além da instalação dos softwares acima deverá ser baixado do repositório o diretório GeradorRelatorio que ficará contido na raiz do servidor web(htdocs), este diretório contêm o programa relatorio.jar e suas respectivas bibliotecas, que são necessárias para a criação dos relatórios pdf. O diretório GeradorRelatorio é composto da seguinte maneira: Contem exemplo de controlador PHP que utiliza a classe RelatorioJasper.php Ilustração 1: Estrutura Diretórios do Gerador Relatórios Diretório que contem o programa relatorio.jar e suas respectivas bibliotecas Arquivos.jasper, necessários Para que o programa relatorio.jar crie o relatório em formato PDF Arquivos.jrxml Editáveis pelo ireport Modelos de arquivos.jrxml (Formato do ireport) Diretório utilizado Como temporário Pelo programa relatorio.jar para Criar os arquivos.pdf Classe PHP que faz a integração entre o PHP é o JasperReport. Obs.: Este arquivo deve ser copiado para dentro do diretório modelo existente em cada modulo do ERP-IFTM 1.3- Entendendo o sistema(visão Superficial) Para que sejam criados relatórios utilizando as ferramentas propostas os seguintes passos devem ser seguidos: 1. Criar o relatório utilizando a ferramenta ireport; 2. Compilar o relatório criado com a ferramenta ireport em um arquivo.jasper;(estes passos serão abordados com detalhes mais adiante) 3. Copiar o arquivo.jasper criado pela compilação pra dentro do diretório GeradorRelatorio/relatorios/arquivos_jasper/{nome_do_modulo}/; 4. Criar o controlador que instanciará a classe RelatorioJasper e executará o método gerarrelatorio().
2 - O ireport Ilustração 2: Tela Inicial ireport O ireport é uma ferramenta que permite construir relatórios de maneira visual, o que o ireport faz é construir um arquivo no formato.jrxml que posteriormente é compilado em um arquivo.jasper que será utilizado pela ferramenta JasperReport para criar o relatório propriamente dito. Obs:Por se tratar de uma ferramenta com muitos recursos neste documento será abordado somente os conceitos básicos, entretanto como documentação auxiliar é indicada uma apostila muito completa ensinando a trabalhar com os mais diversos recursos existentes na ferramenta ireport(link para download: www.iftm.edu.br:3000). 2.1 - Conexão com SGDB O primeiro passa ao abrir o ireport pela primeira vez é configurar a conexão com o SGBD, pois e a partir desta conexão que será possível criar relatórios utilizando os dados existentes no banco, o ireport possui nativamente diversos drivers de conexão, nesta documentação será ilustrado apenas a conexão com o SGDB PostgreSQL, para criar uma nova conexão clique no botão Report Datasource, como ilustrado na figura abaixo: Botão utilizado para gerenciar conexões do ireport Ilustração 3: Botão para configurar conexão Será aberta uma nova janela listando todas as conexões existentes, clique no botão New para criar uma nova conexão, na nova janela selecione a opção Database JDBC connection, será exibida uma tela para configurações de conexão com o SGBD, configure a de acordo com a tela abaixo:
Ilustração 4: Tela configuração conexão com SGDB Clique em Save é pronto a conexão já esta configurada, agora o ireport já e capaz de conectar-se ao banco de dados. 2.2 - Criando relatório A criação de um relatório no ireport é uma tarefe simples, para criar um novo relatório basta clicar no menu Arquivo->New, existente na barra de menus principal, será aberta uma janela como a ilustrada abaixo: Ilustração 5: Novo Relatório Através desta janela e possível escolher entre vários templetes de relatórios preexistentes, os mais utilizados geralmente são Blank Letter(Carta em branco) ou Blank A4(A4 em branco), é importante lembrar que todas as definições(tamanho papel, margens e etc) do template podem ser mudadas posteriormente. Para prosseguir basta clicar no botão Open This Template. Ao clicar no botão Open This Template será aberta um janela onde devera ser informado o nome e caminho onde o relatório deverá ser salvo.
Ilustração 6: Tela configuração nome e localização relatório Para finalizar a criação do relatório basta clicar em próximo e finalizar. Após clicar em finalizar o ireport criara o novo relatório, exibindo uma tela como a abaixo para que o usuário possa confeccionar o relatório, a partir deste momento é que efetivamente o relatório começa a ser construído. Ilustração 7: ireport pronto para confecção relatórios 2.3 - Configurações de página Em casos onde é necessário realizar alterações nas configurações de página, o seguinte caminho deve ser seguido, clique com o botão direito no relatório que esta localizado na janela Report Inspector e selecione a opção Page format, Ilustração 8: Report Inspector
Será aberta uma janela onde é possível editar todas as informações pertinentes a página, como mostrado na figura abaixo: Ilustração 9: Configuração Página 2.4 - Utilizando o Report Query Com a conexão configurada e o relatório criado, o relatório já pode ser confeccionado, o ireport oferece como recurso o Report Query e é através dele que a consulta utilizada pelo relatório será construída. Report Query Ilustração 10: Abrir report query Ao clicar no botão Report Query é aberta a janela. Observe pela figura abaixo o funcionamento da ferramenta: Ilustração 11: Ferramenta report query
Existem consultas onde é necessário utilizar parâmetros de comparação, geralmente são utilizados onde existe necessidade de utilizar a clausula WHERE, para essas consultas o ireport disponibiliza o recurso de parâmetros, para criar um novo parâmetro basta clicar no botão New parameters, será aberta uma janela como a abaixo, onde deverá ser informado o nome e o tipo do parâmetro: Ilustração 12: Criar Parâmetros Após clicar em OK o parâmetro já pode ser utilizado nas consultas como no exemplo abaixo: Arrastar Ilustração 13: Utilizar parâmetros consulta Clicando em OK na tela Report query, a query de consulta fica salva e pode ser utilizada na confecção dos relatórios. 2.5 - Report Inspector e Paleta Após a construção da query já é possível arrastar componentes para dentro da pagina do relatório. Observando a Report Inspector e possível ver que os campos retornados pela consulta estão listados dentro do componente Filds. Ilustração 14: Campos retornados pela consulta feita na ferramenta report query
Existem muitos outros recursos no ireport, porém não serão abordados nesta documentação, recursos como consultas por grupo, gráficos,códigos de barra, crosstabs, sub-reports, variáveis entre outros são abordados na documentação auxiliar que se encontra disponível no endereço www.iftm.edu.br:3000. 3 - Desenvolvendo relatórios para o ERP-IFTM Para facilitar o desenvolvimento dos relatórios pertinentes ao ERP-IFTM, devem ser seguidas algumas convenções: 3.1 - Criando um novo relatório Por convenção utilizaremos a seguinte estrutura, por padrão deixaremos todas as imagens utilizadas para o layout dos relatórios dentro do diretório imagens e sempre que for criado um novo relatório o arquivo.jrxml do ireport deverá ser salvo no diretório VIRTUALIF/GeradorRelatorio/relatorios/arquivos_jrxml/{nome_do_modulo}/ nome_relatorio.jrxml como no exemplo abaixo: Ilustração 15: Estrutura Diretórios do Gerador de Relatórios Arquivo criado pelo ireport Ilustração 16: Compilar relatório no ireport Após compilar o relatório com a ajuda do ireport(ilustração 16), um novo arquivo com a extensão.jasper será criado dentro da pasta onde esta salvo o relatório no formato.jrxml como mostrado na ilustração 17:, Compilar Relatório Ilustração 17: Arquivo.jasper criado pela compilação Copie o arquivo.jasper criado para dentro do diretório GeradorRelatorio/relatorios/arquivos_jasper/ nome_do_modulo}/ ; como mostrado na ilustração 5:
Ilustração 18: Estrutura Diretórios após copia do arquivo.jasper Pronto, todo o processo necessário para se criar um novo relatório já esta concluído, na próxima etapa será ilustrado como deve ser feita a integração utilizando a tecnologia PHP. 3.2 - Integração do relatório com ERP-IFTM através da tecnologia PHP Terminado o processo de criação do relatório é hora de integrá-lo ao ERP-IFTM, como a tecnologia atual utilizada pelo sistema é o PHP, foi criada uma classe que realizará a integração, o arquivo.php que contem a classe esta presente no diretório GeradorRelatorio/ com o nome de RelatorioJasper.php. Para que a integração seja feita, o arquivo RelatorioJasper.php deve ser copiado para dentro do diretório modelo que existe em cada modulo, feito isso o próprio sistema carregará a classe através do arquivo inicializar.php que já existe no padrão do ERP-IFTM, como exemplificado na ilustração abaixo: Arquivo.php com a classe RelatorioJasper Ilustração 19: Estrutura diretorios utilizadas pelos modulos do ERP-IFTM
3.2.1 - Criando Controlador que fará a geração do relatório utilizando a classe. Com o arquivo RelatorioJasper.php já copiado para o diretório modelo do modulo é possível instanciar a classe, abaixo um script comentado de um controlador que faz uso da classe RelatorioJasper(), lembrando que o controlador deve ser construído no padrão utilizado pelo ERP-IFTM Ilustração 20: Código controlador utilizando a classe RelatorioJasper 3.2.2 - Solicitando o controlador Após construído o controlador (Que deve ser feito no padrão do ERP-IFTM), basta criar a visão que solicitara o controlador, um exemplo de código javascript que poderia ser utilizado pela visão é: $(document).ready(function(){ $('.bt_imprimir').click( function(){ window.open("../controlador/ctrl_cds/relatorio-servidor-campos.php", 40, 40); }); }); Deixando claro que, uma vez criado o controlador a forma de solicitação não ira interferir na montagem do relatório, portanto a mesma poderá ser feita como no exemplo acima ou através do jquery.
Departamento de Tecnologia da Informação e Comunicação Equipe Desenvolvimento Administrativo Documento Criado em 16/06/2001