我遇到与[JasperReport parameters works in iReport but fails on JasperServer]帖子中描述的问题非常类似的问题。
报告使用预览选项在 iReport 环境中正常运行,但在 JasperReports服务器
中失败评论表明 iReport 不会在 JR服务器中创建 InputControl 。所以我验证了服务器包含正确的 InputControl (显然解决了他们的问题)。
输入控件名为 sk serial selection :
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 (使用字母数字序列号列表填充inpute控件,项目是唯一的):
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 中进一步调试报告执行?
兼容模式是否容易导致该问题?
输入参数类型怎么样?我使用返回字符串的查询。但是我的输入数据类型是 text (与字符串最匹配)。我的参数类型是 java.lang.string 。这有意义吗?
答案 0 :(得分:0)
实际上这是一个简单的错误:
我刚刚发现:
value column: id
应该是
value column: serialnr
但是,我不明白为什么报告在预览模式下工作?这个大错误会在预览时失败吗?
无论如何,感谢大家导致我的错误;)
答案 1 :(得分:0)
在我看来,jasper报告中有两种类型的参数,包括:Report parameter和Dataset Paramter。
首先,您必须创建两个参数,然后将数据集中的一个映射到报告。
我遇到了同样的问题因此解决了我的问题。