1. 概述
1.1 版本
報表伺服器版本 | 功能變更 |
---|---|
11.0 | - |
1.2 功能簡介
點選「選單伺服器>伺服器設定」,會彈出伺服器設定的介面,在伺服器配置處設定的「分頁預覽」,「填報預覽」,「資料分析」,「引用 Css」,「引用 JavaScript」,「出錯範本定義」,「列印設定」,「PC 端自適應」的屬性是適用於整個伺服器下的範本的,如下圖所示:
2. 分頁預覽設定
分頁預覽設定頁面,對整個伺服器下所有範本的分頁預覽有效。例如點選「選單伺服器>伺服器設定>分頁預覽」,將報表顯示位置勾選置中顯示,點選「確定」。如下圖所示:
再點選「範本>範本 Web 屬性」,選擇分頁預覽,選擇採用伺服器設定,可見報表顯示位置已經變為置中顯示,如下圖所示:
3. 填報頁面設定
填報頁面設定,對整個伺服器下所有範本的分頁預覽有效。與第二節分頁預覽效果相似,不再重複贅述。
4. 資料分析設定
資料分析設定,對整個伺服器下所有範本的資料分析預覽生效。與第二節分頁預覽效果相似,不再重複贅述。
5. 出錯範本定義
伺服器配置相對範本 Web 屬性,增加了出錯範本定義功能,使用者可以自訂報錯頁面。
注:出錯範本定義僅支援 PC 端。
5.1 問題描述
報表自帶的報錯頁面色相如下圖,但是客戶項目可能有自己的色相和統一的出錯頁面,與我們提供的不一致,因此需要使用自訂出錯頁面。
5.2 實現思路
在「伺服器>伺服器設定>出錯範本定義」直接呼叫自訂的出錯頁面如:/error.html,頁面中可以透過範本出錯參數 message、charset、exception 獲取到報錯資訊。
在使用自訂出錯頁面的時候可以呼叫報表系統錯誤頁面的參數,下面簡單的列出參數以及說明。
參數 | 說明 |
---|---|
message | 提示錯誤資訊 |
charset | 設定伺服器的編碼 |
exception | 錯誤異常堆棧資訊 |
如上的參數可以透過 ${參數名} 的形式呼叫。如在定義的 error.html 頁面中呼叫參數 message 將提示錯誤資訊顯示在表格中,如下:
<html>
<body>
<table>
<tr>
<td>
${message}
</td>
</tr>
</table>
</body>
</html>
5.3 報表中呼叫 error.html 頁面
定義好的出錯頁面在「伺服器>伺服器設定>出錯範本定義」的範本路徑中呼叫,可以透過相對路徑進行呼叫:
相對路徑:自訂的出錯頁面 error.html 放在當前 Web 應用下,如 webroot 目錄下,透過相對路徑進行呼叫,範本路徑為:/error.html。
注:html 類型檔案不支援使用絕對路徑進行呼叫。
6. PC 端自適應屬性
在「伺服器>伺服器設定>PC 端自適應屬性」中,使用者可對伺服器配置的「決策報表」、「舊決策報表」、「普通報表」的自適應屬性進行修改,對整個伺服器下範本生效,如下圖所示:
例如選擇「普通報表」,將「字體」和「表格」分別勾選「自適應」和「雙向自適應」,如下圖所示:
再建立普通報表,點選「範本>PC 端自適應屬性」,選擇「採用伺服器設定」,可見「字體」和「表格」已變為「自適應」和「雙向自適應」,如下圖所示:
7. 引用 CSS
「伺服器設定>引用 CSS」對整個伺服器下的範本生效。與「範本 Web 屬性>引用 CSS」僅作用範圍不同,詳情請參見:引用 CSS 。
8.引用 JavaScript
「伺服器設定>引用 JavaScript」對整個伺服器下的範本生效。與「範本 Web 屬性>引用 JavaScript」僅作用範圍不同,詳情請參見:引用 JavaScript 。
9. 注意事項
9.1 範本 Web 屬性與伺服器配置的優先
若不為報表的預覽方式進行單獨設定時,統一採用伺服器設定。若為報表的預覽方式進行單獨設定時,會以單獨設定的屬性進行顯示。
9.2 解決自訂出錯頁面中文亂碼的問題
9.2.1 問題描述
在出錯文字為中文的情況下,使用了 ${message} ,會出現亂碼。
比如找不到範本檔案,錯誤程式碼 : 1304 ;沒有找到範本檔案 : GettingStarted2.cpt ;
使用上述自訂出錯資訊的話,出錯資訊如下圖所示:
後面的英文部分顯示正常,中文部分卻是亂碼,顯示不是我們需要的,那麼如何解決呢?
9.2.2 解決方案
出錯的資訊是透過 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>
儲存後重新整理重新整理頁面,即可看到新的出錯資訊了,如下圖:
可以看到,已經正確地還原了出錯資訊了。