报表组给每个子报表加数据集

需求背景:

遇到过一个需求是在能否设置在报表组里添加数据集给子报表。

操作步骤:

这里用bean 方式发布报表组,然后在报表组的设置中获取到报表的配置信息后 再添加数据集的配置。

部分java代码如下:

com.geezn.report4.usermodel.Context ctx = new com.geezn.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设计

子报表1的效果图:

子报表2的效果图:

关键字: 报表组,增加数据集