FineReport中如何自定義登錄界面

在登錄平臺時,不希望使用FR默認的內置登錄界面,想通過自定義登錄界面實現登錄操作,內置登錄界面如下圖:



 

登錄界面,獲取到用戶名和密碼的值,發送到報表系統,報表服務帶着這兩個參數訪問認證地址進行認證。

自定義登錄界面

登錄界面設置

自定義html登錄頁面:命名爲login.html,並保存在%FR_HOME%\WebReport下,代碼如下:

<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>

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:



 

此時請務必關閉設計器,重新開啓,再次進入數據決策系統,即可回到默認的登錄界面。

還原到默認的登錄界面後,如果再需要設置登錄界面,可以用管理員賬戶登錄,進行設置即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章