我正在尝试使用 Jasper Reports 的 Java 程序。当我发现“日期”采用字符串格式并因此被排序时,报告的(据说)简单的“按降序排列日期”任务开始变得更加复杂,尽管是以错误的方式进行排序. 例子:
- 2012 年 3 月 26 日
- 2012 年 3 月 26 日
- 2012 年 8 月 11 日
- 2012 年 8 月 26 日
- 2011 年 10 月 26 日
我只能猜测 10/26/11 只是因为前面的 10 而放在底部。
我使用 iReport 3.0.0 查看了 Jasper 报告,发现以下内容:
- 字段下的相关日期(名称:DTEEFFEC)设置为字符串。
- textField 也设置为 String。
这不会产生任何错误,只会使按降序排列“日期”变得困难,如果不是不可能的话。
所以我做了以下事情:
- 保留 DTEEFFEC 原样(字符串)。
- 将 textField 从 Java.Lang.String 更改为 Java.Util.Date
在新字段表达式中添加了以下内容:
新的 SimpleDateFormat("MM-dd-yyyy").parse($F{DTEEFFEC}.toString())
在对我的问题进行一些研究后,我发现了那段代码。很多回应都是“有效”的,但对我来说并非如此。
Caused by: java.text.ParseException: Unparseable date: "03/26/2012"
这就是 Java 程序返回的内容。我尝试过修改字段和 textField(在字符串或日期值之间交替),但它完全给了我其他错误。
我可以帮忙吗?
谢谢。
其他信息:我正在使用 iReports 3.0.0 来修改 JRXML 文件,以及用于 Java 程序的 Eclipse。如果相信 Eclipse 下的引用库,我使用的是 JasperReports 3.5.2。整个东西在 Windows 7 上运行。