发布基本报表

◆ 背景说明

  通过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,可以传递参数,可以指定数据源、数据库连接工厂等

  request.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