【问题标题】:JasperReports parameters works in iReport but fails on JasperReports Server (II)JasperReports 参数在 iReport 中有效,但在 JasperReports Server (II) 上失败
【发布时间】: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


【解决方案1】:

其实这是一个简单的bug:

我刚刚发现:

value column: id  

应该是

value column: serialnr  

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多