Relatórios Corporativos com Java e Software Livre

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Relatórios Corporativos com Java e Software Livre - Presentation Transcript

    1. Relatórios Corporativos com Java e Software Livre Fernando Lozano http://www.lozano.eti.br Consultor Associado – Neki Technologies Colunista da Revista Java Magazine © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 1
    2. Sobre o Autor Red Hat Certified Engineer ● LPI Certified Professional Level I Sair GNU/Linux Certified Professional IBM Certified Network Engineer ● IBM Certified DB2 Administrator & Developer Microsoft Certified Systems Engineer ● Microsoft Certified Solutions Developer Webmaster do Projeto GNU ● Proctor, Reviewer & Item Writer do LPI ● Community Manager do Java.Net ● Autor do Livro \"Java em GNU/Linux\" ● Ed. Alta Books www.altabooks.com.br © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 2
    3. Agenda Requerimentos para Relatórios Corporativos ● Software Livre em Java para Relatórios ● Porque relatórios baseados em Objetos ● Design Visual com iReport ● Geração de Relatórios com JasperReport ● Demo ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 3
    4. Requerimentos © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 4
    5. Perfis de Sistemas Desenvolvedores de Relatórios Aplicação Cliente/servidor desktop ● Ferramentas tradicionais: ● Crystal Reports, Oracle Reports, Access Aplicação Web ● Adaptação de ferramentas tradicionais ● Crystal Server, Oracle Reports Server Aplicação OO baseada em Design Patterns, ● Frameworks e TDD Nova geração de ferramentas Java ● JasperReports, JReport, Style Reports, BIRT © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 5
    6. Exemplo Tradicional © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 6
    7. Requerimentos Tradicionais Acesso direto a BDs relacionais ● Totalização, Agrupamento, Ordenação, etc ● Formatos Mestre/Detalhe ● Suporte a logotipos, imagens, gráficos dinâmicos ● Integração com ferramentas de desenvolvimento ● para Desktop (GUI) Pré-visualização ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 7
    8. Ferramentas Tradicionais (não-Java, não-Web) Crystal Reports ● Oracle Reports ● Report Smith (Borland Delphi) ● Componentes ActiveX / OLE Controls ● CLIs / APIs programáticas (DLLs) ● ODBC / OLE DB / BDE / dbExpress ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 8
    9. Problemas com a Abordagem Tradicional Vínculo com a ferramenta de relatório, com a ● linguagem de programação e sistema operacional Duplicação de esforço: ● consultas SQL na aplicação GUI e no Relatório Pouco aproveitamento das capacidades de BDs ● Relacionais Dificuldades de adaptação à Web ● Dependência em relação a um visualizador ● proprietário © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 9
    10. Novos Requerimentos Acesso via Web ou e-mail ● Formatos múltiplos de documentos de saída ● (HTML, PDF, XLS, RTF) Independência do visualizador! ✓ Agendamento e caching para maior performance ● Integração com Servidores de Aplicação e Objetos ● Distribuídos © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 10
    11. Nova Geração de Ferramentas APIs para fontes de dados ● Report Servers ● (stand-alone ou como extensão para servidores web / servidores de aplicação) Múltiplas APIs de acesso (bindings) ● Integração com ferramentas de BI ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 11
    12. Exemplo Nova Geração © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 12
    13. Nova Geração x Java Acesso via URLs ● Pre-visualizadores nativos ● JavaBeans utilizando JNI ● (Overhead de conversão de objetos) Restrições de plataformas suportadas pelos Report ● Servers Solução: engines de relatórios escritos em Java! ● Engines baseados em Java podem ser utilizados ✓ diretamente por outras linguagens, como PHP © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 13
    14. Software Livre para Relatórios © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 14
    15. Soluções Livres Atendem a uma ou mais categorias: ● Bibliotecas (Engines de Relatórios) ● ⇨ JasperReports, JFreeReport, Eclipse BIRT ⇨ Agata Reports (em PHP) Servidores de Relatórios ● ⇨ OpenReports, JBoss Reporting Portal, JasperServer Front-Ends (Desenhadores de Relatórios) ● ⇨ iReport, JasperEdit, JFreeReport, Eclipse BIRT Business Inteligence ● ⇨ JasperInteligence © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 15
    16. Por Que Relatórios Baseados em Objetos © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 16
    17. Demandas Adicionais do Desenvolvedor Java Suporte a Mecanismos de persistência de Objetos ● Suporte a Design Patterns ● Suporte a frameworks MVC ou IoC populares ● ⇨ Se a lógica de negócios, de persistência e mesmo a interface com o usuário hoje é baseada em modelos OO, porque a geração de relatórios deve seguir uma visão relacional? © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 17
    18. Evite Soluções Baixo Nível! iText ● Biblioteca para manipulação de documentos PDF ● Construção da página à partir de elementos gráficos de ✗ baixo nível Controle manual da paginação ✗ Apache FOP ● Biblioteca para rasterização de documentos XSL-FO ● Descreve um documento genérico, não um relatório ✗ estruturado HTML e CSS ● O padrão não fornece controle de página ✗ © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 18
    19. Design Visual com iReport © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 19
    20. Sobre o iReport Desenhador visual para descrições (layouts) do ● JasperReports Utiliza o JasperReports para compilar e executar o ● relatório Incorpora também o JFreeChart para geração ● dinâmica de gráficos nos relatórios Originalmente uma aplicação apenas para Windows; ● à partir de 2003 Pure-Java (Swing) Ritmo acelerado de evolução ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 20
    21. Sobre a JasperSoft Empresa criada pelos desenvolvedores do ● JasperReports e iReports Filiada ao JBoss Federation ● Dedicada a fornecer suporte e treinamento nos odis ● produtos Desenvolve novas soluções livres sobre o ● JasperReports, como as soluções de servidor de Relatórios (JasperServer) e de BI (JasperIntelligence) © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 21
    22. Novidades no iReport / JasperReports Relatórios cross-over ● Fontes de dados OLAP ● Linguagens de script ● Virtualização ● (Relatórios não precisam caber inteiramente em memória RAM) LAFs embutidos ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 22
    23. iReport © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 23
    24. Estrutura do Relatório Faixas: ● Título, Sumário, Colunas, Cabeçalhos, Rodapés, Detalhe e Grupos Elementos visuais estáticos e dinâmicos ● Elementos dinâmicos são expressões Java, Groovy, ● JavaScript (Rhino) ou BeanShell Elementos “alargáveis” e flutuantes ● Subrelatórios ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 24
    25. Dados para o Relatório Parâmetros ● (estáticos durante uma execução do relatório) Variáveis ● (Expressões recalculadas em faixas pré-definidas) Campos ● (Mudam a cada linha / registro de detalhes) Fonte de Dados ● (Conexão JDBC, Coleção de Beans, Array, etc) Consulta SQL ou HQL ● (Apenas para Conexão JDBC ou Hibernate) © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 25
    26. Fontes de Dados Connection ou Resultset JDBC ● Sessão Hibernate com ou sem Spring ● Consulta EJBQL (EJB3) ● Arquivo XML ● Arquivo texto (CSV) ● JavaBeans Serializados ● Conexão Mondrian (OLAP) ● Customizada (crie sua própria classe!) ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 26
    27. Previsualização do Relatório Janela Swing (adaptada do JasperReports) ● Documentos PDF, HTML, XLS, RTF, XML, CSV ● (mediante visualizadores externos) Além dos visualizadores do JasperReports e ● visualizadores externos, pode ser utilizado o JasperAssistant, que fornece um visualizador SWT O designer baseado em SWT (do JasperAssistant) não é ✗ software livre © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 27
    28. Geração de Relatórios com JasperReports © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 28
    29. Sobre o JasperReports Biblioteca de geração de relatórios para uso em ● aplicações Java Fornece um previsualizador Swing customizável ● Utiliza outras biblitoecas livres para geração da ● saída: iText (PDF), POI (XLS) Utiliza ainda vários dos Jakarta-Commons ● O desenvolvedor não necessita de conhecimento ● das outras bibliotecas utilizadas, exceto pela sua inclusão no classpath da aplicação © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 29
    30. Ciclo de Funcionamento do JasperReports Definição (layout) do relatório em XML ● Geração de classe Java à partir do layout ● Compilação da classe (arquivo *.jasper) ● Carga da classe ● Preenchimento do relatório (execução da classe) ● Renderização do relatório (em tela, impressora ou ● arquivo) © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 30
    31. Ciclo de Relatórios Layout XML Carga Layout Geração / Relatório Compilação Preenchimento Impressão Saída PDF/ Renderização outra © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 31
    32. API e Fachada do JasperReports Cada elemento de um relatório e cada operação do ● ciclo são realizadas por classes em uma API de “baixo nível” Flexibilidade para usar a API em um visualizador ✓ customizado ou gerar novos elementos e renderizadores Fachada em classes utilitárias (Jasper*Manager) ● para as operações mais comuns Simplicidade de uso da biblioteca em aplicações gráficas ✓ ou web © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 32
    33. JasperReports API © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 33
    34. Exemplo de Compilação e Previsualização de Relatório import net.sf.jasperreports.engine.*; ● import net.sf.jasperreports.view.*; private static final String layout = \"produto.jrxml\"; JasperReport relatorio = Carga + JasperCompileManager.compileReport(layout); Compilação Map parametros = new HashMap(); parametros.put(\"idProduto\", new Integer(Integer.parseInt(args[0]))); JasperPrint impressao = JasperFillManager.fillReport( Preenchimento relatorio, parametros, con); JasperViewer viewer = new JasperViewer(impressao, true); Renderização viewer.show(); © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 34
    35. Exemplo de Geração de PDF com Relatório Pré-Compilado import net.sf.jasperreports.engine.*; ● private static final String relatorio = \"produto.jasper\"; private static final String pdf = \"produto.pdf\"; Map parametros = new HashMap(); parametros.put(\"idProduto\", new Integer(Integer.parseInt(args[0]))); JasperPrint impressao = JasperFillManager.fillReport( Carga + Preenchimento relatorio, parametros, con); JasperExportManager.exportReportToPdfFile(impressao, Renderização pdf); © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 35
    36. Flexibilidade da API Várias sobrecargas de cada método, ex: ● String (nome de arquivo), InputStream, instância em memória, recurso Em geral o nome do arquivo original, um objeto File, ● um InputStream ou o objeto interno do JasperReports são intercambiáveis nas chamadas aos métodos da fachada Cada etapa intermediária pode ser serializada para ● continuar o processamento posteriormente, fornecendo suporte para a construção de servidores de relatórios (como o OpenReports e o JBoss Reporting Portal) © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 36
    37. Automação e Relatórios Dinâmicos Task customizada do Ant para compilação de ● relatórios Subrelatórios ● Linguagens de script (Groove, BeanShell) dentro dos ● relatórios Folhas de estilo XSL para geração dinâmica dos ● layouts Plug-ins do iReport ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 37
    38. O Futuro © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 38
    39. BI - Business Inteligence Integração com ETI ● (migrar dados operacionais para a DatawareHouse) Fontes de dados Multidimensionais ● Rearranjos do layout e drill down interetivo ● (Ênfase em servidores de relatórios e visualizadores de relatórios mais sofisticados) É o foco da JasperSoft e do Eclipse BIRT ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 39
    40. Demo © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 40
    41. Referências jasperreports.sourceforge.net ● ireport.sourceforge.net ● openreports.sourceforge.net ● jfreereport.sourceforge.net ● www.eclipse.org/birt ● © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 41
    42. Perguntas? Dúvidas: ● fernando@lozano.eti.br Palestras, Artigos e Apostilas: ● www.lozano.eti.br Consultoria e Capacitação: ● www.neki.com.br © 2006 Fernando Lozano, http://www.lozano.eti.br Relatórios Corporativos com Java e SL Slide 42
    SlideShare Zeitgeist 2009

    + adorepumpadorepump Nominate

    custom

    677 views, 1 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 677
      • 677 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 12
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories