【发布时间】: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