◆ 背景说明
通过tag发布报表,最简单的情况下只需要指定报表模板名。为了满足不同层次的需要,润乾报表tag还支持definebean的方式发布报表、支持传递context对象,便于用户自定义数据源、自定义参数等。
◆ 示例代码1:file方式发布
<report:html name="report1"
srcType="file"
reportFileName="api/wangge.rpx"
/>
◆ 示例代码2:defineBean方式发布
<%
//取得报表真实路径
String reportPath = request.getRealPath("WEB-INF/reportFiles/api/wangge.rpx");
ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);
request.setAttribute("reportDefine",rd); //把ReportDefine对象在request中保存
%>
<report:html name="report1"
srcType="defineBean"
beanName="reportDefine"
exceptionPage="myError.jsp" //错误提示页面
/>
示例代码3:reportBean方式发布
<%
//取得报表真实路径
String reportPath = request.getRealPath("WEB-INF/reportFiles/api/wangge.rpx");
ReportDefine rd = (ReportDefine)ReportUtils.read(reportPath);
Context cxt = new Context();
//..............//其它辅助代码,例如往报表引擎传递参数,传递数据库连接参数等,见后面的介绍
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="myError.jsp" //错误提示页面
/>
◆ 示例代码4:自定义context后传递给tag去发布
<%
……
Context context = new Context();
…… //利用context,可以传递参数,可以指定数据源、数据库连接工厂等
session.setAttribute( “myContext”, context );
%>
<report:html ……..
contextName=”myContext”
/>
◆ 示例代码5:错误提示页面
错误提示页面,是指当程序发布错误时,转跳到一个页面,来人性化的展现错误,具体到报表中,我们在tag标签里提供了exceptionPage属性来指定转跳页面.
<report:html ......
exceptionPage="myError.jsp" //错误提示页面
/>
在转跳页面中,通过如下代码获取掷出的异常信息:
<%
Exception e = ( Exception ) request.getAttribute( "exception" );
out.println( "<h1>错误信息:</h1><div style='color:red'>" + e.getMessage() + "</div>" );
%>
◆ 参考文件:
1.1.1.a.jsp,1.1.1.b.jsp,1.1.1.c.jsp