jasperphp错误传递参数

时间:2015-04-10 00:23:41

标签: php jasper-reports jasper-plugin

在jasper报告中,我有一个像这样的SQL语句:

SELECT * FROM table $P!{my_where}

在我的php程序中,我用这种方式调用报告:

    JasperPHP::process(
        base_path() . '/app/reports/report.jasper', 
        false,
        array("pdf"),
        array("my_where" => "WHERE field = value"),
        \Config::get('database.connections.mysql')
        )->execute();

然后,这是错误消息:

  

错误的报告参数格式!

以简单的方式做到这一点,我的意思是:

在报告中:

SELECT * FROM table WHERE $P!{field} = $P{value}

在PHP中:

    JasperPHP::process(
        base_path() . '/app/reports/report.jasper', 
        false,
        array("pdf"),
        array("field" => $my_field, "value" => $my_value),
        \Config::get('database.connections.mysql')
        )->execute();

问题是,我需要从几个字段动态构建一个where子句,因此,只传递一个“where”参数。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

解决:只需要双引号参数:

$my_where = '"' .  $my_where . '"';

JasperPHP::process(
    base_path() . '/app/reports/report.jasper', 
    false,
    array("pdf"),
    array("my_where" => $my_where),
    \Config::get('database.connections.mysql')
    )->execute();