有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将对象传递给jrxml,并将对象传递给其子报表

我需要向jrxml文件传递一个对象和一个列表。我正在JRBeanCollectionDataSource的参数映射和列表中发送对象。我需要将对象发送到子报表。 1.我应该为对象使用什么类(因为它不是基本数据类型,而是用户定义的数据类型)。目前我已经使用了java。lang.Object。 2.在我看到的大多数示例中,列表或地图都发送到子报告。我需要传递对象

HashMap<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("json", taxYearReportBean.getTaxYearBean());
jasperPrint = JasperFillManager.fillReport(path, parameterMap, new JRBeanCollectionDataSource(taxYearReportBean.getSmallIssList()));
jp.add(jasperPrint);

类别:

public class TaxYearBean{
Date startDate;
Date endDate;
String method;
List<LimitationBean> limitationList = new ArrayList<LimitationBean>();

public Date getStartDate() {
    return startDate;
}
public void setStartDate(Date startDate) {
    this.startDate = startDate;
}
public Date getEndDate() {
    return endDate;
}
public void setEndDate(Date endDate) {
    this.endDate = endDate;
}
public String getMethod() {
    return method;
}
public void setMethod(String method) {
    this.method = method;
}
public List<LimitationBean> getLimitationList() {
    return limitationList;
}
public void setLimitationList(List<LimitationBean> limitationList) {
    this.limitationList = limitationList;
}
}

共 (2) 个答案

  1. # 1 楼答案

    您可以将对象数据作为数据源发送到JRXML。 此外,如果列表也应作为数据源发送到JRXML

    首先设计iReport以接受对象作为数据源:
    1) 在iReport的类路径中添加项目“src”
    2) 指定对象包。JRXML报表数据源中的类名
    3) 使用对象参数映射文本字段

    现在在源代码中,使用“JRBeanCollectionDataSource”类发送“JasperFillManager.fillReport()”中的对象列表以进行连接

    希望这有帮助

  2. # 2 楼答案

    主报表必须具有列表或集合类型的字段。 必须在运行时填写此字段 子报表必须具有以下数据源:表达式JRBeanCollectionDataSource(您的字段名)、连接类型:使用数据源表达式、子报表表达式:您的参数。 将编译的子报表传递到此参数