快逸报表自定义jsp如何获取平台中添加的数据源
快逸报表自定义jsp如何获取平台中添加的数据源
V5报表区别于其他简单的报表设计工具,是采用平台形式,对整个报表的制作,发布流程严格把控的报表制作,管理工具。
在平台中可以通过“数据管理”属性栏目,为报表添加“业务数据库”。区别于一般的报表工具,通过数据库连接池的获取,xml系统配置文件手动添加数据源,更具有可操作性。如图一
图一
报表是以jsp文件通过给定的标签进行发布的。
这就涉及到一个问题,自定义的jsp文件直接引用给定的报表标签,能否发布报表。
步骤1,根据报表给出的Vr标签,自定义jsp文件
<%@ page language=”java” pageEncoding=”UTF-8″%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN” >
<%@ taglib prefix=”view” uri=”/WEB-INF/tld/viewReport.tld”%>
<html>
<head>
<script type=”text/javascript” src=”<%=request.getContextPath() %>/js/jquery-1.4.2.js”></script>
<script type=”text/javascript” src=”<%=request.getContextPath() %>/js/rpgFlashPrint.js”></script>
</head>
<body style=”margin: 0; width: 100%; height: 100%; overflow: auto;”>
<view:html name=”report1″
srcType=”file”
reportFileName=”/report_0.raq”
scale=”1.0″
funcBarLocation=”top”
generateParamForm=”yes”
funcBarFontFace=”宋体”
funcBarFontSize=”8px”
funcBarFontColor=”red”
functionBarColor=”blue”
needSaveAsExcel=”yes”
needSaveAsPdf=”yes”
needSaveAsWord=”yes”
needSaveAsText=”yes”
needPrint=”yes”
needDirectPrint=”no”
textDataSeparator=”|”
excelPageStyle=”0″
excelUsePaperSize=”yes”
width=”0″
height=”0″
columns=”5″
saveAsName=”save_as_name”
pdfExportStyle=”graph,0″
needScroll=”no”
useCache=”yes”
timeout=”-1″
needPageMark=”yes”
displayNoLinkPageMark=”no”
submit=”提交”
submitTarget=”_self”
validOnSubmit=”yes”
needImportExcel=”no”
importExcelLabel=”从excel导入”
backAndRefresh=”yes”
selectText=”no”
promptAfterSave=”yes”
saveDataByListener=”no”
autoCalcOnlyOnSubmit=”no”
keyRepeatError=”no”
insertRowLabel=”插入行”
appendRowLabel=”追加行”
deleteRowLabel=”删除行”
importExcelAppend=”yes”
/>
<input type=”image” width=”" height=”" style=”vertical-align: middle;”/>
</body>
</html>
步骤二,发布jsp文件
将文件放置在\tomcat\webapps\reportmis跟目录下,发布
报错“产生数据工厂: com.runqian.report4.dataset.SQLDataSetFactory 失败”
步骤三,获取平台数据源
必须以definebean的形式发布报表
通过
Context ctx = new Context();
IDBManager idb = (IDBManager)MyUtil.initManagerInstance(request)[0];
DataSource ds1 = idb.getDataSource(“demo”);
DataSourceConfig dasc1 = new DataSourceConfig();
dasc1.setDBType(ds1.getDBType());
dasc1.setClientCharset(ds1.getClientCharset());
dasc1.setDBCharset(ds1.getDBCharset());
dasc1.setNeedTranContent(ds1.getNeedTranContent());
dasc1.setNeedTranSentence(ds1.getNeedTranSentence());
ctx.setDataSourceConfig(“demo”,dasc1);
ds1.setPassword(PwdUtils.encrypt(ds1.getPassword()));
ctx.setConnectionFactory(“demo”,ds1);
requset.setAttribute(“cq”,ctx);
在jsp中获取到指定的平台数据源。
definebean发布时 通过Vr标签contextName=”cq” 获取到context