我有一个与[JasperReport parameters works in iReport but failed on JasperServer]帖子中描述的问题非常相似的问题。
该报告使用预览选项在iReport环境中正常工作,但在JasperReports Server中失败
评论表明iReport不会在JR Server中创建InputControl。所以我验证了服务器包含正确的InputControl(这显然解决了他们的问题)。
输入控件称为sk 串行选择:
ID: ic_sk_serial
Name: sk serial selection
Type: Single Select Query
Mandatory: false
Read Only: false
Visible: true
Query resource:
From repository (pointing to *q_sk_serial* see below)
Value and Visible columns:
Value column: id
Visible query columns: serialnr
名为q_sk_serial的输入控件查询(使用字母数字序列号列表填充输入控件,项目是唯一的):
select id,serialnr from "public"."serials" order by serialnr;
参数名称:
ic_sk_serial
报告查询:
select * from "public"."datas" datas where datas."serialnr" like $P{ic_sk_serial}
就我而言,输入控件似乎在两种环境中都能正常工作(在iReport预览和JasperServer中):我填充了来自同一数据库的项目列表;我在iReport中看到了该下拉列表,但在JR Server中也看到了。
在iReport中,下拉列表会在报告参数中返回正确的选定值,从而生成正确的报告。在JasperReports Server中,我只收到“报告为空”消息。所以我倾向于认为报告参数没有在JasperServer中正确传递。
硬编码“输入控制”输出值,显示预期报告。
旁注:我在与JasperReports Server 4.5.0兼容的模式下使用iReport 4.7.1。
我很高兴听到有人遇到同样的问题吗?
如何在JR Server中进一步调试报告执行?
兼容模式是否容易导致该问题?
输入参数类型呢?我使用返回字符串的查询。但是我的输入数据类型是文本(与字符串最接近)。我的参数类型是java.lang.string。这有意义吗?