Java JasperReports中类型列表的处理字段
我正在使用JasperReports和Java。在报表定义中,我希望访问属于作为报表数据源提供的主要对象列表的对象字段 我有以下两个Java类:Java JasperReports中类型列表的处理字段,java,jasper-reports,javabeans,Java,Jasper Reports,Javabeans,我正在使用JasperReports和Java。在报表定义中,我希望访问属于作为报表数据源提供的主要对象列表的对象字段 我有以下两个Java类: public class NestedDto { private Long id; private String title; // public getter methods } 及 公共类维护到{ 私人长id; 私有列表嵌套对象; //公共getter方法 } jasper报告使用JRBeanCollectionData
public class NestedDto {
private Long id;
private String title;
// public getter methods
}
及
公共类维护到{
私人长id;
私有列表嵌套对象;
//公共getter方法
}
jasper报告使用JRBeanCollectionDataSource
获取MainDto对象列表作为其数据源。
在我的报告定义中,我希望访问NestedTo对象的字段。
我的研究表明,我可以通过在Jaspersoft Studio中导入nestedTo类型来实现这一点,即导入nestedTo.class文件。之后,我可以将列表的对象强制转换为NestedTo,然后我可以访问字段
我们的团队成员没有访问Java代码的权限。他们需要依赖于我们DTO类的接口文档。
有没有什么方法可以不用导入Java类就可以做到这一点?
是否有可能基于字段
嵌套对象创建一个新的JRBeanCollectionDataSource
?是否有任何方法可以做到这一点,而无需导入Java类?
-您是否需要访问Java对象的字段(借助getter)而无需在类路径上使用该类?是的,准确地说。我们不想向报表设计器提供.class文件。我曾使用过一种方法来解决类似的问题,即创建一种新类型的平面对象,该对象包含所有嵌套字段和父对象字段(并为每个嵌套到实例化一个),然后将其添加为JRBeanCollectionDataSource。这样,报表中的每一行都对应于每个嵌套对象,但父对象字段仍然可用。@ChristianMeier另一种方法是使用另一种类型的数据源,例如json文件的csv。可以使用此类模拟设计/创建模板data@AlexK丹·托瑞:谢谢你的建议!这些正是我一直在寻找的想法。有没有什么方法可以不用导入Java类就可以做到这一点?
-你需要访问Java对象的字段(借助getter)而不用在类路径上使用这个类吗?是的,没错。我们不想向报表设计器提供.class文件。我曾使用过一种方法来解决类似的问题,即创建一种新类型的平面对象,该对象包含所有嵌套字段和父对象字段(并为每个嵌套到实例化一个),然后将其添加为JRBeanCollectionDataSource。这样,报表中的每一行都对应于每个嵌套对象,但父对象字段仍然可用。@ChristianMeier另一种方法是使用另一种类型的数据源,例如json文件的csv。可以使用此类模拟设计/创建模板data@AlexK丹·托瑞:谢谢你的建议!这些正是我想要的想法。
public class MainDto {
private Long id;
private List<NestedDto> nestedObjects;
// public getter methods
}