集智数据平台动态数据源
应用场景
用户有多个数据库,每个数据库中都有相同的表和字段,然后基于数据库表做报表
展现数据的报表,可能需要查A数据库的数据,也可能查B数据库的数据,这时,就希望,报表的数据源能动态的设置,以参数的形式,来连接数据库获取数据
润乾报表的API提供了方法,能实现这样的需求,实现方法也很简单,下面来看一下例子
testds.jsp文件代码
<%@ page contentType=”text/html;charset=GBK” %>
<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>
<%@ page import=”java.io.*”%>
<%@ page import=”java.util.*”%>
<%@ page import=”com.runqian.report4.usermodel.Context”%>
<%@ page import=”com.runqian.report4.usermodel.*”%>
<%@ page import=”com.runqian.base4.util.*”%>
<%@ page import=”com.runqian.report4.model.*”%>
<%@ page import=”com.runqian.report4.util.*”%>
<%@ page import=”com.runqian.report4.cache.CacheManager”%>
<%
//取得报表真实路径
String reportPath = request.getRealPath(“/reportFiles/ds.raq”);
ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);
Context cxt = new Context(); //构建报表引擎计算环境
cxt.setDefDataSourceName(“demo”); //改变缺省数据源名称
Engine engine = new Engine(rd, cxt); //构造报表引擎
IReport iReport = engine.calc(); //运算报表
request.setAttribute(“report”, iReport); //把IReport对象在request中保存
%>
<report:html name=”report1″
srcType=”reportBean”
beanName=”report”
exceptionPage=”/reportJsp/myError2.jsp”
/>
说明:
1 需要动态设置数据源的报表,都需要单独的jsp
2 修改数据源名,就在testds.jsp中的“demo”修改成相应的数据源,也可以接受参数的方式;
3 报表的名称,就是“/reportFiles/ds.raq”,也可以接受参数的方式;
4 动态数据源的页面,就是例子中的testds.jsp页面,只需要修改2,3中的两处就可以了。