SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Relatórios no PHP
       com
Problemas
Cabeçalho, rodapé, índice,...
●



Tempo de execução com
●



grandes relatórios
Complexidade para manutenção
●



Falta de flexibilidade
●
JasperReports
JasperReports - API
Solução
Instalação
sudo add-apt-repository "deb http://archive.canonical.com/ natty partner"
sudo apt-get update
sudo apt-get install sun-java6-plugin
Java no PHP
Todos os jars do JavaBridge são adicionados no
java.class.path, separados por ponto e vírgula ( ; ) ao
iniciar a virtualmachine


  O uso de classes Java é simples:
    <?php
    $string = new Java("java.lang.String", $sou_uma_string));
    ?>
Simplificando...
“A necessidade do simples e a sua aquiescência
gera o complicado que por sua vez, passa-se por
simples   em    uma    corrente  contínua    de
aprendizado.”

Autor desconhecido
Exemplo de código
<?php
require_once 'libs/funcoes.class.php';

 $db = new SQLite3('arquivos/banco.sqlite');

 $result = $db->query('SELECT * FROM teste') or die('Ocorreu um erro!');

 $retorno = '';
while ($row = $result->fetchArray(SQLITE3_ASSOC))
    $retorno.= funcoes::parseRegistroToXml($row)."n";

 $xml =
funcoes::getXmlHeader('relatorio')."<relatorio>$retorno</relatorio>";

 define ('JAVA_HOSTS', '127.0.0.1:9080');
require_once 'libs/JasperReports/JasperReports.class.php';

 $jasperReport = new JasperReports();
 $jasperReport->setJasperFile('arquivos/report1.jasper');
 $jasperReport->setXML($xml, '/relatorio/record');
 $jasperReport->setParameter('IMAGEM_01', 'img/jasper.gif');
 $jasperReport->setParameter('IMAGEM_02', 'img/php.png');
 $jasperReport->setParameter('IMAGEM_03', 'img/charge_01.jpg');
 $jasperReport->downloadPdf('teste.pdf');
?>
<?php
                                        function romans10_9(){
 <?php                                         if($jesus == 'Lord')
 function romans10_9(){                               $you = 'saved';
       if($jesus == 'Lord')                    else
             $you = 'saved';                          $you = 'lost';
       else                                    return $you;
             $you = 'lost';             }
       return $you;                     ?>
 }
 ?>
     <?php                                               <?php
     function romans10_9(){
            if($jesus == 'Lord')                         function romans10_9(){
                    $you = 'saved';




                              FIM!!!
            else                                             if($jesus == 'Lord')
                    $you = 'lost';
            return $you;                                         $you = 'saved';
     }
     ?>                                                      else
                                                                 $you = 'lost';
<?php                                                        return $you;
function romans10_9(){                                   }
                                                         ?>
   if($jesus == 'Lord')
       $you = 'saved';
   else                               <?php
                                      function romans10_9(){

       $you = 'lost';                        if($jesus == 'Lord')
                                                     $you = 'saved';
                                             else
   return $you;                                      $you = 'lost';
                                             return $you;
}                                     }
                                      ?>
?>
Links - Contato
<?php
echo "
Vitor Mattos

vitor.mattos@phprio.org

http://jasperforge.org/
http://php-java-bridge.sourceforge.net/
https://github.com/vitormattos/phpJasperPrint
http://www.slideshare.com/vitormattosrj";
?>

Mais conteúdo relacionado

Mais procurados

Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
Dalton Martins
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
Dalton Martins
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
Carlos Santos
 

Mais procurados (17)

Arrays PHP - Criação de sites II
Arrays PHP - Criação de sites IIArrays PHP - Criação de sites II
Arrays PHP - Criação de sites II
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Agenda em bash e dialog
Agenda em bash e dialogAgenda em bash e dialog
Agenda em bash e dialog
 
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
 
PHP GERAL
PHP GERALPHP GERAL
PHP GERAL
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
 
Hello SAFE World!!!
Hello SAFE World!!!Hello SAFE World!!!
Hello SAFE World!!!
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
Php
PhpPhp
Php
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
 
Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4Aula 01 PHP+MySQL - LabMM4
Aula 01 PHP+MySQL - LabMM4
 
Perl Moderno, dia3
Perl Moderno, dia3Perl Moderno, dia3
Perl Moderno, dia3
 
Perl Moderno, dia4
Perl Moderno, dia4Perl Moderno, dia4
Perl Moderno, dia4
 
Why functional programming matters
Why functional programming mattersWhy functional programming matters
Why functional programming matters
 
Perl Moderno, dia2
Perl Moderno, dia2Perl Moderno, dia2
Perl Moderno, dia2
 
Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 

Semelhante a JasperReports

Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
Regis Magalhães
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
Impacta Eventos
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
Sérgio Souza Costa
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
Carlos Santos
 

Semelhante a JasperReports (20)

Xdebug: Seus problemas acabaram!
Xdebug: Seus problemas acabaram!Xdebug: Seus problemas acabaram!
Xdebug: Seus problemas acabaram!
 
Curso de Introdução - PHP
Curso de Introdução - PHPCurso de Introdução - PHP
Curso de Introdução - PHP
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Programação web ii aulas 06 e 07
Programação web ii   aulas 06 e 07Programação web ii   aulas 06 e 07
Programação web ii aulas 06 e 07
 
apostila.pdf
apostila.pdfapostila.pdf
apostila.pdf
 
Orientação a Objetos em PHP
Orientação a Objetos em PHPOrientação a Objetos em PHP
Orientação a Objetos em PHP
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
Memcached, Gearman e Sphinx
Memcached, Gearman e SphinxMemcached, Gearman e Sphinx
Memcached, Gearman e Sphinx
 
Generators PHP
Generators PHPGenerators PHP
Generators PHP
 
Clean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHPClean Code e Object Calisthenics - Aplicados no PHP
Clean Code e Object Calisthenics - Aplicados no PHP
 
Da Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtualDa Argila Ao Forte - Como desenvolver uma loja virtual
Da Argila Ao Forte - Como desenvolver uma loja virtual
 
PHP ao Extremo
PHP ao ExtremoPHP ao Extremo
PHP ao Extremo
 
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveisLabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
LabMM4 (T11 - 12/13) - PHP - Tipos de dados e variáveis
 
Revisao php
Revisao phpRevisao php
Revisao php
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
Php 08 Oo
Php 08 OoPhp 08 Oo
Php 08 Oo
 

Mais de Vitor Mattos

Que oportunidades me encontrem!
Que oportunidades me encontrem!Que oportunidades me encontrem!
Que oportunidades me encontrem!
Vitor Mattos
 

Mais de Vitor Mattos (13)

Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Composer dependency manager
Composer   dependency managerComposer   dependency manager
Composer dependency manager
 
Contribuindo e criando software livre
Contribuindo e criando software livreContribuindo e criando software livre
Contribuindo e criando software livre
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemas
 
Que oportunidades me encontrem!
Que oportunidades me encontrem!Que oportunidades me encontrem!
Que oportunidades me encontrem!
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
BDD: torne viva a documentação de seus sistemas
BDD: torne viva a documentação de seus sistemasBDD: torne viva a documentação de seus sistemas
BDD: torne viva a documentação de seus sistemas
 
Xdebug seus problemas acabaram - TDC - PHPeste
Xdebug   seus problemas acabaram - TDC - PHPesteXdebug   seus problemas acabaram - TDC - PHPeste
Xdebug seus problemas acabaram - TDC - PHPeste
 
Seja subversivo, faça testes
Seja subversivo, faça testesSeja subversivo, faça testes
Seja subversivo, faça testes
 
Apresentação feedback cool
Apresentação feedback coolApresentação feedback cool
Apresentação feedback cool
 
Melhor que whatsapp: telegram + php
Melhor que whatsapp: telegram + phpMelhor que whatsapp: telegram + php
Melhor que whatsapp: telegram + php
 
BDD + PHP = behat!
BDD + PHP = behat!BDD + PHP = behat!
BDD + PHP = behat!
 
PHP em Background
PHP em BackgroundPHP em Background
PHP em Background
 

Último

Último (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

JasperReports

  • 2. Problemas Cabeçalho, rodapé, índice,... ● Tempo de execução com ● grandes relatórios Complexidade para manutenção ● Falta de flexibilidade ●
  • 6. Instalação sudo add-apt-repository "deb http://archive.canonical.com/ natty partner" sudo apt-get update sudo apt-get install sun-java6-plugin
  • 7. Java no PHP Todos os jars do JavaBridge são adicionados no java.class.path, separados por ponto e vírgula ( ; ) ao iniciar a virtualmachine O uso de classes Java é simples: <?php $string = new Java("java.lang.String", $sou_uma_string)); ?>
  • 8. Simplificando... “A necessidade do simples e a sua aquiescência gera o complicado que por sua vez, passa-se por simples em uma corrente contínua de aprendizado.” Autor desconhecido
  • 9. Exemplo de código <?php require_once 'libs/funcoes.class.php'; $db = new SQLite3('arquivos/banco.sqlite'); $result = $db->query('SELECT * FROM teste') or die('Ocorreu um erro!'); $retorno = ''; while ($row = $result->fetchArray(SQLITE3_ASSOC)) $retorno.= funcoes::parseRegistroToXml($row)."n"; $xml = funcoes::getXmlHeader('relatorio')."<relatorio>$retorno</relatorio>"; define ('JAVA_HOSTS', '127.0.0.1:9080'); require_once 'libs/JasperReports/JasperReports.class.php'; $jasperReport = new JasperReports(); $jasperReport->setJasperFile('arquivos/report1.jasper'); $jasperReport->setXML($xml, '/relatorio/record'); $jasperReport->setParameter('IMAGEM_01', 'img/jasper.gif'); $jasperReport->setParameter('IMAGEM_02', 'img/php.png'); $jasperReport->setParameter('IMAGEM_03', 'img/charge_01.jpg'); $jasperReport->downloadPdf('teste.pdf'); ?>
  • 10. <?php function romans10_9(){ <?php if($jesus == 'Lord') function romans10_9(){ $you = 'saved'; if($jesus == 'Lord') else $you = 'saved'; $you = 'lost'; else return $you; $you = 'lost'; } return $you; ?> } ?> <?php <?php function romans10_9(){ if($jesus == 'Lord') function romans10_9(){ $you = 'saved'; FIM!!! else if($jesus == 'Lord') $you = 'lost'; return $you; $you = 'saved'; } ?> else $you = 'lost'; <?php return $you; function romans10_9(){ } ?> if($jesus == 'Lord') $you = 'saved'; else <?php function romans10_9(){ $you = 'lost'; if($jesus == 'Lord') $you = 'saved'; else return $you; $you = 'lost'; return $you; } } ?> ?>
  • 11. Links - Contato <?php echo " Vitor Mattos vitor.mattos@phprio.org http://jasperforge.org/ http://php-java-bridge.sourceforge.net/ https://github.com/vitormattos/phpJasperPrint http://www.slideshare.com/vitormattosrj"; ?>