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";
?>

JasperReports

  • 1.
  • 2.
    Problemas Cabeçalho, rodapé, índice,... ● Tempode execução com ● grandes relatórios Complexidade para manutenção ● Falta de flexibilidade ●
  • 3.
  • 4.
  • 5.
  • 6.
    Instalação sudo add-apt-repository "debhttp://archive.canonical.com/ natty partner" sudo apt-get update sudo apt-get install sun-java6-plugin
  • 7.
    Java no PHP Todosos 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 dosimples 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"; ?>