最新历史版本 :报表里获取session中的值 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

Session 保存了 key-value 属性对,希望在报表中拿到 Session 中的 key 的值。本文总结了主要的应用场景以及实现思路。

2. 直接在报表模板中获取 Session 中的值编辑

报表应用集成到用户系统中,共用同一个 Session,此时可以直接在报表中获取 Session 的值。

如 Session 中保存了 key a,其值为 123,那么在我们报表中使用 =$a 就能直接获取到 Session 中 a 的值。

3. 网页中先获取 Session 中的值再传给 iframe 中的报表编辑

3.1 实现思路

以 JSP 为例,可以通过 session.getAttribute(String key) 获取 Session 中 key 的值,嫁接在 JSP 中嵌入报表 iframe 的 src 后。

3.2 示例

在用户系统中通过 session.setAttribute(String key,Object value); 在 Session 中保存了信息如 fine_username=Anna,

在 JSP 中通过session.getAttribute("fine_username"),获得 fine_username,再传给报表,代码示例如下:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html> <body> <iframe width=100% height=100% src='/webroot/decision/view/report?viewlet=getkey.cpt&country=<%=session.getAttribute("fine_username")%>'> </iframe> </body> </html>

报表模板中就可以获取该 fine_username 的值,如下图:

image.png

效果如下:

222

注:JSP 文件只能由服务器来解析。

4. 在JavaScript中获取session中的值编辑

4.1 实现思路

Session 是后台服务器端的变量,而 JS 是前端脚本,在 JS 中是没有现成的方法获取 Session 的值的,需要通过服务器语言来获取。

比如java就可以用来获取 Session 的值,再赋值给 JS 变量。

以 JSP 为例,通过:

var id = '<%=session.getAttribute("id")%>';

注:Java 代码用单引号引起来,Java 中字符串变量用双引号

4.2 示例

我们可以做一个 JSP 简单的页面显示 Session 的值:先将 Session 值置为 Imsession,然后显示。

调用 JSP 代码来运行:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>    
 <head> 
 <title>自定义浏览页面</title>     
 <script type="text/javascript">       
 function x(){
<%session.setAttribute("id","Imsession");%>
 var id = '<%=session.getAttribute("id")%>';     
 alert("session是"+id);
} </script>     
</head>    
 <body>     
 <input type ="button" onClick="javascript:x();" value="session">         
 </body>     
 </html>

5. 在JavaScript中获取sessionID编辑

普通报表和决策报表获取 SessionID 的方法:

FR.SessionMgr.getSessionID();