您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何使用FineReport自定義一個登錄界面,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
FineReport報表軟件是一款純Java編寫的、集數據展示(報表)和數據錄入(表單)功能于一身的企業級web報表工具,它“專業、簡捷、靈活”的特點和無碼理念,僅需簡單的拖拽操作便可以設計復雜的中國式報表,搭建數據決策分析系統。
在登錄平臺時,不希望使用FR默認的內置登錄界面,想通過自定義登錄界面實現登錄操作,內置登錄界面如下圖:
登錄界面,獲取到用戶名和密碼的值,發送到報表系統,報表服務帶著這兩個參數訪問認證地址進行認證。
自定義登錄界面
1)登錄界面設置
自定義html登錄頁面:命名為login.html,并保存在%FR_HOME%\WebReport下,代碼如下:
<span ><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script> <script type="text/javascript"> function doSubmit() { var username = FR.cjkEncode(document.getElementById("username").value); //獲取輸入的用戶名 var password = FR.cjkEncode(document.getElementById("password").value); //獲取輸入的參數 jQuery.ajax({ url:"http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso",//單點登錄的管理平臺報表服務器 dataType:"jsonp",//跨域采用jsonp方式 data:{"fr_username":username,"fr_password":password},//獲取用戶名密碼 jsonp:"callback", timeout:5000,//超時時間(單位:毫秒) success:function(data) { if (data.status === "success") { window.location=data.url;//認證成功跳轉頁面,因為ajax不支持重定向所有需要跳轉的設置 //登錄成功 } else if (data.status === "fail"){ alert("用戶名或密碼錯誤");//登錄失敗(用戶名或密碼錯誤) } }, error:function(){ alert("超時或服務器其他錯誤");// 登錄失敗(超時或服務器其他錯誤) } }); } </script> </head> <body> <p>請登錄</p> <form name="login" method="POST"> <p> 用戶名: <input id="username" type="text" /> </p> <p> 密 碼: <input id="password" type="password" /> </p> <input type="button" value="登錄" onclick="doSubmit()"/> </form> </body> </html></span>
Dosubmit()是主要的邏輯判斷,實現的是將對應的值傳給報表服務的邏輯實現過程。
調用登錄界面
登錄系統,選擇管理系統>外觀配置,在登錄頁選項中選擇設置登錄網頁,并輸入自定義登錄頁面的路徑:login.html,如下圖所示:
總結
比如說若用戶有自己的系統,將FR繼承到自己已有系統中,該系統有自己的登錄界面,希望登錄自己系統的同時也登錄報表(即將輸入的用戶名密碼也發送到報表服務進行認證),從而訪問報表時不需要再次登錄即單點登錄,步驟如下:
1、找到您系統登錄頁面如login.jsp;
2、在login.jsp頁面head中引入finereport.js;
3、在login.jsp頁面JavaScript中定義function如dosubmit,在dosubmit中獲取到輸入的用戶名密碼,并通過iframe方式或者ajax方式進行認證。
4、在FineReport平臺系統中設置自定義登錄頁面地址為您系統的登錄地址。
若是OA系統或者報表系統和項目系統不再同一個服務器上,可以進行ajax跨域異步單點登錄。
Session傳值
對于Java系統來說,可將用戶名與密碼放在session中,把報表集成在同一環境下面,報表可自動獲取到用戶名和密碼的值進行驗證。
還原默認登錄界面
如果在決策系統修改了登錄界面后,希望還原成系統默認登錄界面,應該如何實現呢?
1)打開安裝目錄%FR_HOME%\WebReport\WEB-INF\resources,找到fsconfig.xml
2)刪除loginUrl屬性
右擊fsconfig.xml文件,選擇編輯器打開,刪除文件中的loginUrl屬性,如下,刪除login.htm:
此時請務必關閉設計器,重新開啟,再次進入數據決策系統,即可回到默認的登錄界面。
還原到默認的登錄界面后,如果再需要設置登錄界面,可以用管理員賬戶登錄,進行設置即可。
以上就是如何使用FineReport自定義一個登錄界面,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。