说明:
报表组编辑主要包括配置报表组中的报表源、设置报表组中的报表项、计算报表组中的报表、保存报表组。
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); //保存报表组