Relatorios Web
-
Author
ricardo-paiva -
Category
Documents
-
view
147 -
download
2
Embed Size (px)
Transcript of Relatorios Web
GerandoRelatriosWeb
1/23
CriandoRelatriosWebndice
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.htmlhttp://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.htmlhttp://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:
Somente para uso interno
Relatrio Gerado em new Date( )
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 WebTutorial de Instalao e uso do Tomcat e do BIRTJ2SEDownloadhttp://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 J2SEExecutar 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 TomcatDescompactarapachetomcat5.5.20.tar.gz CriaravariveldeambienteparaoTomcat: Descompactaroapachetomcat5.5.20compat.tar.gznoraizdodiretriodotomcat /home/ribafs/prog/tomcat
Testando o TomcatApontarobrowserparaoendereohttp://localhost:8080
Administrando o TomcatNoWindowsainstalaoviaInstallerjdeixapronto. Editeoarquivo/home/ribafs/prog/tomcat/conf/tomcatusers.xmleadicionarltimalinhaabaixo: users>
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 BIRTDownloadhttp://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¶metro=valordoparametro
Instalando o Driver JDBC do seu SGBDCopieparaapasta: 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 PHPSupondoquedesejeabrirorelatrio"rpt_produtos.rptdesign"naweb.Depoisdetudoprontoede tercopiadoorelatrioparaapastabirtviewer,bastachamarassim: Relatrio SepreferirformasmaissofisticadasvejaestassugeridasnadocumentaodoBIRT:
Passando parmetros
Parmetros de formulriosDeally,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 avanadashttp://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 iReportSiteoficialhttp://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 iReporthttp://www.javafree.org/javabb/viewtopic.jbb?t=3154
Starting with JasperReports by Gregory Beumerhttp://technology.amis.nl/blog/index.php?p=346
Manual do iReporthttp://jasperforge.org/sf/wiki/do/viewPage/projects.ireport/wiki/IReportManualV1.2.1
iReport Documentaohttp://jasperforge.org/sf/wiki/do/viewPage/projects.ireport/wiki/HomePage
Tutorial JasperReports - IReportsHTMLhttp://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 portugushttp://www.livramento.yu.com.br/tutoriais/ireport.html
A Tutorial on Generating Reports by iReporthttp://www.cise.ufl.edu/~otopsaka/CIS4301/ReportDemo/
RibamarFShttp://cursos.ribafs.org
GerandoRelatriosWeb
22/23
fPDFhttp://www.fpdf.orgTutorialhttp://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
HTMLeCSSOFrameworkgilvemcomumpequenogeradorderelatrioscomacessoabancos,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