我需要将对象和列表传递给jrxml文件。我在JRBeanCollectionDataSource中的参数map和list中发送对象。我需要将对象发送到子报告。 1.我应该为对象使用什么类(因为它不是原始数据类型,而是用户定义的类)。目前我使用了java.lang.Object。 2.在我看到的大多数例子中,List或Map都被发送到子报告。我需要传递Object。
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;
}
}
答案 0 :(得分:0)
您的主报告必须包含List或集合类型的字段。 必须在运行时填写此字段 您的子报告必须具有数据源:Expression JRBeanCollectionDataSource(您的字段名称),连接类型:使用数据源表达式,Subrepot Expression:您的参数。 Passe将子报告报告编译为此参数。
答案 1 :(得分:0)
您可以将对象数据作为数据源发送到JRXML。 此外,如果List也应作为数据源发送到JRXML。
首先设计iReport以接受Object作为数据源:
1)在iReport的class-path中添加项目“src”
2)在JRXML报告数据源中指定对象package.className
3)使用Object参数映射TextFields。
现在在源代码中,使用“JRBeanCollectionDataSource”类在“JasperFillManager.fillReport()”中为Connection发送对象列表。
希望这有帮助。