Sei sulla pagina 1di 23

GerandoRelatriosWeb

1/23

CriandoRelatriosWeb
ndice

BIRT . . iReport. . fPDF . . HTMLeCSS

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

2 20 22 23

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

2/23

BIRT(BisenessIntelligenceReportingTools)
OBIRTumgeradorderelatriosbaseadonoEclipse. Muitosrecursosemuitofcildeusar. TambmpossibilitaousoremotodosrelatirosgeradosatravsdeumvisualizadorcomoTomcat. Downloadshttp://www.eclipse.org/birt(baixaraversoAllInOne)156MB Tutorialhttp://www.eclipse.org/birt/phoenix/tutorial/ VdeoTutorial http://download.eclipse.org/birt/downloads/examples/reports/2.1/elements/elements.html http://download.eclipse.org/birt/downloads/examples/reports/2.1/querymod/querymod.html
http://download.eclipse.org/birt/downloads/examples/reports/2.1/lib/CreatingLibrary/CreatingLib.html

http://download.eclipse.org/birt/downloads/examples/reports/2.1/lib/UsingLibrary/UsingLib.html
http://download.eclipse.org/birt/downloads/examples/reports/2.1/lib/UpdatingLibrary/UpdatingLib.html

http://download.eclipse.org/birt/downloads/examples/reports/2.1/subreport/subreport.html http://download.eclipse.org/birt/downloads/examples/reports/2.1/grouping/grouping.html Exemploshttp://www.eclipse.org/birt/phoenix/examples http://www.eclipse.org/birt/phoenix/examples/reports/ Acessoremotocomtomcathttp://www.eclipse.org/birt/phoenix/deploy/ IntegrandocomPHPhttp://www.eclipse.org/birt/phoenix/deploy/usingPHP.php CriandoRelatrioscomoBIRT(BusinessIntelligenceandReportTools) OBIRTumgeradorderelatriosaosmoldesdoCrystalReportedoiReport,queinclusivetem integraocomoPHPeoutraslinguagensserverside. Downloadhttp://download.eclipse.org/birt/downloads/

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb CriarumNovoRelatrio CriarProjetodotipoBIRT

3/23

FileNewProjectBusinessIntelligenceandReportToolsReportProject

ClicarsobreonomedoProjetocriadocomobotodireitoeNewReport 1Criandoumrelatriopartindodeumblankreportdesign Crieumnovoprojeto CrieumnovoRelatrio EmFilenameentrecomclientes.rptdesigneNext EmReporttemplatedeixeBlankReporteFinish ObservequeajaneladeLayout(aocentroedireita)exibeonomedorelatrioacimaeseu contedoestvazio.esquerdatemosaPaletadeFerramentasparaodesigndorelatrio. LogodireitadaPaletatemosaabaDataExplorer,paraaconexocombancosdedados. RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

4/23

2AdicionarumDataSource(Fontededados) DotipoJDBCdoPostgreSQL,parausarumbancodedadosnonossorelatrio. ClicarnaabaDataExplorer(acimaedireitadaPaleta) ClicarcombotodireitodomousesobreNewDataSource SelecionarJDBCDataSourceeNext DeveantesterojdbcparaopostgreSQLemalgundiretrio(baixarde http://jdbc.postgresql.org/download.html) ClicaremManageDrivers ClicaremAddeindicarodriverjdbcdoportgresql SelecionarecliqueemOK EmDriverClassselecionarodrivercorreto(org.postgresql.Driverxxx) EmDatabaseURLentrecomalgocomo: jdbc:postgresql://127.0.0.1:5432/estoque Digiteusernameepassworddobanco CliqueemTestConnection SetudookcliqueemFinish

Obs.:nesteexemploestouusandooSGBDPostgreSQL,masnoexistediferenaparaousocom outrosSGBDs,apenasexigesequeelestenhamumdriverdotipoJDBC. ParaoMySQLodriverJDBCpodeserbaixadode: http://dev.mysql.com/downloads/connector/j/5.1.html

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

5/23

3CriarumDataSet(conjuntoderegistrosouconsulta) ClicaremDataSetscomobotodireitoeNewDataSet AbaixodeJDBCDataSourcecliqueemDataSourceeNext NacaixadetextocontendooselectdigiteaconsultaSQL,comonesteexemplo:


select nome,email from public.clientes

Aoinvsdedigitaroscampostambmpodemosefetuarduploscliquenosmesmosesquerda. Ficarassim:

Paraterumaconsultadinmicaadicioneparmetrosassim: "selectnome,emailfrompublic.clientesWHEREnomeLIKE"+params["nome"] CliqueemFinish.ApenascliqueemOK. DuplocliquenodatasetclientescearaesquerdaecliqueemPreviewResultsesquerdapara visualizarosregistrosesecertificardequeesttudook.

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

6/23

VejaquetambmexistesuporteaJOIN.BastaclicarcomobotodireitosobreDataSetse NewJoinDataSet 4Layoutdorelatrio Tabelas(tables)interagemcomtodososregistrosretornadosporumdataset.Istotornafcila exibioderegistrosemformadelinhasecolunas. CliquenaabaPalette ArrasteocontroleTabledapaletaesoltenoeditordelayoutdireita.Serperguntadosobre quantascolunasequantosdetalhes. Deixecom2e1eOK. CliquenaabaDataExplorer,expandaDataSetsedepoisexpandaDataSet.Ascolunas especificadasnaconsultaaparecemabaixo:nomeeemail. Arraste"nome"paraaprimeiracluladodetalhedaprimeiracoluna,ondeestDetailRow.De formaquefiquenasegundalinhaeapareaolabelnaprimeira. Faaomesmocomacolunaemailnasegundacolunaemdetalhe. Paramudaraformataodequalquercomponentedorelatrioapenasselecioneecliquenoboto abaixo,emPropertiesFontououtraformatao. CliqueemPreviewparavercomoest. TambmparaumavisualizaoprofissionalvemFileView Jtemosumrelatriocontendoosdoiscamposmassemnenhumaformatao. 5Ordenandoregistros Abraoreportnolayouteditoreselecioneabaixoproperties.NoeditorcliqueemTable(abaixoe esquerdadareadatabela). AomoveromouseporessaregioapareceTable,entocliquenessebotoTable.Abaixo apareceroaspropriedadesdaTabela. RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

7/23

CliquenaAbaSorting.CliqueemAddparaadicionarumaexpresso.EmKeyselecione"nome"e deixeAscendente. ExecuteoPreviewparaveroresultado. Observequenomesiniciadoscommaisculasaparecemnoinciodalista.OBIRTordenadados tipostringusandocdigosUCS2.EmconjuntosdecaracteresbaseadosemASCII,asletras maisculastmvalorsemelhantesminsculas.Paraordenarcaseinsensitivamenteusar: row["nome"].toUpperCase() Naexpressoparaordenar.

6AdicionandoTtuloaoRelatrio ParaissousaremosumcontroleTextetagsHTML. SelecioneocontroleTextnaPaletaearrasteparacimadatabela. AoaparecerodilogodocontroleTextondetemAutomudeparaHTMLedigiteocontedo abaixo:


<CENTER><B><span style="font-size: larger"> Relatrio de Clientes</B></span><BR> <FONT size="small">Somente para uso interno</FONT><BR><BR> Relatrio Gerado em <VALUE-OF>new Date( )</VALUE-OF></CENTER><BR><BR>

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

8/23

Criao de Relatrio com Grfico de Barras Crie um novo relatrio (rpt_pedidos.rptdesign) Tipo blank report Crie este pequeno banco para o relatrio: banco - produto create table produtos ( codigo int primary key, descricao char(45) not null, quantidade int not null ); insert into produtos values (1, 'Banana prata', 200); insert into produtos values (2, 'Goiaba', 60); insert into produtos values (3, 'Manga Jasmin', 100); insert into produtos values (4, 'Pera', 120); insert into produtos values (5, 'Ma', 100); insert into produtos values (6, 'Tangerina', 30); insert into produtos values (7, 'Manga Tamarac', 90); insert into produtos values (8, 'Manga Jasmin', 50); insert into produtos values (9, 'Manga Rosa', 100); insert into produtos values (10, 'Banana Maa', 100); insert into produtos values (11, 'Banana Pacov',500); insert into produtos values (12, 'Banana Casca Verde', 60); Crie outro Data Source tambm o banco estoque. No Driver Class selecione o PostgreSQL. No Driver URL entre novamente: jdbc:postgresql://127.0.0.1:5432/produto Criar um novo Data Set com a seguinte consulta:
select descricao, quantidade from produtos order by quantidade desc

Aps finalizar o Data set clique na aba da Paleta. Arraste o controle Chart e solte na regio do centro (layout).

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

9/23

Aceite este tipo de grfico (Bar) e apenas clique em Next.

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

10/23

Agora veja que ele j traz selecionado nosso Data Set, com os dois campos abaixo. Clique em Next.

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

11/23

Agora podemos alterar o ttulo e algumas outras propriedades do grfico/relatrio:

Para alterar o ttulo selecione esquerda Title e digite o novo Chart Title. Finalize para voltar para o layout.

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb Ento redimensione o grfico no layout para ficar mais interessante:

12/23

Para visualizar em outros formatos: Run - View Report

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

13/23

Criao de Relatrio com Grfico de Pizza Vamos criar um novo relatrio para o mesmo banco, mesmo Data Source e mesmo Data Set. jdbc:postgresql://127.0.0.1:5432/produto select descricao, quantidade from produtos order by quantidade desc Arraste o controle Chart e altere para Pie.

Clique em Next e veja que j traz selecionado nosso Data Set. Caso tivssemos vrios Data Sets deveriamos selecionar o desejado.

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

14/23

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb Ao conluir redimensione o grfico gerado.

15/23

Dica: existe um outro bom gerador de relatrios free e open source semelhante ao BIRT, que o iReport. Quem interessar pode baixar daqui: http://jasperforge.org/projects/ireport

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb Acesso Remoto aos Relatrios

16/23

O BIRT tem um visualizador de relatrios em Java com Tomcat, que permite o acesso remoto aos relatrios gerados: http://pt.wikibooks.org/wiki/Aplicativos_em_PHP/Recursos_Extras/Geradores_de_Relat %C3%B3rios#Utilizando_o_BIRT_com_PHP_ou_simplesmente_via_Web

Utilizando o BIRT com PHP ou simplesmente via Web


Tutorial de Instalao e uso do Tomcat e do BIRT
J2SEDownloadhttp://java.sun.com/javase/downloads/index.jsp AquiparabaixarsomenteoJDK(baixeioJDK5.0Update9) https://sdlc2d.sun.com/ECom/EComActionServlet;jsessionid=65966D4F31A5BD1A572B8A9AB6 B2BBDB#(Windows) https://sdlc2d.sun.com/ECom/EComActionServlet;jsessionid=65966D4F31A5BD1A572B8A9AB6 B2BBDB#(Linux) TomcatDownloadhttp://tomcat.apache.org/ Diretonaverso5.5.20http://tomcat.apache.org/download55.cgi#5.5.20 http://mirrors.uol.com.br/pub/apache/tomcat/tomcat5/v5.5.20/bin/apachetomcat5.5.20.tar.gz (Linux) http://mirrors.uol.com.br/pub/apache/tomcat/tomcat5/v5.5.20/bin/apachetomcat5.5.20.exe (Windows) CasosuaversodoJ2SEseja1.4baixartambmoJDK1.4CompatabilityPackage(duprtiotno precisa): http://mirrors.uol.com.br/pub/apache/tomcat/tomcat5/v5.5.20/bin/apachetomcat5.5.20 compat.tar.gz(Linux) http://mirrors.uol.com.br/pub/apache/tomcat/tomcat5/v5.5.20/bin/apachetomcat5.5.20compat.zip (Windows)

Instalao e Configurao do J2SE


Executar Moverparaodiretrio/opt sudomvjdk1_5_0_09linuxi586.bin chmodu+s sudo./jdk1_5_0_09linuxi586.bin RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

17/23

EditarseuscriptdeinicializaoparaadicionaravariveldeambienteJAVA_HOME: sudogedit/etc/bash.bashrc JAVA_HOME=/opt/jdk1.5.0_09 CLASSPATH=.:$JAVA_HOME/lib/tools.jar CATALINA_HOME=/home/ribafs/prog/tomcat#anteseapsoigualnopodehaverespaos PATH=$JAVA_HOME/bin:$PATH exportJAVA_HOMECLASSPATHPATHCATALINA_HOME ParasurtirefeitorestartoambientegrficofazendoumlogoffouCtrl+Alt+Backspace.

Instalando e configurando o Tomcat


Descompactarapachetomcat5.5.20.tar.gz CriaravariveldeambienteparaoTomcat: Descompactaroapachetomcat5.5.20compat.tar.gznoraizdodiretriodotomcat /home/ribafs/prog/tomcat

Testando o Tomcat
Apontarobrowserparaoendereohttp://localhost:8080

Administrando o Tomcat
NoWindowsainstalaoviaInstallerjdeixapronto. Editeoarquivo/home/ribafs/prog/tomcat/conf/tomcatusers.xmleadicionarltimalinhaabaixo:
<?xmlversion='1.0'encoding='utf8'?> <tomcatusers> <rolerolename="tomcat"/> <rolerolename="role1"/> <rolerolename="manager"/> <rolerolename="admin"/> <userusername="tomcat"password="tomcat"roles="tomcat"/> <userusername="role1"password="tomcat"roles="role1"/> <userusername="both"password="tomcat"roles="tomcat,role1"/> <userusername="admin"password="admin"fullName="TomcatAdministrator" roles="admin,manager"/> </tomcatusers>

Comusurioesenha(adminparaambos)

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb Abrirnobrowseremhttp://127.0.0.1:8080/admin/ Entrecomadmineadmin

18/23

Instalando e usando o Visualizador de Relatrios do BIRT


Downloadhttp://download.eclipse.org/birt/downloads/(procureporBirtRuntimecorrespondente versodoseuBIRT): http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/MR12.2M1 200610171021/birtruntime2.2M1.zip DescompactarecopiarosubdiretrioWebViewerExampleparaodiretrio /home/ribafs/prog/tomcat/webapps. RenomearoWebViewerExampleparabirtviewer(opcionalmente) Abraolinknobrowserhttp://localhost:8080/manager/html Entrecomadmineadmin. esquerdacliqueem/birtviewerevejaqueabreseovisualizadorwebderelatriosdoBIRT. Casodesejeabrirumrelatrioseujcriado,copiepara/home/ribafs/prog/tomcat/webapps/birt viewerechamenobrowserassim: http://localhost:8080/birtviewer/frameset? __report=seurelatorio.rptdesign&parametro=valordoparametro

Instalando o Driver JDBC do seu SGBD


Copieparaapasta: birtviewer/WEBINF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_2.2.0.v20061009 0630/drivers postgresql8.1407.jdbc3.jar(nomeucaso) Observeque"v200610090630"vaidependerdasuaverso.

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

19/23

Abrindo Relatrio de Script PHP


Supondoquedesejeabrirorelatrio"rpt_produtos.rptdesign"naweb.Depoisdetudoprontoede tercopiadoorelatrioparaapastabirtviewer,bastachamarassim: <ahref=http://localhost:8080/birt_viewer/frameset?__report=rpt_produtos.rptdesign>Relatrio</a> SepreferirformasmaissofisticadasvejaestassugeridasnadocumentaodoBIRT:
<?php $fname="./clientes.rptdesign"; //Redirectbrowser $dest="http://localhost:8080/birtviewer/run?__report="; $dest.=urlencode(realpath($fname)); header("Location:$dest"); ?>

Passando parmetros
<?php $fname="./clientes.rptdesign"; //Redirectbrowser $dest="http://localhost:8080/birtviewer/run?__report="; $dest.=";sample=".urlencode($paramValue); $dest.=urlencode(realpath($fname)); header("Location:$dest"); ?>

Parmetros de formulrios
Deally,wecouldusePHPtocreateaUIformthatpromptsforthereportparameters.TheBIRT viewercreatesthisforminJavausinginformationinthereportdesign.Unfortunately,atpresent, thereisnowaytoretrievetherawparameterdescriptionsfromtheBIRTviewerusingaURL. Instead,therearetwoalternativeswecanuse. First,ifweknowtheparametersaheadoftime,wecandesignacustomforminPHPthatprompts theuserforthem.Thisworksifwehaveasmallnumberofreports,orifweneedtocreatea specializedparameterpageforeachreportanyway. Second,wecanlettheBIRTviewerdisplaytheparameterpageusingtheframesetURL. GeneratingReportsDynamically Finally,PHPprovidesoneadditionalBIRTintegrationoption:theabilitytogeneratereportdesigns dynamicallyforaspecifictask.Forexample,supposeyouhaveabugtrackingsystem,andyou'd likeyourusertocreatetheirownreportsviatheweb.Youcanasktheuserforthecolumnsto display,thenusePHPtocreateaBIRTreportdesigncustomizedtodisplaythosecolumns.PHPis idealforthis:itallowsustoinsertscriptingdirectlyintoHTML.SinceaBIRTdesignisXML,and XMLiscloseenoughtoHTMLforPHP,wecan"trick"PHPintogeneratingaBIRTreportdesign insteadofanHTMLpage. Togenerateareportdesign,dothefollowing: CreateaBIRTreportdesigntypicalofthekindofreportyouwanttocreate. RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

20/23

CreateaPHPtemplatefilethatcontainsthisdesign.Insertthecontentsofthedesignfilein placeoftheHTMLyou'dusuallyputintoaPHPfile. RedirectPHP'soutputfromthetemplatefileintoareportdesignfile. UsePHPtogenerateBIRTXMLforthetableheadingsandcellstheuserwants.Useyour reportdesignasatemplateforwhatisneeded.ConsulttheROMspecfordetailsonvarious elementsandproperties. Withinthedatasetinyourtemplate,createanSQLquerythatfetchestherequiredcolumns. (Workswithotherdatasettypesaswell.) UsethecodeabovetoredirectthebrowsertorunthatreportusingtheBIRTviewer. ThefollowingPHPcoderedirectstheoutputofaPHPpage,template.inc,intoareportdesign calledtemp.rptdesign:
ob_start(); require"template.inc"; $page=ob_get_contents(); ob_end_clean(); $fw=fopen("temp.rptdesign","w"); fputs($fw,$page,strlen($page)); fclose($fw);

Opes avanadas
http://localhost:8080/birtviewer/run?__report=report %5CSalesInvoice.rptdesign&OrderNumber=10010 ListofOptions Theavailablevieweroptionsinclude:
OptionDescriptionValuesDefaultframesetrun __formatTheoutputformathtmlorpdfhtmlNY __isnullIdentifiesthatareportparameterhasanullvalue ParameternameNone.Required.NY __localeReportlocaleJavalocalevaluesuchasen,enusorchzh. JVMlocaleYY __reportThepathtothereportdesign.None.Required. YY __documentThepathtothereportdocument.None.Required. YN reportParamReportparameter.Asspecifiedinthereportdesign. Asspecifiedinthereportdesign.YY

Vejaosoriginaisparamaioresdetalhes: http://www.eclipse.org/birt/phoenix/deploy/viewerSetup.php http://www.eclipse.org/birt/phoenix/deploy/usingPHP.php http://www.eclipse.org/birt/phoenix/deploy/viewerUsage.php

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

21/23

Gerador de Relatrio iReport


Siteoficialhttp://jasperforge.org/sf/projects/ireport

timo tutorial sobre o iReport, inclusive com o acesso via web (com java)
www.furutani.eti.br/tutoriais/MiniTutorial_Relatorios_Java_JasperReports_e_iReport.pdf

Tutorial de iReport
http://www.javafree.org/javabb/viewtopic.jbb?t=3154

Starting with JasperReports by Gregory Beumer


http://technology.amis.nl/blog/index.php?p=346

Manual do iReport
http://jasperforge.org/sf/wiki/do/viewPage/projects.ireport/wiki/IReportManualV1.2.1

iReport Documentao
http://jasperforge.org/sf/wiki/do/viewPage/projects.ireport/wiki/HomePage

Tutorial JasperReports - IReports


HTMLhttp://br.geocities.com/robertofurutani/java/Tutorial_JasperReports/ PDFhttp://www.furutani.eti.br/tutoriais/Tutorial_Sub_Relatorio_ArrayList.pdf Fonteshttp://br.geocities.com/robertofurutani/java/Tutorial_JasperReports/Tutorial.zip

Outro tutorial em portugus


http://www.livramento.yu.com.br/tutoriais/ireport.html

A Tutorial on Generating Reports by iReport


http://www.cise.ufl.edu/~otopsaka/CIS4301/ReportDemo/

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

22/23

fPDFhttp://www.fpdf.org
Tutorialhttp://www.fpdf.org/en/tutorial/index.php Downloadhttp://www.fpdf.org/en/download.php Exemploshttp://www.fpdf.org/en/script/index.php Manualonlinehttp://www.fpdf.org/en/doc/index.php Manualptbrparadownloadhttp://www.fpdf.org/en/dl.php?id=97 Tutorialhttp://www.fpdf.org/en/tutorial/index.php fpdfgeneratorhttp://fpdfgenerator.sourceforge.net/ O fPDF uma alternativa para criao de relatrios em PDF de aplicativos e sites em PHP. Ele d trabalho, pois precisamos criar cada detalhe do que ser exibido mas por outro lado permite um maior controle da tela. No site oficial existe vrios exemplos na seo de scripts, inclusive um desenvolvido por min: http://www.fpdf.org/en/script/script11.php Aqui tambm trago um pequeno gerador de cdigo para o fPDF, feito em JavaScript que ajuda na elaborao de relatrios com fPDF, que o fpdfgenerator, que encontra-se no SourceForge: http://fpdfgenerator.sourceforge.net/ Tambm trago um exemplo de aplicativo de condomnios que imprime os recibos com fPDF.

RibamarFShttp://cursos.ribafs.org

GerandoRelatriosWeb

23/23

HTMLeCSS
OFrameworkgilvemcomumpequenogeradorderelatrioscomacessoabancos,emHTMLe CSS. Downloadhttp://cursodephp.ribafs.org/down/ferramentas/relatorios/relatorios_htmlcss.zip Frameworkgilhttp://web.ribafs.org/frameworks/35frameworkagil Descompactareogeradorderelatriosencontrasenapastaadmin. IsoleiogeradorderelatriosemHTMLeCSSdoFrameworkgileestouoferecendoaqui. Observao:Todasessasferramentassointeiramentefreeeopensource.

RibamarFShttp://cursos.ribafs.org

Potrebbero piacerti anche