即时报表不经设计页面直接页面端展现
业务背景:
客户的业务人员通过润乾即时报表定制报表,快速查看数据,通过即时报表复杂报表设计" target="_blank" class="quieeLink1">设计页面定制好报表后进行保存,会将当前操作保存成配置文件,下次查看数据时要通过即时报表设计页面打开配置文件才能进行数据查看,这样操作起来太不方便,并且也有可能客户A定制好的报表要给其他人查看,但是其他人对即时报表不熟悉,并不知道怎么样进行数据查看,要求是否可以通过一个页面给其传递报表名参数,能够直接进行报表展现,去掉即时报表设计页面。
解决方案:
即时报表设计完成后会保存成xml文件,然后即时报表查看时会通过相应接口将该xml文件转换成reportdefine文件,之后通过润乾的标签进行发布,所以可自己定义jsp文件,调用相应接口将xml文件转换成reportdefine后在通过润乾的tag标签发布,代码如下:
<%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”GBK”%>
<%@ page import=”com.runqian.fastreport.ReportInfo”%>
<jsp:directive.page import=”com.runqian.base4.util.Base64″/>
<%@ page import=”com.runqian.fastreport.ReportInfo” %>
<%@ page import=”com.runqian.report4.model.ReportDefine2″ %>
<jsp:directive.page import=”com.runqian.fastreport.Field”/>
<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>
<%@ page import=”java.util.*”%>
<%
request.setCharacterEncoding( “UTF-8″ );
ReportInfo ri = new ReportInfo(session);
ri.load(“E:/tomcat_demo/webapps/fastreport4/jsbb/res/jiaocha.xml”);
session.setAttribute(“sys_ReportInfo”,ri);
ri=(ReportInfo)session.getAttribute(“sys_ReportInfo”);
ReportDefine2 rd=(ReportDefine2)ri.buildReport();
String beanName = “bean_” + (new Date().getTime());
request.setAttribute(beanName,rd);
%>
<report:html name=”report1″ srcType =”defineBean” beanName=”<%=beanName%>”
width=”-1″
funcBarLocation=”"
>
</report:html>
其中ri.load(“E:/tomcat_demo/webapps/fastreport4/jsbb/res/jiaocha.xml”);
该xml文件为即使报表保存的配置文件,在实际应用中此处可通过参数动态传递,这样就能直接通过jsp进行即时报表的直接展现,并且能够进行相应权限设置。