1. 概述
1.1 问题描述
设计模板时,有时可能需要将报表中的参数或某些值传递到自己的网页中做一些处理,那么该如何实现呢?
1.2 实现思路
设置超级链接到网页并设置参数,然后在网页中通过request.getParameter("超级链接中的参数名")获取参数即可。
2. 示例
2.1 设计模板
1)新建普通报表,新建数据集 ds1 ,SQL 查询语句为:SELECT * FROM 运货商
2)如下图设计表格,将数据集中字段拖到对应单元格中。
2.2 添加超链
示例将链接到一个 jsp 页面,如下图设置网页链接并添加参数。
2.3 网页获取参数设置
在 update1.jsp 文件的开头加上获取参数的代码:
<%
String ID = request.getParameter("ID");
String TELEPHONE =request.getParameter("TELEPHONE");
%>
最终完整的 update1.jsp 文件代码如下:
<%@ page language="java" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
String ID = request.getParameter("ID");
String TELEPHONE =request.getParameter("TELEPHONE");
%>
<html>
<head>
<title>修改基本参数</title>
</head>
<body>
<table width="350" border="0" cellspacing="1" cellpadding="5px">
<tr>
<th width="130">运货商编码:</th><td width="208"><input type="text" id="ID" value="<%=ID %>" disabled/></td>
</tr>
<tr>
<th>电话:</th><td><input type="text" id="TELEPHONE" value="<%=TELEPHONE %>"/></td>
</tr>
</table>
</body>
</html>
2.4 效果预览
保存报表,分页预览超链传参效果如 1.1问题描述 中所示。
支持 App 端和 HTML5 端预览。
3. 模板下载
已完成模板参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\超链传递网页参数.cpt
点击下载模板:超链传递网页参数.cpt
点击下载 jsp 文件:update1.jsp
4. 注意事项
超链传参到网页时,若参数值为中文,打开的页面该参数值会乱码。
这是因为超级链接传递过来的参数被编码过了,所以在 jsp 页面中获取该参数时,需要通过 java.net.URLDecoder.decode 进行解码才能解决乱码问题。
操作方法很简单,修改下 jsp 文件里面获取参数的代码即可。例如:
源码是:
String NAME = request.getParameter("NAME");
修改为:
String NAME =java.net.URLDecoder.decode(request.getParameter("NAME"),"UTF-8");