反饋已提交
網絡繁忙
Session 儲存了 key-value 屬性對,希望在報表中拿到 Session 中的 key 的值。本文總結了主要的應用場景以及實現思路。
報表應用整合到使用者系統中,共用同一個 Session,此時可以直接在報表中獲取 Session 的值。
如 Session 中儲存了 key a,其值為 123,那麼在我們報表中使用 =$a 就能直接獲取到 Session 中 a 的值。
以 JSP 為例,可以透過 session.getAttribute(String key) 獲取 Session 中 key 的值,嫁接在 JSP 中嵌入報表 iframe 的 src 後。
在使用者系統中透過 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> </iframe> </body> </html>
報表範本中就可以獲取該 fine_username 的值,如下圖:
效果如下:
注:JSP 檔案只能由伺服器來決議。
Session 是後臺伺服器端的變數,而 JS 是前端腳本,在 JS 中是沒有現成的方法獲取 Session 的值的,需要透過伺服器語言來獲取。
比如java就可以用來獲取 Session 的值,再指派給 JS 變數。
以 JSP 為例,透過:
var id = '<%=session.getAttribute("id")%>';
注:Java 代碼用單引號引起來,Java 中字串變數用雙引號
我們可以做一個 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>
普通報表和決策報表獲取 SessionID 的方法:
FR.SessionMgr.getSessionID();
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙