《润乾集算报表应用开发之修改数据源》由会员分享,可在线阅读,更多相关《润乾集算报表应用开发之修改数据源(4页珍藏版)》请在金锄头文库上搜索。
1、润乾集算报表应用开发之修改数据源润乾集算报表应用开发之修改数据源 实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源 SQL 就是 一种典型场景。 常见于系统中有一些结构相同而数据源不同的报表, 为减少报表开发工作量, 只开发一套报表模板,使用时通过程序动态修改数据源来满足实际需要。 下面通过一个使用 JAVA 程序修改集算报表数据源 SQL 的例子说明使用过程。 编辑编辑报表报表模板模板: 由于不同数据源的字段不同,因此这里使用动态表达式 ds1.fname()获取字段名, ds1.field()获取字段值。此外,第一行和第一列为辅助行列,设置其隐藏。 编写代码:编写代码:
2、1. 读入报表 String reportPath = request.getRealPath(“/reportFiles/demo.rpx“); ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath); 2. 更改报表数据源 DataSetMetaData dsmd=new DataSetMetaData(); /构造数据集元数据 SQLDataSetConfig sdc=new SQLDataSetConfig(); /构造数据集定义 sdc.setName(“ds1“); /设置数据集名 String sql = “; /
3、根据不同参数,为报表设置不同数据源SQL,实际使用中可以从配置文件中读取 switch(Integer.parseInt(type) case 1: sql=“select * from 员工表“; break; case 2: sql=“select * from 订单明细 order by 订单ID“; break; default:sql=“select * from 客户销售表“; sdc.setSQL(sql); /设置 sql语句 dsmd.addDataSetConfig(sdc); /把数据集定义添加到数据集元数据 rd.setDataSetMetaData(dsmd); /把数据集元数据赋给ReportDefine 3. 将 ReportDefine 存入 request 后使用 defineBean 方式发布报表 rd.setDataSetMetaData(dsmd); /把数据集元数据赋给ReportDefine request.setAttribute(“reportDefine“,rd); 实现实现效果效果: 当 type=1 时显示员工信息表数据: 当 type=2 时显示订单明细表数据: 【附【附】changeds.jsp 完整完整代码:代码: