JasperReports参数在iReport中有效,但在JasperReports Server(II)上失败

时间:2012-10-23 15:20:20

标签: jasper-reports jasperserver

我遇到与[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 。这有意义吗?

2 个答案:

答案 0 :(得分:0)

实际上这是一个简单的错误:

我刚刚发现:

value column: id  

应该是

value column: serialnr  

但是,我不明白为什么报告在预览模式下工作?这个大错误会在预览时失败吗?

无论如何,感谢大家导致我的错误;)

答案 1 :(得分:0)

在我看来,jasper报告中有两种类型的参数,包括:Report parameter和Dataset Paramter。

首先,您必须创建两个参数,然后将数据集中的一个映射到报告。

我遇到了同样的问题因此解决了我的问题。