Php 使用JasperReports Web服务设置输入控件的值
我正在使用JasperReports服务器Web服务,使用php curl检索PDF格式的报告 不幸的是,我要生成的报告使用了一个值作为输入控件 如果我没有为此输入控件提供值,则我的报告可以工作,但每个值都是0 根据官方指南:第24页,它说我应该在URL中使用IC_GET_QUERY_DATA参数,所以我这样做了,并提供了数据源的URI,然后我使用p_param_name提供参数值,但我无法让它工作,似乎报告没有使用这些值Php 使用JasperReports Web服务设置输入控件的值,php,curl,jasper-reports,jasperserver,Php,Curl,Jasper Reports,Jasperserver,我正在使用JasperReports服务器Web服务,使用php curl检索PDF格式的报告 不幸的是,我要生成的报告使用了一个值作为输入控件 如果我没有为此输入控件提供值,则我的报告可以工作,但每个值都是0 根据官方指南:第24页,它说我应该在URL中使用IC_GET_QUERY_DATA参数,所以我这样做了,并提供了数据源的URI,然后我使用p_param_name提供参数值,但我无法让它工作,似乎报告没有使用这些值 提前感谢您的任何意见,可能会有所帮助 > P>您可以考虑使用新的运行报表
提前感谢您的任何意见,可能会有所帮助 > P>您可以考虑使用新的运行报表机制(“RestV2服务”的一部分)。您可以将报表的输入控件作为URL中的查询项提供。多选输入可以根据需要进行多次定义 例如,如果您向http://[yourserver]:[port]/jasperserver/rest_v2/reports/uri/to/my_report.pdf发送GET请求,state=CA&state=OK&city=Sacramento 您将得到一份报告,其中州控制设置为“OK”和“CA”,城市控制设置为“Sacramento” 使用其余部分使这些请求更简单可能对您有所帮助 可以通过以下方式实现与上述相同的示例:
$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\u data
中,您可以随意使用它。(即:写入文件,流到浏览器下载…等)