欢迎来到天天文库
浏览记录
ID:38176201
大小:581.23 KB
页数:4页
时间:2019-06-02
《润乾集算报表应用开发之修改数据源》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、润乾集算报表应用开发之修改数据源实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源SQL就是一种典型场景。常见于系统中有一些结构相同而数据源不同的报表,为减少报表开发工作量,只开发一套报表模板,使用时通过程序动态修改数据源来满足实际需要。下面通过一个使用JAVA程序修改集算报表数据源SQL的例子说明使用过程。编辑报表模板:由于不同数据源的字段不同,因此这里使用动态表达式ds1.fname()获取字段名,ds1.field()获取字段值。此外,第一行和第一列为辅助行列,设置其隐藏。编写代码:1.读入
2、报表StringreportPath=request.getRealPath("/reportFiles/demo.rpx");ReportDefinerd=(ReportDefine)ReportUtils.read(reportPath);2.更改报表数据源DataSetMetaDatadsmd=newDataSetMetaData();//构造数据集元数据SQLDataSetConfigsdc=newSQLDataSetConfig();//构造数据集定义sdc.setName("ds1");//设置数据集
3、名Stringsql="";//根据不同参数,为报表设置不同数据源SQL,实际使用中可以从配置文件中读取switch(Integer.parseInt(type)){case1:sql="select*from员工表";break;case2:sql="select*from订单明细orderby订单ID";break;default:sql="select*from客户销售表";}sdc.setSQL(sql);//设置sql语句dsmd.addDataSetConfig(sdc);//把数据集定义添加到数据集
4、元数据rd.setDataSetMetaData(dsmd);//把数据集元数据赋给ReportDefine3.将ReportDefine存入request后使用defineBean方式发布报表rd.setDataSetMetaData(dsmd);//把数据集元数据赋给ReportDefinerequest.setAttribute("reportDefine",rd);5、ceptionPage="/reportJsp/jsp/myError.jsp"/>实现效果:当type=1时显示员工信息表数据:当type=2时显示订单明细表数据:【附】changeds.jsp完整代码:<%@pagecontentType="text/html;charset=GBK"%><%@tagliburi="/WEB-INF/raqsoftReport.tld"prefix="report"%><%@pageimport="java.io.*"%><%@pageimport="java.util.*"6、%><%@pageimport="com.raqsoft.report.usermodel.Context"%><%@pageimport="com.raqsoft.report.model.ReportDefine"%><%@pageimport="com.raqsoft.report.util.ReportUtils"%><%@pageimport="com.raqsoft.report.usermodel.SQLDataSetConfig"%><%@pageimport="com.raqsoft.repor7、t.usermodel.DataSetMetaData"%><%request.setCharacterEncoding("GBK");Stringtype=request.getParameter("type");//取得报表真实路径StringreportPath=requ8、est.getRealPath("/reportFiles/demo.rpx");ReportDefinerd=(ReportDefine)ReportUtils.read(reportPath);DataSetMetaDatadsmd=newDataSetMetaData();//构造数据集元数据SQLDataSetConfigsdc=newSQLDataSetConf
5、ceptionPage="/reportJsp/jsp/myError.jsp"/>实现效果:当type=1时显示员工信息表数据:当type=2时显示订单明细表数据:【附】changeds.jsp完整代码:<%@pagecontentType="text/html;charset=GBK"%><%@tagliburi="/WEB-INF/raqsoftReport.tld"prefix="report"%><%@pageimport="java.io.*"%><%@pageimport="java.util.*"
6、%><%@pageimport="com.raqsoft.report.usermodel.Context"%><%@pageimport="com.raqsoft.report.model.ReportDefine"%><%@pageimport="com.raqsoft.report.util.ReportUtils"%><%@pageimport="com.raqsoft.report.usermodel.SQLDataSetConfig"%><%@pageimport="com.raqsoft.repor
7、t.usermodel.DataSetMetaData"%><%request.setCharacterEncoding("GBK");Stringtype=request.getParameter("type");//取得报表真实路径StringreportPath=requ
8、est.getRealPath("/reportFiles/demo.rpx");ReportDefinerd=(ReportDefine)ReportUtils.read(reportPath);DataSetMetaDatadsmd=newDataSetMetaData();//构造数据集元数据SQLDataSetConfigsdc=newSQLDataSetConf
此文档下载收益归作者所有