问题描述:
客户希望能动态增加报表组的报表项,实现在不同条件下对不同报表的一次性导出。
解决方法:
可以通过报表组的相关api接口实现报表组的动态编辑报表项
报表组编辑主要包括配置报表组中的报表源、设置报表组中的报表项、保存报表组、计算报表组中的报表。
报表源可以理解为设计器下图的设置:
报表项可以理解为设计器下图的设置:
主要代码如下:
//新建一个子报表1
SubReportConfig subReportConfig1=new SubReportConfig();
subReportConfig1.setName("report3"); //设子报表逻辑名
subReportConfig1.setURLType(SubReportConfig.TYPE_RELATIVE); //设置子报表的url类型,值为“TYPE_RELATIVE”表示相对路径,值为 “TYPE_ABSOLUTE”表示绝对路径,值为 “TYPE_URL”表示为路径为URL,值为 “TYPE_CUSTOM”表示为自定义路径
subReportConfig1.setURL("cc.rpx"); //设置子报表的url
SubReportMetaData srm = rg.getReportMetaData(); //定义报表组的元数据信息对象
srm.addSubReportConfig(subReportConfig1);//增加一个子报表配置信息对象
rg.setReportMetaData(srm);
//配置报表项
ReportGroupItem reportGroupItem1 = new ReportGroupItem(); //新建一个报表项1
reportGroupItem1.setTitle("sheet3"); //设置报表sheet名称
reportGroupItem1.setHtmlId("item3"); //设置逻辑名称
reportGroupItem1.setName("report3"); //设置对应的报表源,在SubReportMetaData中增加了报表源,报表源的逻辑名为:report3
rg.addItem(reportGroupItem1); //把报表项添加到报表组中
//保存报表组
ReportGroup.write("d:/test1.rpg", rg);
//报表组计算引擎
GroupEngine groupEngine = new GroupEngine(rg,cxt);
//导出类设置
IdeReportExporter re1 = new IdeReportExporter("D:/test.pdf",(byte) (ReportExporter.EXPORT_PDF),null);
re1.exportReportGroup(groupEngine);
客户希望能动态增加报表组的报表项,实现在不同条件下对不同报表的一次性导出。
解决方法:
可以通过报表组的相关api接口实现报表组的动态编辑报表项
报表组编辑主要包括配置报表组中的报表源、设置报表组中的报表项、保存报表组、计算报表组中的报表。
报表源可以理解为设计器下图的设置:
报表项可以理解为设计器下图的设置:
主要代码如下:
//新建一个子报表1
SubReportConfig subReportConfig1=new SubReportConfig();
subReportConfig1.setName("report3"); //设子报表逻辑名
subReportConfig1.setURLType(SubReportConfig.TYPE_RELATIVE); //设置子报表的url类型,值为“TYPE_RELATIVE”表示相对路径,值为 “TYPE_ABSOLUTE”表示绝对路径,值为 “TYPE_URL”表示为路径为URL,值为 “TYPE_CUSTOM”表示为自定义路径
subReportConfig1.setURL("cc.rpx"); //设置子报表的url
SubReportMetaData srm = rg.getReportMetaData(); //定义报表组的元数据信息对象
srm.addSubReportConfig(subReportConfig1);//增加一个子报表配置信息对象
rg.setReportMetaData(srm);
//配置报表项
ReportGroupItem reportGroupItem1 = new ReportGroupItem(); //新建一个报表项1
reportGroupItem1.setTitle("sheet3"); //设置报表sheet名称
reportGroupItem1.setHtmlId("item3"); //设置逻辑名称
reportGroupItem1.setName("report3"); //设置对应的报表源,在SubReportMetaData中增加了报表源,报表源的逻辑名为:report3
rg.addItem(reportGroupItem1); //把报表项添加到报表组中
//保存报表组
ReportGroup.write("d:/test1.rpg", rg);
//报表组计算引擎
GroupEngine groupEngine = new GroupEngine(rg,cxt);
//导出类设置
IdeReportExporter re1 = new IdeReportExporter("D:/test.pdf",(byte) (ReportExporter.EXPORT_PDF),null);
re1.exportReportGroup(groupEngine);