报表组给每个子报表加数据集
遇到过一个需求是在能否设置在报表组里添加数据集给子报表。
操作步骤:
这里用bean 方式发布报表组,然后在报表组的设置中获取到报表的配置信息后 再添加数据集的配置。
部分java代码如下:
com.runqian.report4.usermodel.Context ctx = new com.runqian.report4.usermodel.Context();
ReportGroup group = ReportUtils2.readReportGroup( report, ctx );
try {
group = ReportUtils2.readReportGroup(report, ctx);
int rdNum = group.getItemCount();
SubReportMetaData rmd = group.getReportMetaData();
SQLDataSetConfig dsc= new SQLDataSetConfig();
dsc.setDataSourceName(“demo”);
dsc.setSQL(“SELECT * FROM 客户 “);
dsc.setName(“ds3″);
for (int i = 0; i < rdNum; i++) {
SubReportConfig cfg1 = rmd.getSubReportConfig(i);
ReportDefine report1 = (ReportDefine) ReportUtils.getReport(cfg1.getURL());
DataSetMetaData dsmd= report1.getDataSetMetaData();
dsmd.addDataSetConfig(dsc);
report1.setDataSetMetaData(dsmd);
cfg1.setSubReportDefine(report1);
rmd.setSubReportConfig(i,cfg1);
group.setReportMetaData(rmd);
}
} catch (Exception e) {
e.printStackTrace();
}
详细代码请参考附件中groupBean.jsp。
效果图如下 :
子报表1的设计:
子报表2的设计:
子报表1的效果图:
子报表2的效果图: