1

我正在使用 JasperReports 服务器 Web 服务使用 php curl 将报告检索为 PDF。

不幸的是,我要生成的报告使用一个值作为输入控件

如果我不为此输入控件提供值,我的报告会工作,但每个值都是 0。

根据官方指南:JasperReports Server Web Services Guide page 24,它说我应该在 URL 中使用IC_GET_QUERY_DATA参数,所以我这样做并提供了数据源的 URI,然后我使用P_param_name来提供参数的值,但是我无法让它工作,似乎报告没有使用这些值。

提前感谢您提供任何可能有帮助的评论!

4

1 回答 1

0

您可以考虑使用新的运行报告机制(“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 到文件,流到浏览器进行下载......等)。

于 2013-06-11T19:47:19.660 回答