Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1/23
CriandoRelatriosWeb
ndice
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
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
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
RibamarFShttp://cursos.ribafs.org
GerandoRelatriosWeb
5/23
Aoinvsdedigitaroscampostambmpodemosefetuarduploscliquenosmesmosesquerda. Ficarassim:
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
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
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
Para alterar o ttulo selecione esquerda Title e digite o novo Chart Title. Finalize para voltar para o layout.
RibamarFShttp://cursos.ribafs.org
12/23
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
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
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
GerandoRelatriosWeb
17/23
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
18/23
RibamarFShttp://cursos.ribafs.org
GerandoRelatriosWeb
19/23
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
RibamarFShttp://cursos.ribafs.org
GerandoRelatriosWeb
21/23
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
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
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