您可以使用两个或多个参数从php调用ireport吗?

时间:2019-04-16 18:43:49

标签: php ireport

我正在使用php和ireport生成一个有效的报告,但是我只能发送一个参数。我想发送多个参数,以便在MySQL中创建更好的查询。

这是我的代码,使用php仅将一个参数发送到ireport:

我的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)) 
            {       
            }
        }
    }
?>

以下是使用我发送的参数$P{Folio}在ireport中进行的查询:

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

使用此代码,我只能提交一个参数。我不知道如何修改此参数以将多个参数发送给ireport。

我希望这个解释很清楚。问候

1 个答案:

答案 0 :(得分:1)

您可以使用&做类似的事情...

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

然后在您的PHP文件中输入类似...

$otherVar = $_GET["OtherVariable"]

此外,使用post会更安全,并且可以在post调用中添加多个参数(其他变量),而不会在请求URL中不安全地显示它们。