【问题标题】:default parameter values work in iReport but not on JasperServer默认参数值在 iReport 中有效,但在 JasperServer 上无效
【发布时间】:2012-03-29 06:06:55
【问题描述】:

首先让我说我的问题与已经在 SO 上的一些类似问题略有不同,或者至少不同到足以使其他答案对我没有帮助。例如。,: JasperReport parameters works in iReport but fails on JasperServer 处理时间戳问题的其他人也对我没有帮助。

我是 JasperReports 的新手。上面链接的问题通过在 iReport 中的报表定义中添加输入控件来解决,然后将其导出到 JasperServer。这对我来说很好。

我的问题是一个带有时间戳参数和输入控件的查询的报告。我已为参数分配了 java.sql.Timestamp(0) 的默认值。当我打开 iReport 并使用“在 JasperServer 上运行”选项生成报告时,一切正常,输入控件显示为正确的默认值。但是,如果我从浏览器连接运行相同的报告,则默认值不起作用。控件显示为某个日期的默认值,我认为是 1969 年。输入控件仍然有效,可以输入一个值并且报表运行正常,但是浏览器输入控件没有获得默认值。

我怀疑问题可能会出现,因为输入控件被定义为具有日期时间的数据类型,而不是时间戳。但是,如果是这种情况,我无法弄清楚为什么默认设置在 iReport 的输入控件中可以正常工作,但在从浏览器运行报表时却不行。我读过各种帖子,有人说 JasperServer 在 3.5 版之前不支持 java.sql.Timestamp。我正在使用最新版本,但我仍然无法弄清楚如何将时间戳类型添加到服务器存储库(或者是否有必要,因为除了我的默认值问题之外,日期时间类型似乎可以正常工作)。

【问题讨论】:

  • 您希望将什么值作为默认值?显然 JasperServer 对应的是 0 到 1969 的默认值。你到底想要它是什么?
  • 谢谢,希望当前日期为默认值。我的主要问题是 JasperServer 处理它的方式与 iReport 不同。可能是我自己对 Java 和 JasperServer 的缺乏经验造成了问题。我使用用于输入控制提示的日期参数进行了更好的设置,但使用具有访问日期控制输入的默认表达式的字符串参数(带有'isForPrompting =“false”)进行查询。在 iReport 和带有 JasperServer 的浏览器中都能正常工作。

标签: java jasper-reports ireport jasperserver


【解决方案1】:

默认为当前日期,您可以在 Ireport 中使用此功能

  new java.util.Date()

它为您提供当前日期,并且我已经测试它也适用于 Jasper 服务器浏览器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多