【问题标题】:Using java.time.LocalDate in a field with Jasper Report在 Jasper Report 的字段中使用 java.time.LocalDate
【发布时间】:2016-08-20 15:04:29
【问题描述】:

我有一个在 NetBeans 8.1 中使用 iReport 和 JasperReport 5.5.0 版插件开发的应用程序。在我的应用程序中,我有一个带有JRBeanCollectionDataSource 的碧玉报告。

LocalDate dateFrom = jDateChooser1.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate dateUntil = jDateChooser2.getDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
List<Registru> regs = db.getRegistreFrom(dateFrom, dateUntil);

Map<String, Object> params = new HashMap<>();
String absolutePath = "....\\rapoarte\\";
params.put("SUBREPORT_DIR", absolutePath);
InputStream in = getClass().getResourceAsStream("/rapoarte/registreListare.jasper");
JasperPrint jp = JasperFillManager.fillReport(in, params, new JRBeanCollectionDataSource(regs,false));

// ... code here

JRBeanCollectionDataSource 接受从数据库返回的报表类列表的参数

public class Registru {
   private int id;
   private int nrReg;
   private LocalDate date;
   // ... getters and setters
}

问题是报告中的字段是:

<field name="id" class="java.lang.Integer"/>
<field name="nrReg" class="java.lang.Integer"/>
<field name="date" class="java.time.LocalDate"/>

但是当我编译它时,它给了我一个错误

java.time.LocalDate 无法解析为类型

只有当我输入&lt;field name="date class="java.lang.Object"/&gt; 时它才有效,但我无法格式化日期。

我想格式化"dd-MM-yyyy" 模式的日期。 我必须在 jasper 的类路径中添加一些东西吗?

【问题讨论】:

  • 我放弃在netbeans中使用jasper报告插件,开始使用JasperStudio来创建和编译jrxml文件。但是在 NetBeans 下处理所有文件很容易。

标签: java jasper-reports


【解决方案1】:

此问题与您正在使用的 JTD 编译器(jrxml 的编译器)有关。

您需要最新版本的 Eclipse Java 编译器 (ecj) 才能使用 java-8,请查看 jasper-distribution

要在java.time.LocalDatejava.time.LocalDateTime 上使用模式,请参阅此question 了解更多信息

【讨论】:

  • 我正在使用带有以下插件的 Netbeans 8.1:iReport-5.5.0.nbm、jasperserver-plugin-5.5.0.nbm、jasperreports-components-plugin-5.5.0.nbm。如何更改 Java 编译器?谢谢
  • 检查您当前使用的JDT编译器搜索ecj或Jdt-compiler,基本上从类路径中删除旧的并将新的ejc设置为类路径。但是我的建议是不要使用插件(我使用安装的 iReport 或 JasperSoft Studio)以避免插件问题。
猜你喜欢
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多