发布基本报表

◆ 背景说明

  通过tag发布报表,最简单的情况下只需要指定报表模板名。为了满足不同层次的需要,润乾报表tag还支持definebean的方式发布报表、支持传递context对象,便于用户自定义数据源、自定义参数等。

 

◆ 示例代码1file方式发布

<report:html name="report1"

srcType="file"

reportFileName="api/wangge.rpx"

/>

◆ 示例代码2defineBean方式发布

<% 

//取得报表真实路径

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"  //错误提示页面

/>

示例代码3reportBean方式发布

<% 

//取得报表真实路径

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.jsp1.1.1.b.jsp1.1.1.c.jsp