【发布时间】:2015-09-28 23:58:39
【问题描述】:
我有一个与[JasperReport parameters works in iReport but fails on JasperServer] 帖子中描述的问题非常相似的问题。
报告在 iReport 环境中使用 Preview 选项正常工作,但在 JasperReports Server
中失败cmets 建议 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 中看到了 dropdownlist,在 JR Server 中也看到了。
在iReport 中,下拉列表会在报告参数中返回正确的选定值,从而生成正确的报告。在 JasperReports Server 中,我只收到 “报告为空” 消息。所以我倾向于认为报告参数在JasperServer中没有正确传递。
硬编码“输入控制”输出值,显示预期报告。
旁注:我在与 JasperReports Server 4.5.0 兼容的模式下使用 iReport 4.7.1。
如果有人遇到同样的问题,我会很高兴知道吗?
如何进一步调试JR Server 中的报表执行?
兼容模式是否容易导致该问题?
输入参数类型呢?我使用返回 string 的查询。但是我的输入数据类型是 text (与字符串最接近的匹配)。我的参数类型是java.lang.string。这有意义吗?
【问题讨论】:
-
"输入控件似乎在两种环境中都能正常工作" iReport 中不存在输入控件。因此不清楚你的意思是什么。
-
您没有给出任何关于您是否看到错误的指示。如果这样做,您会看到什么错误?也许从 Tomcat 的 catalina.out 日志文件开始。
-
@mdahlman:关于输入控件:在 iReport 中,您可以在存储库中添加输入控件资源(右键单击任何文件夹),这就是我所做的。您也可以从 JasperReport Server Web 界面获得同样的可能性。两者都为我工作:输入控件已创建并以正确的内容显示在屏幕上。关于错误:我只收到消息“报告为空”。然而,硬编码所选值会返回我期望的数据。
-
TocToc,您是否将这些输入控件定义为 iReport 中报表中的参数?当您右键单击并在存储库中添加输入控件时,您实际上是将它们添加到 JasperReports Server,而不是 iReport。
-
我明白了。是的,您可以使用 JRS 或 iR 创建输入控件。无论哪种情况,它都存在于 JRS 中。显然它不起作用。参数是否与输入控件匹配(区分大小写)?发布您的参数化查询。
标签: jasper-reports jasperserver