首頁  >  文章  >  web前端  >  FineReport中自訂登入介面的方法

FineReport中自訂登入介面的方法

高洛峰
高洛峰原創
2017-03-21 17:04:252470瀏覽

登入平台時,不希望使用FR預設的內建登入介面,想透過自訂登入介面實現登入操作,內建登入介面如下圖:

FineReport中自訂登入介面的方法

登入介面,取得到使用者名稱和密碼的值,傳送到報表系統,報表服務帶著這兩個參數存取認證位址進行認證。

自訂登入介面

#登入介面設定

#自訂html登入頁面:命名為login.html,並儲存在%FR_HOME%\WebReport下,程式碼如下:

<span style="font-family: &#39;Microsoft YaHei&#39;, 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; 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);  //获取输入的参数    
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()是主要的邏輯判斷,實現的是將對應的值傳給報表服務的邏輯實作過程。

呼叫登入介面FineReport中自訂登入介面的方法

#登入系統,選擇管理系統>外觀配置,在登入頁選項中選擇設定登入網頁,並輸入自訂登入頁面的路徑: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######### #

FineReport中自訂登入介面的方法
 

#2)刪除loginUrl屬性

右鍵點擊fsconfig.xml文件,選擇編輯器打開,刪除檔案中的loginUrl屬性,如下,刪除login.htm:


FineReport中自訂登入介面的方法

 

此時請務必關閉設計器,重新開啟,再次進入資料決策系統,即可回到預設的登入介面。

還原到預設的登入介面後,如果再需要設定登入介面,可以用管理員帳號登錄,進行設定即可。

以上是FineReport中自訂登入介面的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn