反馈已提交

网络繁忙

报表里获取session中的值

  • 文档创建者:文档助手1
  • 历史版本:18
  • 最近更新:Fay 于 2022-12-16
  • 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();

    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持