Your SlideShare is downloading. ×
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Apresentação palestra ireport
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apresentação palestra ireport

2,499

Published on

Palestra de iReport, apresentada na FANAP

Palestra de iReport, apresentada na FANAP

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,499
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
85
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JAVA® gerando relatórios no IReport com banco de dados Firebird Fábio P. Santos – www.chavesecreta.com.br admin@chavesecreta.com.br fpsgyn@gmail.com
  • 2. JasperReports É uma biblioteca escrita inteiramente em JAVA que permite definir a criação de relatórios,submetendo-o a uma fonte de dados.A definição é feita em XML e pode ser editada manualmente.O arquivo XML é compilado em um arquivo .jasper que é um arquivo .class normal com a extensãomodificada. As expressões Java existentes dentro do XML serão verificadas em tempo de compilação.Este arquivo é depois executado contra uma fonte de dados, que na maioria dos casos é um bancode dados, ou fonte de dados compatível.A biblioteca pode ser usada para visualizar o relatório em tela ou gerar um arquivo, PDF, porexemplo.Estas características junto com a facilidade de utilização e custo (open source) faz do JasperReportsuma biblioteca de geração de relatório em JAVA completa.
  • 3. iReportO iReport é uma ferramenta livre de desenho para o JasperReports. Cria desenhos sofisticados comgráficos, imagens, tabelas de referência cruzada e muito mais.Acessa dados através de JDBC, TableModels, JavaBeans, XML, Hibernate, CSV.Possibilita a publicação dos relatórios em PDF, XML, CSV, HTML, XHTML, textos, DOC, DOCX,OpenOffice. O JasperReports suporta vários tipos de datasources (fonte de dados) através de uma interface específica chamada JRDataSource. Há uma implementação padrão desta interface para objetos ResultSet, chamada JRResultSetDataSource. No linguajar “Jasper", um datasource somado a um arquivo .jasper gera um "print", que pode ser "exportado" para os formatos PDF, HTML, XML, CVS ou XLS.
  • 4. JasperForgeÉ um site de desenvolvimento open source para projetos comunitários e aplicações de BusinessIntelligence.http://jasperforge.org/http://sourceforge.net/
  • 5. Conheça o FirebirdHistóriaO Firebird é derivado do código do Borland InterBase 6.0. Ele tem o código aberto e não possuilicença dupla, portanto você pode utilizá-lo em qualquer tipo de aplicação, seja ela comercial ou não,sem pagar nada por isso - é totalmente GRATUITO!A tecnologia usada no Firebird tem mais de 20 anos, fazendo com que ele seja um produtomuito maduro eestável.Principais Recursos Suporte total a Stored Procedures e Triggers Transações compatíveis com ACID (atomicidade, Consistência, Isolamento e Durabilidade) Integridade Referencial Multi Generational Architecture Consome poucos recursos de processamento Linguagem nativa para Stored Procedures e Triggers (PSQL) Suporte para Funções Externas (UDFs) Praticamente não necessita de DBAs especializados Quase nenhuma configuração - instale e já comece a usar! Grande comunidade de usuários e vários lugares para se obter suporte gratuito
  • 6. Conheça o Firebird Versão embedded do SGBD - perfeita para criação de catálogos em CDROM, aplicações "demo" ou standalone Dezenas de ferramentas de terceiros, incluindo aplicações gráficas de administração, replicação, etc. Careful writes - recuperação rápida, dispensa o uso de log de transações! Diversas formas de acesso ao banco de dados: nativo/API, dbExpress, ODBC, OLEDB, .Net provider, JDBC nativo tipo 4, Python module, PHP, Perl, etc. Suporte nativo para os maiores sistemas operacionais, incluindo o Windows, Linux, Solaris, MacOS. Backups incrementais Builds de 64bits disponíveis Total controle de cursores em PSQL Tabelas de Monitoramento Triggers de conexão e transação Tabelas temporárias TraceAPI - saiba o que está acontecendo no servidor www.firebirdsql.org www.firebirdnews.org
  • 7. JDBC Driver
  • 8. JDBC - EspecificaçãoJava Database Connectivity ou JDBC é um conjunto de classes e interfaces (API) escritas em Java quefazem o envio de instruções SQL para qualquer banco de dados relacional.A API encapsula:1. o estabelecimento da conexão com o BD2. o envio de comandos SQL3. o processamento dos resultados
  • 9. JDBC - TiposTipo 1: Ponte JDBC-ODBCÉ o tipo mais simples mas restrito à plataforma Windows. Utiliza ODBC para conectar-se com o bancode dados, convertendo métodos JDBC em chamadas às funções do ODBC. Esta ponte é normalmenteusada quando não há um driver puro-Java (tipo 4) para determinado banco de dados, pois seu uso édesencorajado devido à dependência de plataforma.Tipo 2: Driver API-NativoO driver API-Nativo traduz as chamadas JDBC para as chamadas da API cliente do banco de dadosusado. Como a Ponte JDBC-ODBC, pode precisar de software extra instalado na máquina cliente.Tipo 3: Driver de Protocolo de RedeTraduz a chamada JDBC para um protocolo de rede independente do banco de dados utilizado, que étraduzido para o protocolo do banco de dados por um servidor. Por utilizar um protocoloindependente, pode conectar as aplicações clientes Java a vários bancos de dados diferentes. É omodelo mais flexível.Tipo 4: Driver nativoConverte as chamadas JDBC diretamente no protocolo do banco de dados. Implementado em Java,normalmente é independente de plataforma e escrito pelos próprios desenvolvedores. É o tipo maisrecomendado para ser usado.
  • 10. JDBC - CargaClass.forName(“org.firebirdsql.jdbc.FBDriver”);Class.forName(“com.mysql.jdbc.Driver”);O Class Loader tenta inicializar esta classe. Esta classe (que é o nosso driver jdbc) possui um blocoinicializador estático, que irá registrar essa classe como um driver JDBC, avisandoo java.sql.DriverManager, pelo método registerDriver.Connection conn = DriverManager.getConnection(........;Desta vez, o java.sql.DriverManager vai perguntar para cada Driver registrado, se ele aceita a Stringde conexão em questão. Se algum deles aceita esta String, a conexão é aberta (pelo Driver), eretornada. Caso contrário, uma exceção é lançada. Pela própria String de conexão, você pode passarmuitos outros parâmetros (além de login, senha e nome do banco de dados), a maioria de interessedo Driver, como por exemplo saber se aquela conexão deve estar em modo de auto reconexão casoela caia, e muitos outros. Este tipo de informação está na documentação seu driver.
  • 11. JDBC – ConexãoConnection connFirebird = null;Connection connMySql = null;String host = “localhost”;FirebirdString portaFirebird = “3050”;String databasePrefixFirebird = “jdbc:firebirdsql:”;String dbNameFirebird = “d:/localidades.fdb”;String driverFirebird = “org.firebirdsql.jdbc.FBDriver”;String userNameFirebird = “SYSDBA”;String passwordFirebird = “masterkey”;MySqlString portaMySql = “3306”;String databasePrefixMySql = “jdbc:mysql:”;String dbNameMySql = “localidades”;String driverMySql = “com.mysql.jdbc.Driver”;String userNameMySql = “root”;String passwordMySql = “root”;
  • 12. JDBC – Conexãotry { Class.forName(driverFirebird).newInstance(); Class.forName(driverMysql).newInstance(); String urlFirebird = databasePrefixFirebird + host + "/" + portaFirebird + ":" + dbNameFirebird; String urlMySql = databasePrefixMySql+"//"+host+":"+portaMySql+"/"; connFirebird = DriverManager.getConnection(urlFirebird,userNameFirebird,passwordFirebird); connMySql =DriverManager.getConnection(urlMySql+dbNameMySql,userNameMySql,passwordMySql); System.out.println("Conectado ao banco Firebird ou MySql"); connFirebird.close(); conn.MySql.Close(); System.out.println("Desconectado do banco Firebird ou MySql"); } catch (Exception e) { e.printStackTrace(); }
  • 13. JDBC – DriverFirebird = http://www.firebirdsql.org/index.php?op=devel&sub=jdbcMySQL = http://dev.mysql.com/downloads/connector/j/Oracle = http://www.oracle.com/technetwork/database/features/jdbc/index-091264.htmlPostgreSQL = http://jdbc.postgresql.org/
  • 14. Estrutura de um Relatório
  • 15. Estrutura de um RelatórioTitle (Título) – É a primeira band visível na construção de um relatório vazio. Esta seção só apareceuma vez no começo do relatório.Page Header (cabeçalho da página) – Esta seção aparece no começo de cada página impressa.Column Header (cabeçalho da coluna) – Esta seção só aparece no começo de cada interação com aband detail.Detail (detalhe) – Esta band é o local de exibição dos dados de um objeto datasource ou query. Estaseção se repete enquanto houver linhas para serem colocadas no seu relatório de acordo com oresultado transmitido.Column Footer (rodapé da coluna) – Esta seção aparece abaixo de cada coluna. Análogo ao ColumnHeader.Page Footer (rodapé da página) – Representa o rodapé da página. Esta seção aparece no final decada página.Summary (sumário/resumo) – Rodapé do relatório, só aparece uma vez ao término do relatório.Obs.: As bands Title e Summary não são inclusas no cabeçalho da página quando impressa em umapágina separada.
  • 16. Campos, ParâmetrosCampos (Fields) são “áreas específicas” que receberão diretamente os dados das respectivas colunasreferenciadas. Por exemplo, para os dados da coluna Nome do tipo VARCHAR, da tabela Cliente,serem mapeados para o relatório, um campo Nome deve ser definido no arquivo XML da seguinteforma: <field name=“Nome” class=“java.lang.String”/>Parâmetros são dados passados para a operação de preenchimento, que não podem serencontrados normalmente na fonte de dados. São declarados, por exemplo, da seguinte forma:<parameter name=”TituloDoRelatorio” class=”java.lang.String”/>E passados via código Java, através da classe HashMap:Map parametros = new HashMap( );parametros.put( “Nome”, “Aluno da FANAP” );Outra importante utilização de parâmetros é na query do relatório. Por exemplo:Select * FROM CLIENTE WHERE CLIENTE=$P{Cliente}
  • 17. VariáveisVariáveis são utilizadas para armazenar resultados temporários necessários para geração dorelatório. Elas podem referenciar tipos internos de cálculos, como contagem (count), soma (sum),média (average), menor (lowest), maior (highest), etc.Por exemplo, o cálculo do valor total da compra:<variable name=“ValorTotalCompraSum” class=“java.lang.Double” calculation=“Sum”> <variable expression> ${ValorProduto} </variable expression></variable>Existem também variáveis internas da ferramenta, com nomes “auto-explicativos”, prontas para o usonas expressões: PAGE_NUMBER, COLUMN_NUMBER, REPORT_COUNT, PAGE_COUNT,COLUMN_COUNT.
  • 18. ExpressõesExpressões (Expressions) são utilizadas para especificar o conteúdo de campos de texto, narealização de cálculos frequentes, por exemplo.Todas elas são expressões Java que podem conter em sua sintaxe:1. campos: acessado com $F{nome}2. parâmetros: acessado com $P{nome}3. variáveis de relatório: acessado com $V{nome}.Exemplo de uma expressão:<textFieldExpression> “Sr.(a) ” + $F{Cliente} + " realizou um total de compras no valor de " + $V{ValorTotalCompraSum} + " no dia " + (new SimpleDateFormat("dd/MM/yyyy")).format($F{DataCompra}) + "."</textFieldExpression>
  • 19. Mãos na Massaireport.chavesecreta.com.br
  • 20. Perguntas
  • 21. AgradecimentosFábio P. Santos – fpsgyn@gmail.comhttp://www.chavesecreta.com.br / fabio@chavesecreta.com.br Muito Obrigado !!!

×