当前位置: 首页 > 知识库问答 >
问题:

在Jasper报表的字段中使用java.time.LocalDate

呼延聪
2023-03-14
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"/>

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

只有当我放入 但无法格式化日期时,它才会工作。

我想格式化模式“dd-mm-yyyy”的日期。我必须向Jasper的类路径添加一些东西吗?

共有1个答案

毛博
2023-03-14

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

您需要最近版本的Eclipse Java编译器(ecj)才能使用java-8,请检查Jasper-distribution。

要在java.time.localdatejava.time.localdateTime上使用模式,请参见此问题以获得更多信息

 类似资料:
  • 当我从SourceForge网站下载JasperReports项目时,我创建JavaFx项目,我需要使用JasperReports库创建发票设计。提取的文件夹不包含dist文件夹,该文件夹包含构建发票设计所需的jar文件。文件夹包含这个文件夹,这里有什么问题“我是JasperReports的新手”

  • 要求:开发10个报告和导航到每个报告时,点击超链接放置在导航菜单上。 当导出到excel时,每个子报表都应该放在单独的excel表中,excel列分段应该与报表列相匹配。完成了90%的工作。 只剩下excel分段问题。

  • 当我将jasper报表导出到CSV文件时,如果一个文本字段包含新的行字符,CSV中的记录将用两行表示,而不是一行。在jasper报告中有什么设置可以忽略文本字段中出现的新行字符吗?我们使用iReport来设计jasper报表。任何形式的帮助都是感激的。谢谢

  • 我非常熟悉jasperstudio 6.3.0,并且能够毫无问题地从java运行其他报告。效果很好。但是,我无法运行包含子报表的报表。我在这里找到了stackoverflow的解决方案,但仍然无法使其工作。在我的解决方案中,我将报告加载到一个表中进行存储,并从数据库中提取子报告和主报告,然后编译jrxml。到那时一切都很好 网旧金山。jasperreports。发动机JREException:在以

  • 场景:我有一个jasper报告,在详细信息带内有多个文本字段。每个文本字段都具有以下属性: 位置:浮动 伸展类型:相对于最高对象 详细信息溢出时打印:false 溢出伸展:true null 问题:我希望所有的文本字段能够延伸在下一页以及。如果我使用属性'print When Detail overflows:true',那么这将导致文本字段“重印”,数据重复。那不是我的本意。我希望能够将文本字段

  • 使用text field value editor我将一个带有条件的文本添加到文本字段中(注意if是使用JasperSoft studio的字段编辑器构造的,所以if(...)代码是自动生成的,我只给出了值“pippo”和“pluto”)