在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”参数。
有什么想法吗?
答案 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();