Можете ли вы вызвать ireport из php с двумя или более параметрами? - PullRequest
0 голосов
/ 16 апреля 2019

Я создаю отчет с php и ireport, который работает, но я могу отправить только один параметр.Я хотел бы отправить более одного параметра для создания лучшего запроса в MySQL.

Вот мой код для отправки только одного параметра в ireport с помощью php:

Моя функция javascript

  window.open("../Report1.php?Folio=" + folio);
<?php
$Folio=$_GET["Folio"];
   function DescargarArchivo($fichero)
    {
        $basefichero = basename($fichero);
        header( "Content-Type: application/octet-stream");
        header( "Content-Length: ".filesize($fichero));
        header( "Content-Disposition:attachment;filename=" .$basefichero."");
        readfile($fichero);
    }

    $fecha = time ();
    $fecha_partir1=date ( "h" , $fecha ) ;
    $fecha_partir2=date ( "i" , $fecha ) ;
    $fecha_partir4=date ( "s" , $fecha ) ;
    $fecha_partir3=$fecha_partir1-1;
    $reporte="CC_";
    $filename = $reporte.''. $Folio.'.pdf';

    require_once('http://localhost:9977/JavaBridge/java/Java.inc');
    require('php-jru/php-jru.php');

    $jru=new PJRU();
     $Reporte='/var/www/html/ireportFile.jasper';
    //save file
    $SalidaReporte='/var/www/html/'.$filename;

    //here I declare paramenres
    $Parametro=new java('java.util.HashMap');
    $Parametro->put("Folio", $Folio);

    //mysql
    $Conexion= new  JdbcConnection("com.mysql.jdbc.Driver","jdbc:mysql://localhost/Ignisterra?zeroDateTimeBehavior=convertToNull","local","local");

    $jru->runReportToPdfFile($Reporte,$SalidaReporte,$Parametro,$Conexion->getConnection());
    if(file_exists($SalidaReporte)) 
    {   
        DescargarArchivo($filename);
        if(file_exists($SalidaReporte)) 
        { 
            if(unlink($filename)) 
            {       
            }
        }
    }
?>

Вот запрос в ireport с использованием параметра $P{Folio}, который я отправил:

SELECT * FROM TBL_1 WHERE ID = $P{Folio};

С этим кодом я могу передать только один параметр.Я не знаю, как изменить это, чтобы отправить более одного параметра в ireport.

Надеюсь, это объяснение достаточно ясное.Привет

1 Ответ

1 голос
/ 16 апреля 2019

Вы можете использовать &, чтобы сделать что-то подобное ...

window.open("../Report1.php?Folio=" + folio + "&OtherVariable=" + otherVariable);

затем в вашем PHP-файле произнесите что-то вроде ...

$otherVar = $_GET["OtherVariable"]

Кроме того, использование post будет более безопасным, и вы сможете добавить несколько параметров (дополнительных переменных) к вашему вызову post, не делая их небезопасными в URL запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...