FineReport中自定義登錄界面的方法
FineReport報(bào)表軟件是一款純Java編寫的、集數(shù)據(jù)展示(報(bào)表)和數(shù)據(jù)錄入(表單)功能于一身的企業(yè)級web報(bào)表工具,它“專業(yè)、簡捷、靈活”的特點(diǎn)和無碼理念,僅需簡單的拖拽操作便可以設(shè)計(jì)復(fù)雜的中國式報(bào)表,搭建數(shù)據(jù)決策分析系統(tǒng)。
在登錄平臺時,不希望使用FR默認(rèn)的內(nèi)置登錄界面,想通過自定義登錄界面實(shí)現(xiàn)登錄操作,內(nèi)置登錄界面如下圖:
登錄界面,獲取到用戶名和密碼的值,發(fā)送到報(bào)表系統(tǒng),報(bào)表服務(wù)帶著這兩個參數(shù)訪問認(rèn)證地址進(jìn)行認(rèn)證。
自定義登錄界面
1)登錄界面設(shè)置
自定義html登錄頁面:命名為login.html,并保存在%FR_HOME%\WebReport下,代碼如下:
<span style="font-family:Microsoft YaHei;font-size:14px;"><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); //獲取輸入的參數(shù) jQuery.ajax({ url:"http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso",//單點(diǎn)登錄的管理平臺報(bào)表服務(wù)器 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;//認(rèn)證成功跳轉(zhuǎn)頁面,因?yàn)閍jax不支持重定向所有需要跳轉(zhuǎn)的設(shè)置 //登錄成功 } else if (data.status === "fail"){ alert("用戶名或密碼錯誤");//登錄失?。ㄓ脩裘蛎艽a錯誤) } }, error:function(){ alert("超時或服務(wù)器其他錯誤");// 登錄失?。ǔ瑫r或服務(wù)器其他錯誤) } }); } </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()是主要的邏輯判斷,實(shí)現(xiàn)的是將對應(yīng)的值傳給報(bào)表服務(wù)的邏輯實(shí)現(xiàn)過程。
調(diào)用登錄界面
登錄系統(tǒng),選擇管理系統(tǒng)>外觀配置,在登錄頁選項(xiàng)中選擇設(shè)置登錄網(wǎng)頁,并輸入自定義登錄頁面的路徑:login.html,如下圖所示:
總結(jié)
比如說若用戶有自己的系統(tǒng),將FR繼承到自己已有系統(tǒng)中,該系統(tǒng)有自己的登錄界面,希望登錄自己系統(tǒng)的同時也登錄報(bào)表(即將輸入的用戶名密碼也發(fā)送到報(bào)表服務(wù)進(jìn)行認(rèn)證),從而訪問報(bào)表時不需要再次登錄即單點(diǎn)登錄,步驟如下:
1、找到您系統(tǒng)登錄頁面如login.jsp;
2、在login.jsp頁面head中引入finereport.js;
3、在login.jsp頁面JavaScript中定義function如dosubmit,在dosubmit中獲取到輸入的用戶名密碼,并通過iframe方式或者ajax方式進(jìn)行認(rèn)證。
4、在FineReport平臺系統(tǒng)中設(shè)置自定義登錄頁面地址為您系統(tǒng)的登錄地址。
若是OA系統(tǒng)或者報(bào)表系統(tǒng)和項(xiàng)目系統(tǒng)不再同一個服務(wù)器上,可以進(jìn)行ajax跨域異步單點(diǎn)登錄。
Session傳值
對于Java系統(tǒng)來說,可將用戶名與密碼放在session中,把報(bào)表集成在同一環(huán)境下面,報(bào)表可自動獲取到用戶名和密碼的值進(jìn)行驗(yàn)證。
還原默認(rèn)登錄界面
如果在決策系統(tǒng)修改了登錄界面后,希望還原成系統(tǒng)默認(rèn)登錄界面,應(yīng)該如何實(shí)現(xiàn)呢?
1)打開安裝目錄%FR_HOME%\WebReport\WEB-INF\resources,找到fsconfig.xml
2)刪除loginUrl屬性
右擊fsconfig.xml文件,選擇編輯器打開,刪除文件中的loginUrl屬性,如下,刪除login.htm:
此時請務(wù)必關(guān)閉設(shè)計(jì)器,重新開啟,再次進(jìn)入數(shù)據(jù)決策系統(tǒng),即可回到默認(rèn)的登錄界面。
還原到默認(rèn)的登錄界面后,如果再需要設(shè)置登錄界面,可以用管理員賬戶登錄,進(jìn)行設(shè)置即可。
以上所述是小編給大家介紹的FineReport中自定義登錄界面的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
IntelliJ?IDEA?2022.2.1最新永久激活破解教程(持續(xù)更新)
這篇文章主要介紹了IntelliJ?IDEA?2022.2.1最新永久激活破解教程(持續(xù)更新),小編測試這種激活工具也適用idea2022以下所有版本,本篇教程整理的比較詳細(xì),匯總了idea各個版本的激活工具,激活方法多種多樣,大家選擇一種即可,感興趣的朋友跟隨小編一起看看吧2022-09-09springboot整合ehcache和redis實(shí)現(xiàn)多級緩存實(shí)戰(zhàn)案例
這篇文章主要介紹了springboot整合ehcache和redis實(shí)現(xiàn)多級緩存實(shí)戰(zhàn)案例,從源碼角度分析下多級緩存實(shí)現(xiàn)原理,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08java導(dǎo)出excel 瀏覽器直接下載或者或以文件形式導(dǎo)出
這篇文章主要介紹了java導(dǎo)出excel 瀏覽器直接下載或者或以文件形式導(dǎo)出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06