【问题标题】:Set value of an input control using JasperReports Web Services使用 JasperReports Web 服务设置输入控件的值
【发布时间】:2013-06-12 03:47:19
【问题描述】:

我正在使用 JasperReports 服务器 Web 服务通过 php curl 检索 PDF 格式的报告。

很遗憾,我要生成的报告使用一个值作为输入控件

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

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

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

【问题讨论】:

    标签: php curl jasper-reports jasperserver


    【解决方案1】:

    您可以考虑使用新的运行报告机制(“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 wrapper 使这些请求更简单可能对您有所帮助。

    上面的例子可以这样实现:

    $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 到文件,流到浏览器进行下载...等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多