集智数据平台动态数据源

应用场景

用户有多个数据库,每个数据库中都有相同的表和字段,然后基于数据库表做报表

展现数据的报表,可能需要查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中的两处就可以了。

本文标签: