0

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

4

2 回答 2

0

其实这是一个简单的错误:

我刚刚发现:

value column: id  

应该

value column: serialnr  

不过,我不明白为什么报告在预览模式下工作?这么大的错误应该不会在预览上失败吧?

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

于 2012-10-26T13:35:38.007 回答
0

在我看来,jasper 报告中有两种类型的参数,包括:报告参数和数据集参数。

首先,您必须创建两个参数,然后将 Dataset 的一个映射到 Report 的一个。

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

于 2015-09-28T15:58:39.967 回答