您可以考虑使用新的运行报告机制(“RESTv2 服务”的一部分)。您可以为报表提供输入控件作为 URL 中的查询项。多选输入可以根据需要进行多次定义。
例如,如果您向 http://[yourserver]:[port]/jasperserver/rest_v2/reports/uri/to/my_report.pdf?state=CA&state=OK&city=Sacramento 发送 GET 请求
您将获得一份报告,其中州控制设置为“OK”和“CA”,而城市控制设置为“萨克拉门托”
使用 REST php 包装器使这些请求更简单可能对您有益。
与上面相同的示例可以这样实现:
$client = new JasperClient('yourserver', 'port', 'username', 'password', '/jasperserver');
$report_data = $client->runReport('/uri/to/my_report', 'pdf', null, null, array('state' => array('OK', 'CA'), 'city' => 'Sacramento'));
报告的二进制数据将存储在$report_data
其中,您可以随心所欲地使用它。(即:fwrite 到文件,流到浏览器进行下载......等)。