润乾报表使用Frame实现初始参数报表为空

需求:

参数模板和参数报表联合发布,在页面初次加载的时候,只显示参数报表,不显示结果报表;当点击查询按钮后,结果报表才正确展现。

分析:

我们可以采用动态参数判断的方式实现,用宏接收参数并拼接到数据集中,但是这种方法是需要请求一次数据库,有时可能影响效率。所以我们来看一种使用frame的方式实现,当页面初次加载的时候,只显示参数模板,当点击查询后,通过发布参数报表标签中的resultPage属性,跳转到目标页面(发布结果报表页面)来达到效果。

制作步骤:

1、制作相关报表

使用任意参数模板和参数报表即可,本例中使用报表名为:params.raq 和 report.raq

2、新建frame.html文件

内容如下:

<frameset rows=”100,*” framespacing=”2″ frameborder=”yes” border=”2″

bordercolor=”#993300″>

<frame src=”params.jsp” name=”topFrame” scrolling=”NO” noresize >

<frame src=”" name=”reportFrame”>

</frameset>

3、 新建params.jsp文件

内容如下:

<%@ page contentType=”text/html;charset=GBK” %>

<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>

<%@ page import=”java.io.*”%>

<%@ page import=”java.util.*”%>

<%@ page import=”com.runqian.report4.usermodel.Context”%>

 

<html>

<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0>

<%

//定义点查询后跳转到的页面

String action = “/jsp/report.jsp”;

 

%>

<table id=param_tbl align=”center”><tr><td>

<report:param name=”form1″ paramFileName=”params.raq”

needSubmit=”no”

resultPage=”<%=action%>” //请注意此处的写法

target=”reportFrame”

/>

</td>

<td><a href=”javascript:_submit( form1 )”><img src=”../images/query.jpg” border=no style=”vertical-align:middle”></a></td>

</tr></table>

</body>

</html>

 

其中resultPage是润乾的发布参数报表标签中的属性,属性含义:提交参数后,显示报表的结果页面;属性取值:相对于应用根目录的页面URL。

4、 新建report.jsp文件

内容如下:

<%@ page contentType=”text/html;charset=GBK” %>

<%@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” %>

 

<html>

<head>

<title></title>

 

</head>

<body>

<table align=”center”><tr><td>

<report:html name=”report1″ reportFileName=”report.raq”

 

funcBarLocation=”top”

needSaveAsExcel=”yes”

/>

</td>

</tr>

</table>

</body>

</html>

 

在浏览器中访问frame.html即可看到效果,与需求一致,至此,需求已完全满足。

热门文章