反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

报表里获取session中的值

  • 文档创建者:文档助手1
  • 历史版本:13
  • 最近更新:cherishdqy 于 2020-10-29
  • 1. 描述

    Session 保存了 key-value 属性对,希望在报表中拿到 Session 中的 key 的值。

    2. 情形 1:

    直接在报表模板中获取 Session 中的值

    2.1 思路

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

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

    3. 情形 2:

    网页中先获取 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. 情形 3:在 JS 中获取 Session

    普通的 cpt 模板,JS 获取 Session 方法为:

    contentPane.currentSessionID

    注:如果 FineReport 报表嵌入到 HTML 页面的 iframe 中,那么可通过document.getElementById('reportFrame').contentWindow.contentPane.currentSessionID 来获取 Session

    决策报表模板,JS 获取 Session 的方法为:

    _g().sessionID


    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526