diff --git a/README.md b/README.md index d22c219f..ce682a86 100644 --- a/README.md +++ b/README.md @@ -110,64 +110,61 @@ See more blog, forum and coming soon report template store in https://jasperphp. # Generic sample ```php -* @version 2015.03.11 -* @access restrict -* -* 2015.03.11 -- create -**/ -class TJasper -{ + * classe TJasper + * + * @author Rogerio Muniz de Castro + * @version 2018.10.15 + * @access restrict + * + * 2015.03.11 -- create + * 2018.10.15 -- revision and internationalize, add TLogger classes + * */ +class TJasper { + private $report; private $type; + private $param; /** - * method __construct() - * - * @param $jrxml = a source xmlr filename - * @param $param = a array whith params - */ - public function __construct($jrxml,array $param) - { - $xmlFile= $jrxml; - $this->type = (array_key_exists('type',$param))?$param['type']:'pdf'; - error_reporting(0); - switch ($this->type) - { - case 'pdf': - $this->report =new JasperPHP\Report($xmlFile,$param); - JasperPHP\Pdf::prepare($this->report); + * method __construct() + * + * @param $jrxml = a jrxml file name + * @param $param = a array with params to use into jrxml report + */ + public function __construct($jrxml, array $param) { + $GLOBALS['reports'] = array(); + $xmlFile = $jrxml; + $this->type = (array_key_exists('type', $param)) ? $param['type'] : 'pdf'; + //error_reporting(0); + $this->param = $param; + $this->report = new JasperPHP\Report($xmlFile, $param); // $GLOBALS['reports'][$xmlFile]; + switch ($this->type) { + case 'pdf': + JasperPHP\Instructions::prepare($this->report); break; case 'xls': - JasperPHP\Excel::prepare(); - $this->report =new JasperPHP\Report2XLS($xmlFile,$param); - + JasperPHP\Instructions::setProcessor('\JasperPHP\XlsProcessor'); + JasperPHP\Instructions::prepare($this->report); break; } } - - /** - * method outpage() - * - * @param $type = a type of output. ALERT: xls is experimental - */ - public function outpage($type='pdf'){ + public function outpage($type = 'pdf') { $this->report->generate(); $this->report->out(); - switch ($this->type) - { + switch ($this->type) { case 'pdf': - $pdf = JasperPHP\Pdf::get(); - $pdf->Output('Relatorio.pdf',"I"); + $pdf = JasperPHP\Instructions::get(); + $pdf->Output('report.pdf', "I"); break; case 'xls': header('Content-Type: application/vnd.ms-excel'); @@ -176,33 +173,32 @@ class TJasper // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed - header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past - header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified - header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 - header ('Pragma: public'); // HTTP/1.0 - $objWriter = PHPExcel_IOFactory::createWriter($this->report->wb, 'Excel5'); + header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified + header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 + header('Pragma: public'); // HTTP/1.0 + $objWriter = PHPExcel_IOFactory::createWriter(JasperPHP\Instructions::$objOutPut, 'Excel5'); $objWriter->save('php://output'); - break; + break; } - } - /** - * method setVariable() - * insert variable into report after output - * - * @param $name = name of variable - * @param $value = value of variable - */ - public function setVariable($name,$value){ - $this->report->arrayVariable[$name]['initialValue'] = $value ; + + public function setVariable($name, $value) { + $this->report->arrayVariable[$name]['initialValue'] = $value; } + } -require('autoloader.php') ; -require('../../tecnickcom/tcpdf/tcpdf.php'); // point to tcpdf class previosly instaled , - // on composer instalation is not necessaty +require('autoloader.php'); +require('../../tecnickcom/tcpdf/tcpdf.php'); // point to tcpdf class previosly instaled , (probaly in composer instalations) +require('../../phpoffice/phpexcel/Classes/PHPExcel.php'); // point to tcpdf class previosly instaled , (probaly in composer instalations) +//require('../TCPDF/tcpdf.php'); // point to tcpdf class previosly instaled , (probaly in stand alone instalations) +// on production using composer instalation is not necessaty + +$report_name = isset($_GET['report']) ? $_GET['report'] : 'testReport.jrxml'; // sql into testReport.txt report do not select any table. TTransaction::open('dev'); -$jasper = new TJasper('template.jrxml',$_GET); +TTransaction::setLogger(new TLoggerHTML('log.html')); +$jasper = new TJasper($report_name, $_GET); $jasper->outpage(); ?>