报表组编辑

阅读(3520) 标签: 报表组,

说明:

报表组编辑主要包括配置报表组中的报表源、设置报表组中的报表项、计算报表组中的报表、保存报表组。

配置报表源

ReportGroup reportGroup = new ReportGroup();  //新建一个报表组对象

SubReportConfig subReportConfig=new SubReportConfig();  //新建一个子报表配置对象

subReportConfig.setName("REPORT1");  //设子报表逻辑名

subReportConfig.setURLType(TYPE_ABSOLUTE);  //设置子报表的url类型,值为“TYPE_RELATIVE”表示相对路径,值为 “TYPE_ABSOLUTE”表示绝对路径,值为 “TYPE_URL”表示为路径为URL,值为 “TYPE_CUSTOM”表示为自定义路径

subReportConfig.setURL("F:\\1.rpx");  //设置子报表的url

 

SubReportMetaData srm = new SubReportMetaData();   //定义报表组的元数据信息对象

srm.addSubReportConfig(subReportConfig1);   // 以绝对路径方式增加一个子报表配置信息对象

srm.addSubReportConfig(subReportConfig2);  // 以绝对路径方式增加第二个子报表配置信息对象

reportGroup.setReportMetaData(srm);    //设置报表组中元数据信息对象

reportGroup.setParamMetaData(pmd);    //设置参数元

设置报表项

ReportGroupItem reportGroupItem = new ReportGroupItem();   //新建一个报表项

reportGroupItem.setTitle("SHEET1");   //设置报表sheet名称

reportGroupItem.setHtmlId("ITEM1");     //设置逻辑名称

reportGroupItem.setName("REPORT1");  //设置对应的报表源,SubReportMetaData中增加了报表源,报表源的逻辑名为:REPORT1

reportGroupItem.setParams(paramNames,paramValues);  //设置参数列表

reportGroup.addItem(reportGroupItem);  //把报表项添加到报表组中

计算报表组中的报表

Context cxt = new Context();  //构建报表引擎计算环境

… //其它辅助代码,例如往报表引擎传递参数,传递数据库连接参数等,见2.1.1

GroupEngine groupEngine=new GroupEngine(reportGroup, cxt);  //新建一个GroupEngine对象, reportGroup为报表组, cxt为上下文环境,运算报表组中的报表时,以此Context为父环境

IReport ireport=groupEngine.get(0);  //取报表组中第一个位置的报表进行计算,返回计算结果

设置报表组公共参数

ReportGroup reportGroup = ReportGroup.read("D://test.rpg");   //获取需要设置公共参数的报表组项

… …

ParamMetaData pmd=new ParamMetaData();  //构造参数元数据

Param param = new Param();  //构造参数定义

param.setParamName("salary");  //设置参数名

param.setDataType(Types.DT_DECIMAL);  //设置参数数据类型

param.setParamType(Param.PARAM_NORMAL);  //设置参数类型(普通参数或动态参数)

param.setValue("1000");  //设参数缺省值

Param param1 = new Param();  //构造参数定义

… …

pmd.addParam(param);  //把参数定义添加到参数元数据中

pmd.addParam(param1);

pmd.addParam(… …);

reportGroup.setParamMetaData(pmd);  //把参数元数据赋给reportGroup

设置报表组公共数据集

ReportGroup reportGroup = ReportGroup.read("D://test.rpg");   //获取需要设置公共数据集的报表组项

… …

DataSetMetaData dsmd=new DataSetMetaData();  //构造数据集元数据

SQLDataSetConfig sdc=new SQLDataSetConfig();  //构造数据集定义

sdc.setName("ds1");  //设置数据集名

sdc.setSQL("SELECT * FROM EMPLOYEE WHERE EMPLOYEE.SALARY<=?");  //设置数据集sql语句

sdc.addParam("salary", Types.DT_DECIMAL);  //设置数据集参数

dsmd.addDataSetConfig(sdc);  //添加数据集配置

reportGroup.setDsmd(dsmd);  //设置报表的数据集元数据

保存报表组

ReportGroup.write("F:/test.rpg", reportGroup);  //保存报表组