润乾报表 报表组使用 api 相关接口实现动态添加报表项

 

问题描述:
客户希望能动态增加报表组的报表项,实现在不同条件下对不同报表的一次性导出。

解决方法:
可以通过报表组的相关 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);