一、概述
1
版本。
報表伺服器版本 |
---|
11.0 |
2
預期效果。
在原始資料表中,儲存的是編碼性質的資料,而在資料呈現時,需要顯示的是有意義的實際值,而編碼與值往往儲存在另外一張表中。
如內建 FRDemo 資料庫的訂單表中只有客戶 ID,對應的客戶名稱在客戶表中,希望將訂單明細報表中的客戶 ID 顯示為對應的客戶名稱,如下圖所示。
3
實現思路。
方法一:使用【儲存格屬性】→【形態】中的資料字典,設定實際值和顯示值。
方法二:使用函式 split,並結合形態設定。
二、方法一:資料字典
數據字典類型有 4 種,其中包括【數據庫表】,【數據查詢】,【自定義】,【公式】,将分别對應不同應用場景,詳情請參見:A06-08 樣式-資料字典。
1
開啟報表。
開啟報表【%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Primary\DetailReport\列式報表—資料縱向擴展.cpt】。
2
設定資料字典。
選中客戶 ID 資料欄儲存格,選擇【儲存格屬性】→【形態】→【資料字典】,設定實際值為客戶表中的客戶 ID 欄,顯示值為客戶表中的公司名稱欄,如下圖所示。
3
效果預覽。
儲存範本,點選預覽,效果如第一章第2節所示。
三、方法二:設定公式
1
應用場景。
當客戶有多個且在一個儲存格以某一符號隔開儲存時,上面的方法就無法實現最終的效果了。
例:訂單為 10001 的客戶同時為:VINET,TOMSP,HANAR,且儲存在同一儲存格以“,”隔開。方法一實現結果為圖1所示;最終結果要求為圖2所示。
利用方法一形態沒有完全更換,實際結果與要求不符。遇到這種情況,就需要按照下文進行設定。
2
報表設定。
開啟報表【%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Primary\DetailReport\列式報表—資料縱向擴展.cpt】。
修改資料庫為上圖情況。
在 B 欄後面插入新欄(客戶名稱),在 C2 儲存格設定公式:【=split(B2, ",")】,且新增形態設定,方法參考:方法一。
設定 C2 儲存格擴展方向:無,父格:預設。
設定 D2 儲存格擴展方向:縱向,左父格:B2。
右擊 B 欄,隱藏。
3
效果預覽。
儲存範本,點選【預覽】,效果如上文預期效果所示。
四、已完成範本
方法一已完成的範本,可參見【%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Primary\DetailReport\改變顯示值.cpt】。
點選下載範本:改變顯示值.cpt。