Professional Documents
Culture Documents
br
ndice do frum
Lista de Usurios
Busca
MPs
Login
Registre-se
Tutorial de IREPORT
ndice do frum ->[Tutoriais] - Java Diversos Autor daltoncamargo Offline
Enviada: 26/01/2004 11:09:19
Tutorial iReport 0.2.2 Por Bruno R. Lima ( aebrlima@hotmail.com ) Criando relatrios JasperReports utilizando iReport e uma conexo JDBC. + O QUE IREPORT ? + CRIANDO UM RELATORIO SIMPLES ++ Iniciando o iReport ++ Criando um Relatrio ++ Criando a origem dos dados ++ Selecionado a visualizao no Ireport ++ Criando o SELECT dos dados ++ Construindo o relatrio O QUE O IREPORT ? O iReport uma ferramenta que visa facilitar a construo de relatrios utilizando a biblioteca JasperReports ( http://jasperreports.sourceforge.net ) atravs de uma interface grfica desenvolvida em Swing. Ele dispe de importantes ferramentas para desenvolver relatrios complexos e demorados. Mesmo sem nenhum conhecimento das bibliotecas do JasperReports, voc consegue criar relatrios muito interessantes atravs desta ferramenta e aprender a entender as tags XML utilizadas no JasperReports. CRIANDO UM RELATORIO SIMPLES Iniciando o iReport Se voc tiver o Ant instalado em sua maquina, altere o arquivo iReport.bat e iReport.sh para setar o diretrio de instalao. Se voc no tem o Ant instalado, v ao subdiretrio noAnt e execute o arquivo startup.bat para inici-lo. Criando um Relatrio No menu File, clique em New Document; Ir aparecer a janela para configurar o seu relatrio, entre essas configuraes esto o nome do relatrio, tamanho da folha utilizada, margens, colunas do relatrio entre outras opes. Para configurar um relatrio j criado, alterar o tamanho da folha, margens, etc. v ao menu View > Report Properties. Criando a origem dos dados 1. Agora vamos criar uma conexo JDBC para enxergar o banco de dados. 2. Va ao menu DataSources > Connections / DataSources. 3. Ir aparecer uma janela contendo as suas conexes de fonte de dados. Agora iremos criar uma conexo JDBC. 4. Clique no boto New; Selecione em "Type Of Connection / DataSource" a opo "DataBase JDBC Connection". 5. Defina um nome para a conexo: este nome apenas para identific-lo no iReport. Ex: "MinhaConexao" 6. Agora voc deve selecionar o driver JDBC a ser utilizado. Neste caso vamos utilizar o driver da Oracle, "oracle.jdbc.driver.OracleDriver". Preencha tambm a URL de conexo com o banco: "jdbc:oracle:thin:@<maquina>:<porta>:<instancia>". Voc deve substituir as opes: - <maquina> - Endereo da maquina onde o banco de encontra. Ex: 192.168.0.1; - <porta> - Porta de conexo do banco; Default 1521; - <instancia> - A instancia do banco. Ex: oradata; Neste caso nossa URL seria: "jdbc:oracle:thin:@192.168.0.1:1521:oradata". 7. Informe os campos "Database" com a instancia do banco, "User" com o usurio e "password" com a senha do seu banco. Essas informaes so necessrias para o iReport conectar-se no banco para obter informaes da coluna. Clique em TEST para testar se a conexo est ok. Se estiver tudo em ordem, clique na opo SAVE para salvar sua conexo. Se voc quiser alterar alguma dessas informaes, clique no boto "Modify" da janela "Connections/Datasources". Aps criada a conexo, apenas clique no "X" no canto j janela para fech-la. Agora que voc criou sua conexo, devemos informar que vamos us-la no relatrio, ento v ao menu "Build" e clique na opo "Set Active Connection". Ir aparecer uma lista das conexes disponveis. Clique na conexo que criamos, a "MinhaConexao" e clique em ok para selecion-la.
Selecionado a visualizao no IReport Aps criada a conexo, devemos selecionar qual forma queremos visualizar nosso relatrio depois de pronto. As opes disponveis so aquelas que o Jasper disponibiliza. Vamos selecionar a opo PDF Preview para ver em PDF.
Criando o SELECT dos dados Bem, como o relatrio apenas fictcio, criaremos a seguinte query para retornar apenas alguns campos utilizados no relatrio.
view plain copy to clipboard print ?
1. 2. 3. 4.
1. V para o menu "Datasource > Report Queries". 2. Ao abrir a janela, encontra-se a area onde dever ser digitado a sua query. Nesta janela, voc pode criar qualquer query, pois o que importa o resultado dela. 3. Aps digitar sua query, veja que existem os botes "Read Fields" e "Save Query To Report". Clique no primeiro, "Read Field", que ir ler os campos que sua query retorna. Os campos iro aparecer na parte de baixo da janela, com o nome identificado na query e seu tipo correspondete no JDBC. No nosso caso iro aparece os seguintes campos: - TITULO : java.lang.String - DATA_CORRENTE : java.sql.Timestamp - DIAS : java.lang.Double
4. Selecione estes campos, clicando no primeiro, segure a tecla SHIFT e clique no ultimo. Clique no boto "Register Fields To Report". Isto far com que os campos selecionados sejam criados ( registrados ) no relatrio, para poderem ser utilizados. O boto "Clear List" limpa os campos encontrados na sua query. Se voc, por acaso mais tarde resolver incluir um novo campo na sua query, ao clicar no "Register Fields To Report" ele ir verificar se os campos que esto retornando na query j esto registrados no relatrio, e no iro ser exibidos, exibindo assim somente os campos novos. Para utilizar parmetros no SQL, teremos que adicion-los depois de criados os campos. Por que? Porque o iReport executa a query do jeito que esta no banco, e se existir algum parmetro do iReport em sua query, ele ir reclamar, gerando um erro de SQL. 5. Antes de fechar a janela, altere sua query adicionando o parmetro que iremos criar chamado de "PARAM1":
view plain copy to clipboard print ?
1. 2. 3. 4. 5.
Para trabalhar com parametros nas queries, devemos identificar que o valor um valor do iReport, que dever ser substituido. Por isso utilizamos a sintaxe $P{"nome do parametro"}. Assim, quando executarem a nossa query no relatorio, iro substituir esse valor pelo valor que passaremos como parametro no relatrio. No caso de uma variavel, a sintaxe muda para $V{"nome da variavel"}. Agora clique em "Save Query to Report" e clique em Close para salvar a query e fechar a janela.
Construindo o relatrio Vamos verificar se os campos foram criados corretamente. No meu "View", clique na opo "Report Fields", para abrir a janela dos campos do relatrio. Nesta janela possvel visualizar os campos criados no relatrio, bem como as variveis do relatrio e os parmetros. Agora devemos criar o parmetro que inclumos na nossa query, o "PARAM1". 1. Com a janela que exibe os campos aberta, v na aba "Parameters". 2. Clique em "New"; Informe o nome do parmetro, no caso "PARAM1", o tipo do parmetro, neste caso java.lang.String, e um valor default, informe "VALOR DO PARAMETRO". Informe tambm uma descrio do parmetro. 3. Clique em Ok, verifique que o parametro foi criado. Feche a janela.
1. No menu "Edit" v na opo "Insert Element...". Aparecer os elementos que voc pode inserir em seu relatrio. Vamos inserir um "Static Text" clicando nesta opo. Um "Static Text" como um label, onde o seu texto ficar esttico: voc informa o texto. 2. Verifique que o cursor do mouse alterou. Clique em um local do seu relatrio, de preferncia na rea "Page Header", que o cabealho de pagina para incluir o campo.
3. Clique agora no menu "View" e selecione a opo "Element Property". Ir aparecer a janela com as propriedades do campo criado. 4. Vamos alterar o tamanho dele. Altere a propriedade Width e Height para o tamanho desejado. Voc pode tambm alterar o tamanho direto no layout do relatrio apenas clicando e arrastando pelas bordas do objeto. Para deixar um tamanho padrao, vamos setar as propriedades para: - Width: 300 - Height: 30 - Top: 10 - Left: 120 5. Na segunda aba da janela, "Font" vamos informar a fonte usada no objeto, clique nela. Altere as propriedade para: - "Font Name" = "Arial" - "Size" = 18 - "Bold" = Checked - "Horizontal Align" = Center - "Vertical Align" = Middle
6. Na terceira aba, "Static Text" onde vamos informar o texto que dever aparecer, clique nela. Na rea que aparece, apague o texto e digite: "Relatrio Ireport - JasperReport". Pode fechar a janela, clicando no (X). 7. Para facilitar nossa vida, na barra de menu tem os botes de atalho. Para criar um Text Field, clique no boto que contem a letra "F".Clique agora em alguma rea do relatrio, de preferncia dentro da rea escrita "Detail", onde se encontram os detalhes. Aps inserir o campo, de um duplo clique sobre ele, e ver que aparece a caixa de propriedades do objeto. semelhante as propriedades de um "Static Text" exceto pelas novas abas "Text Field" e "Hyper Link". Altere as propriedades abaixo na aba "Commom" - Width: 280 - Height: 18 - Top: 10 - Left: 15 Feche a janela de propriedades do objeto. 8. Vamos criar os outros dois campos do relatrio: Repita o mesmo procedimento anterior para incluir um campo, mas alterar a propriedade Top para 30 em um e 50 no outro campo. Assim voc ir criar mais 2 campos um logo abaixo do outro. 9. D um duplo clique no primeiro campo criado para verificar suas propriedades. Na janela de propriedades, clique na aba "Text Field" para alterarmos as propriedades de campos dele. A propriedade "Textfield Expression Class" a classe que esse textfield ir representar. No nosse exemplo, esse campo ir representar o titulo que retornar da query. Altere para java.lang.String. A propriedade "Text Field Expression" o valor que a mesma ir imprimir, preencha com $F{TITULO}. Sem fechar a janela, seleciona o segundo campo criado no relatrio. Na mesma aba selecionada, a "Text Field" das propriedades do campo, altera as propriedades "TextField Expression Class" para java.util.Date e a propriedade "Text Field Expression" para $F{DATA_CORRENTE}. Altere a propriedade Pattern para "dd/MM/yyyy", que o formato que queremos exibir a data. Agora clique no terceiro campo criado e altere as propriedades "TextField Expression Class" para java.lang.Double, "Text Field Expression" para $F {DIAS} e o Pattern para "0000". Aps finalizar a configurao dos campos, clique em Save no meu File para salvar o arquivo, ou no disquete na barra de atalho. Informe o arquivo XML para o qual deseja salvar seu relatrio. Confirme. Para compilar o seu relatrio e gerar um arquivo . JASPER, clique no boto laranja, ao lado do zoom de visualizao do relatrio. Para executar seu relatrio utilizando a conexao ativa, v em "Build" e "Execute Report ( using active conn )".
queria saber como eh que faz pra misturar texto e fields em um mesmo campo tpow .....pro texto ficar assim dia F${dia}, do mes F${mes}.......
alguem sabe???
Voltar ao Topo Pure_Death_Metal Offline
Enviada: 27/05/2004 15:00:22
Assunto:
ops... o codigo q vc deve inserir no campo "TextField Expression" na aba "Text Field" na propriedade do elemento o seguinte: "dia "+$F{dia}+", do mes "+$F{mes}
Voltar ao Topo
AndZais Offline
Registrado em: 31/08/2006 Mensagens: 4
Assunto:
blz galera, tem como alguem mostrar um servlet exibindo o exemplo acima, tipo uma chamada em uma aplicao web.
valeu
Voltar ao Topo marcel_kiyoshi Offline
Registrado em: 31/08/2006 Mensagens: 0 Enviada: 13/07/2004 10:43:18
Assunto: Imagens
Saudaes, gostaria de saber como faz para pegar uma imagem da base de dados e coloc-la num relatrio do iReport. Esta imagem est armazenada num campo do tipo blob. E o banco de dados que uso o Postgres. Desde j, agradeo
Assunto:
Cara, primeiramente achei muito bacana essa publicao sua.. Mas travei logo no inicio... 1. O que um ANT.. 2. No achei nenhum .bat com o iReport.. Podem me ajudar?? Obrigado! Rafael Ferreira / Cear
Assunto:
ceara escreveu: Cara, primeiramente achei muito bacana essa publicao sua.. Mas travei logo no inicio... 1. O que um ANT.. 2. No achei nenhum .bat com o iReport.. Podem me ajudar??
Assunto:
Dalton, Obrigado cara, eu peguei um pluggin para o NetBeans, mas estou apanhando aqui, nunca trabalhei com ANT e nem relatrios.. Obrigado Rafael Ferreira Cear
Assunto:
Para usar o iReport precisa ter instalado o Jasper Report? T perdido. No estou conseguindo nem instalar o Jasper Reports. J baixei o programa no site (http://jasperreports.sourceforge.net/requirements.html#jdbc) do sourceforge, mas ele s possui arquivos .jar. Pelo que entendi terei que gerar uma aplicao em java para gerar os relatrios de que preciso. Eu estava utilizando o Crystal Reports, mas essa m... no funciona em linux. Por isso resolvi mudar para o Jasper que at o momento me parece muito bom. Com excesso da facilidade de instalar! Tentei segui as instrues no site do jasper reports, mas l s passa o requerimento do programa. (Falando nisso no encontrei o Driver JDBC que o site fala).
E preciso urgentemente da ferramenta. Minha inteno criar os relatrios tanto em Windows como Linux e rodar os mesmos em ambas plataformas. Aqui eu utilizo o Windows 2000 Server e o Kurumin(Linux). As paginas so desenvolvidas em ASP e o Banco SQL, e eu gostaria de uma soluo para chamar os relatrios a partir do asp. e s mais algumas questes: O que Ant e onde eu encontro? O JDK que o site se refere o que vem com o NetBeans (Pois este que est instalado na minha mquina)? O JAXP XML Parser que o site se refere no est funcionando nenhum dos links e eu no consegui encontr-lo. Onde Ach-lo? Como instalar o XLS no windows 2000(Se que precisa)? _________________ JavaFree.org
Voltar ao Topo Pure_Death_Metal Offline
Enviada: 23/08/2004 11:16:40
Assunto:
Linomarcos... se tiver duvidas ainda sobre o IReport pode me cadastrar no messenger... eu tbm apanhei bastante do IReport qndo comeei... agora aprendi alguma coisa com ele alias... eu naum me importe de alguem me cadastrar... fico feiz em poder ajudar tbm ******************* 24/11/2004 **********************
Pessoal... a algum tempo eu mudei de empresa, e agora no estou mais trabalhando com Java, sendo assim no utilizo mais o JasperReport e nem o IReport... ainda assim podem me cadastrar no msn... mas no tenho mais nenhum exemplo de relatorio para auxilia-los... **************************************************** _________________ JavaFree.org
Assunto:
Aproveitando esse tpico... Algum a sabe como fazer um relatrio "zebrado" (as linhas ficam alternando de cor pra facilitar a leitura) ??? Agradeo sua ateno.
EhPegue o arquivo .jar do Jasper e coloque na varivel de ambiente CLASSPATH. Como q isso? Na minha variavel de ambiente tem: -JASPERREPORT_HOME = C:\jasperreports-0.6.0; C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar -JAVA_HOME = C:\j2sdk1.4.2_03 -Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Arquivos de programas\ATI Technologies\ATI Control Panel;C:\j2sdk1.4.2_03\lib;C:\jasperreports-0.6.0\lib;C:\mysql\lib;C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar;.
Eh
RodReis escreveu: -JASPERREPORT_HOME = C:\jasperreports-0.6.0; C:\jasperreports-0.6.0\lib\jasperreports-0.6.0.jar -JAVA_HOME = C:\j2sdk1.4.2_03
kra... naum to lembrado direito, mas acho q vc deve adicionar esses endereos em "Variaveis do Ambiente" no windows, depende da verso q vc usa, tipow no windows 2000, vc vai em propriedades do sistema, na aba avanado tem lah o boto variaveis do ambiente... acho q eh isso no linux naum sei como funciona mas tenta isso ai, depois vc diz se funciona _________________ JavaFree.org
Voltar ao Topo fmrabelo Offline
Enviada: 21/10/2004 11:59:59
Eu uso o Ireport e estou tentando evitar a quebra de relatrio por pgina. Necessito que, se um relatrio no couber no espao restante de uma pgina, esse relatorio deve iniciar em uma nova pagina, deixando todo o espao no final da pagina atual em branco. Este relatrio contem 4 grupos e eu tentei configurar estes grupos na opo "print header on each page" no menu "Add/modify group". Com essa configurao, quando no h espao para o relatrio; este impresso at o final da pgina, ocorre a quebra, mas todo o relatrio se repete na nova pgina. O problema seria resolvido se o relatrio no fosse impresso no final da pgina onde ocorre a quebra.
Registrado em: 31/08/2006 Mensagens: 0
No sei se daria para resolver este problema utilizando a opo "Group Expression". Aguardo sugestes. Obrigado galera. Flavio
Assunto:
Ae pessoal, Alguem sabe como fazer uma multiplicacao no iReport? Crio uma variavel no iReport? Quero multiplicar os valores de dois campos de uma tabela. At mais! _________________ WE ROCK! JavaFree.org
Assunto:
Alguem tem um tutorial de iReport utilizando a entrada de dados via COLLECTION ou ARRAY?? E sei tiver como criar um PDF somente em memoria para WEB agradeo _________________ Luis Fernando Coelho Bacharel em Cincia da Computao da FURB Blumenau - SC Coordenador de TI
JavaFree.org
Assunto:
Seguinte cara,,, Vc possui algum exemplo de como alimentar um relatorio feito em JasperReport atravs de um Collection ou Array?? Pq at agora soh vi exemplo com sql do banco. _________________
Luis Fernando Coelho Bacharel em Cincia da Computao da FURB Blumenau - SC Coordenador de TI JavaFree.org
Assunto:
Ol.... Finalmente consegui fazer o iReport funcionar... S no ficou claro para mim, como que eu executo ele de "fora", como de um software que eu fiz em java posso chamar o iReport e utilizar j um relatorio pronto... Ainda ficou essa duvida!! agradeo muito Rafael Ferreira
Assunto:
Caro Rafael Ferreira Para executar um relatiro feito pelo Ireport vc utilizar o arquivo compilado do seu relatrio XX.jrxml Logo vc criara um classe em java que ser chamada pelo seu programa. Algo parecido com :
view plain
copy to clipboard
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.
importjava.io.IOException; importjava.io.StringReader; importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.Statement; importjava.util.HashMap; importjavax.swing.text.BadLocationException; importjavax.swing.text.rtf.RTFEditorKit; importnet.sf.jasperreports.engine.JasperManager; importnet.sf.jasperreports.engine.JasperPrint; importnet.sf.jasperreports.engine.JasperReport; importnet.sf.jasperreports.engine.design.JasperDesign; importnet.sf.jasperreports.view.JasperViewer; /*Primeiraparte*/ publicclassRelatorioLaboratorio{ privateConnectioncon=null; privateStringdriver="oracle.jdbc.driver.OracleDriver"; privateStringendereco="enderecoBanco"; privateStringuser="usuarioBanco"; privateStringpass="senhaBanco"; privateResultSetrs=null; privateStringvalores[]=newString[10]; privateintchamada=1; privateStringdir="localondeestoarquivodorelatorio"; privateStringReaderstream; /*Segundaparte*/ publicRelatorioLaboratorio(){ /*Efetuaaconexaoabasededadosecoletaosvaloresdabasededadosarmazenando-os emumarrayparaserfuturamenteutilizado*/ try{ if(con==null){ Class.forName(driver); con=DriverManager.getConnection(endereco,user,pass); Statementstatement=con.createStatement(); rs=statement.executeQuery("selectaserexecutado"); HashMapteste=newHashMap(); while(rs.next()){ //foratonumerodecamposdatabela for(inti=1;i<10;i++){ valores[i]=rs.getString(i); } } } } catch(Exceptione){ System.err.println("Problemasapresentadosnaoperacaodeconexao"); e.printStackTrace(); } /*Iniciodoblocoqueiragerarnossosrelatoriose3parte*/ try{ Stringarray[]=valores; JasperDesigndesign=JasperManager.loadXmlDesign(dir+"NomeDoRelatorio.jrxml"); JasperReportjr=JasperManager.compileReport(design); HashMapparameters=newHashMap(); parameters.put("PARAMETRO_1",array[1]); parameters.put("PARAMETRO_2",array[2]); parameters.put("PARAMETRO_3",array[5]); parameters.put("PARAMETRO_4",array[4]); parameters.put("PARAMETRO_5",array[9]); JasperPrintimpressao=JasperManager.fillReport(jr,parameters,con); JasperViewerjrviewer=newJasperViewer(impressao,false); jrviewer.show(); } catch(Exceptione){ e.printStackTrace(); } } /*Aquichamamosoconstrutordenossaclasseparaexibirmosorelatorioe4parte*/ publicstaticvoidmain(Stringargs[]){ newRelatorioLaboratorio(); System.out.println("ok"); } }
_________________ Luis Fernando Coelho Bacharel em Cincia da Computao da FURB Blumenau - SC Coordenador de TI JavaFree.org
Voltar ao Topo Raphael Santos Offline
Registrado em: 31/08/2006 Mensagens: 7 Enviada: 17/12/2004 10:02:27
Galera.... estou gerando relatorios com o ireport numa boa, mas estou com um pequeno problema. A quebra de pgina est errada, ele est quebrando com +- 2/3 da pgina e ja comea o contedo da proxima pgina na mesma. Se algum tiver alguma idia de como resolver isso, responda pf.
Voltar ao Topo
Anncio
USB Datalogging Adquira dados em 3 cliques com data loggers prontos para utilizar www.ni.com/brasil
FJ-26 - Web Avanado Laboratrio Web Avanado MVC, JSF, Hibernate, Design Pattern www.wansoft.com.br
Java Installer Builder Easy to use, amazingly powerful Creates beautiful installers www.ej-technologies.com