一、概述
1
版本。
報表伺服器版本 | JAR包 | 功能變更 |
---|---|---|
10.0.19.03 | 2021-10-29 | 新增【PC 端自适應屬性】 |
2
功能簡介。
點選【選單伺服器】→【伺服器設定】,會彈出伺服器設定的介面,在伺服器設定處設定的【分頁預覽設定】,【填報頁面設定】,【資料分析設定】,【引用 Css】,【引用 JavaScript】,【出錯範本定義】,【列印設定】,【PC 端自適應屬性】的屬性是適用於整個伺服器下的範本的,如下圖所示。
二、分頁預覽設定
分頁預覽設定頁面,對整個伺服器下所有範本的分頁預覽有效。例如點選【選單伺服器】→【伺服器設定】→【分頁預覽設定】,將報表顯示位置勾選【置中顯示】,點選【確定】。如下圖一所示。
再點選【範本】→【範本 Web 屬性】,選擇【分頁預覽設定】,選擇【採用伺服器設定】,可見【報表顯示位置】已經變為【置中顯示】,如下圖二所示。
三、填報頁面設定
填報頁面設定,對整個伺服器下所有範本的分頁預覽有效。與第二節分頁預覽效果相似,不再重複贅述。
四、資料分析設定
資料分析設定,對整個伺服器下所有範本的資料分析預覽生效。與第二節分頁預覽效果相似,不再重複贅述。
五、出錯範本定義
伺服器設定相對範本 Web 屬性,增加了出錯範本定義功能。
注:出錯範本定義僅支援 PC 端。
1
問題描述。
報表自帶的報錯頁面色相如下圖,但是客戶專案可能有自己的色相和統一的出錯頁面,與我們提供的不一緻,因此需要使用自訂出錯頁面。
2
實現思路。
在【伺服器】→【伺服器設定】→【出錯範本定義】,直接呼叫自訂的出錯頁面如:【/error.html】,頁面中可以透過範本出錯參數 message、charset、exception 獲取到報錯資訊。如下圖所示。
在使用自訂出錯頁面的時候可以呼叫報表系統錯誤頁面的參數,下面簡單的列出參數以及說明。
如上的參數可以透過 【${參數名} 】的形式呼叫。如在定義的 error.html 頁面中呼叫參數 message 將提示錯誤資訊顯示在表格中,如下。
參數 | 說明 |
---|---|
message | 提示錯誤資訊 |
charset | 設定伺服器的編碼 |
exception | 錯誤異常堆堆疊資訊 |
<html> <body> <table> <tr> <td> ${message} </td> </tr> </table> </body> </html>
3
報表中調用 error.html 頁面。
定義好的出錯頁面在【伺服器】→【伺服器設定】→【出錯範本定義】的範本路徑中調用,可以通過相對路徑進行調用。
相對路徑:自訂的出錯頁面 error.html 放在當前 Web 應用下,如 webroot 目錄下,透過相對路徑進行呼叫,範本路徑為:【/error.html】。
注:html 型別檔案不支援使用絕對路徑進行呼叫。
六、PC 端自適應屬性
在【伺服器】→【伺服器設定】→【PC 端自適應屬性】中,使用者可對伺服器設定的【決策報表】、【普通報表】的自適應屬性進行修改,對整個伺服器下範本生效,如下圖一所示。
例如選擇【普通報表】,將【字體】和【表格】分別勾選【自動調整】和【雙向自動調整】,如下圖二所示。
再建立普通報表,點選【範本】→【PC 端自適應屬性】,選擇【採用伺服器設定】,可見【字體】和【表格】已變為【自動調整】和【雙向自動調整】,如下圖三所示。
七、注意事項
1
範本 Web 屬性與伺服器設定的優先級。
若不為報表的預覽方式進行單獨設定時,統一採用伺服器設定。若為報表的預覽方式進行單獨設定時,會以單獨設定的屬性進行顯示。
2
解決自訂出錯頁面中文亂碼的問題- 問題描述。
在出錯文字爲中文的情況下,使用了【 ${message} 】,會出現亂碼。
比如找不到範本文件,錯誤代碼 : 1304 ;沒有找到範本文件 :【 GettingStarted2.cpt 】;
使用上述自訂出錯資訊的話,出錯資訊如下圖所示。
後面的英文部分顯示正常,中文部分卻是亂碼,顯示不是我們需要的,那麼如何解決呢?
3
解決自訂出錯頁面中文亂碼的問題- 解決方案。
出錯的資訊是透過 FR 進行轉碼過後的,中文會被顯示成上述樣式,為了還原,我們需要在error.html檔案中使用 FR.cjkDecode() 來進行還原出錯的資訊,使用這個方法必須載入 finereport.js 檔案,路徑為【/webroot/decision/view/report?op=emb&resource=finereport.js】,需要在 HTML 中引用,如下圖一。
由於頁面使用的【 ${message}】 是在頁面載入後完成的,所有js轉碼部分必須寫在 body 內部,在 【${message}】 之後,為了獲取此資訊,我們加一組 span 標簽,class 設定為 message,利用 jQuery 中的【 $('.message').text()】 就可以獲取和設定資訊內容了,如下圖二。
完整的源代碼如下。
儲存後重新整理重新整理頁面,即可看到新的出錯資訊了,如下圖三。可以看到,已經正確地還原了出錯資訊了。
注:在 JS 部分,不能直接使用 ${message} 來獲取出錯資訊內容,所以必須使用jquery或其他方法來獲取 span 中的資訊內容。
<html> <head> <script src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script> </head> <body> <table> <tr> <td> <span class='message'>${message}</span> </td> <td></td> </tr> </table> <script> $('.message').text(FR.cjkDecode($('.message').text())); //因為錯誤資訊是轉碼之後的,必須解碼 </script> </body> </html>