資料顯示設定攻略
資料庫中儲存的資料通常會有一些程式碼值欄位,如員工編號、部門程式碼、類別 ID 等等,報表展示時如果直接展示程式碼值形式,使用人員無法理解該值的具體含義,所以要求將編碼值轉換成對應的使用人員能夠理解的中文形式,又或者資料庫中儲存的出生日期是 date 形式,展現時要將其轉換成標準的 2018 年 12 月 12 日這種形式。下面透過一個例子的實際操作來介紹下這種需求的實現方法。
首先連線潤乾自帶的 demo 資料來源,從“員工”表中取數製作一個員工資訊表,報表模板如下圖:
此時點選預覽,報表結果如下:
要求:
1、 將出生日期轉換成標準的 yyyy 年 MM 月 dd 日格式
2、 將性別、學歷轉換成對應的中文形式
3、 將工資加上貨幣符號
日期格式設定
報表單元格中支援顯示格式設定,直接對資料進行格式化操作,選中 C3 單元格,雙擊右側的顯示格式的值屬性,會彈出顯示格式設定對話方塊:
裡邊有各型別格式設定,找到日期分類中的 yyyy 年 MM 月 dd 日,點選確定,這樣,出生日期列就能按照想要的格式效果展示。
數值轉中文
接下來看下性別和學歷設定,性別比較固定,一般就是“男”或者“女”,針對此種比較固定的,可以在顯示值表示式中的 if 函式進行控制,在 D4 單元格的顯示值表示式中寫入:if(value()==1,“男”,“女”),value() 函式是報表自帶的一個函式,用於獲取當前單元格的真實值,透過判斷當前單元格為 1 時,返回顯示值“男”,否則顯示“女”,注意:value()==1,性別欄位在資料庫中是整數,所以此處直接寫 1,如果是字串,需要寫成”1”,要注意資料型別,如果有多種型別,可以做 if 巢狀,具體可以參考報表函式說明。針對此種資料比較固定的,還有一個函式可以實現:map 函式,也可以在 D4 單元格的顯示值表示式中寫入:map(list(1,2),list(“男”,“女”)),第一個 list 中列出的是單元格內真實值的列表,第二個 list 會進行顯示值的對映。
學歷單元格設定和性別有些類似,都要透過顯示值表示式進行設定,可以使用 if 或 map 函式,但是學歷資料會較多,需要寫入大量的表示式,並且學歷在資料庫中可能是會變化的,比如過段時間會增加個新學歷,還要再次修改報表,針對此種形式,資料庫中通常會有中文字典表。在報表中新增資料集,從“DEGREE”表中取數,該表中資料如下:
可以看到,ID 中的資料就是員工表中學歷列的值,NAME 欄位儲存的是對應的中文,這樣可以根據 ID 和 DEGREE 欄位的關聯,取出需要的中文進行顯示,在 E3 單元格的顯示值表示式中寫入:ds2.select(NAME,ID==value(),1),該表示式含義為從 ds2 資料集中取出 ID 等於當前單元格值的 NAME 欄位的值放到顯示值中顯示,注意後邊的 1 為取出滿足條件的第一條記錄,如果有滿足直接進行返回不再向後判斷,所以為提高報表計算效率,需要增加“1”的設定。這裡用到了從另外一個資料集中取出對應的中文的寫法,實際使用中,如果字典表和資料表在同一個庫中,建議透過一個 sql 透過 where 關聯方式直接取出中文,這樣當資料量大時效率更高,如果資料來自不同庫,資料量大時導致計算較慢,可以透過集算器將兩個資料集 join 在一起返回到報表是一個資料集,這樣效率更高,具體看實際需求。
貨幣格式
最後工資列設定顯示格式“¥#0.00”就行了,如圖:
最終報表展示效果如下:
本例中透過顯示格式和顯示值表示式的使用能夠控制單元格的顯示樣式,此時更改的只是單元格顯示效果,如果在其他單元格引用這些單元格的話,引用的還是報表單元格的原值,如果要引用顯示值,可以使用 disp() 函式。
顯示格式表示式控制
顯示格式目前用到最多的是直接在顯示格式中選擇,實際上顯示格式支援表示式對其進行控制,比如某個單元格表示式為:=list(11,12.5345,14,15.66),這個單元格展示時既有浮點數,又有整數,好多客戶希望如果是整數則直接顯示整數, 如果是浮點數,則保留兩位小數顯示,這樣就用到了顯示格式表示式,如在該單元格的顯示格式表示式中寫入:if(value()==int(value()),“#”,“#0.00”),判斷該單元格的數值是否是整數,如果是則顯示格式為”#”, 否則顯示格式為”#0.00”, 該單元格預覽後效果如下:
可以看到報表屬性可以透過表示式進行動態控制,達到動態的顯示效果。
顯示值實現特殊格式
潤乾自帶了顯示格式,但有些格式可能無法滿足客戶的特殊需要,比如 2018-11-30 這種日期格式需要顯示成:30 Nov. 2018,此時可以使用顯示值表示式進行特殊設定,比如 B2 單元格為日期,則在 B2 單元格顯示值表示式中寫入:
string(day(value()))+" "+case(string(month(value())),"1":"Jan.";"2":"Feb.";"3":"Mar.";"4":"Apr.";"5":" May.";"6":"Jun.";"7":"Jul.";"8":"Aug.";"9":"Sept.";"10":"Oct.";"11":"Nov.";"12":"Dec.")+" "+string(year(value()))
該表示式先透過潤乾函式分別擷取日期中的日、月、年,然後透過 case 函式將月轉換成想要的格式再拼接在一起,這樣就能夠實現特殊顯示格式的控制。
總結
透過顯示格式能將資料進行格式化操作,透過顯示值能夠將單元格內的值換成其他值進行顯示而不影響原單元格的真實值,並且兩個屬性都可以透過表示式靈活設定,使得資料顯示設定真的靈活運用於各種需求之中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2667051/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- win10如何設定資料夾預設大圖示顯示_win10系統設定資料夾預設以大圖示顯示教程Win10
- [20211108]sqlplus資料寬度顯示設定.txtSQL
- 顯示器設定
- nvidia顯示設定不可用 nvidia沒有顯示設定
- 設定顯示裝置
- 雙屏顯示設定
- Pandas 資料顯示不全?快來了解這些設定技巧! ⛵
- win10如何設定自動顯示資料夾大小_win10怎麼顯示資料夾的大小Win10
- win10如何設定桌面顯示圖示_windows10顯示桌面圖示設定方法Win10Windows
- DataGridView清除顯示的資料、設定右鍵選單詳解View
- win10主顯示器設定方法_win10雙顯示器如何設定主顯示器Win10
- pycharm如何設定中文顯示PyCharm
- js時間顯示設定JS
- redis 設定過期時間,以資料夾形式展示key顯示快取資料Redis快取
- Qt 設定視窗居中顯示QT
- VSCode設定中文語言顯示VSCode
- Python 設定Admin顯示語言Python
- win10雙顯示器如何設定_win10雙屏顯示設定步驟Win10
- 英偉達控制皮膚沒有顯示設定 英偉達顯示設定不可用
- window10雙屏顯示怎麼設定_w10雙屏顯示器設定方法
- IDEA 如何設定TAB頁顯示多行Idea
- JavaScript 設定div顯示與隱藏JavaScript
- cmd顯示漢字需要的設定
- 外掛開發後臺顯示資料表,可以設定多表連結麼
- win10主顯示器在右邊怎麼設定_win10如何設定右邊顯示器為主顯示器Win10
- win10 多顯示器桌面不同步怎麼設定_win10雙顯示器怎麼設定顯示不同內容Win10
- 新版amd顯示卡驅動怎麼設定高效能?AMD顯示卡最新驅動設定教程
- element table不顯示任何資料,無資料倒是顯示出無資料的了
- win10系統設定資料夾顯示圖片解析度的方法Win10
- vscode如何設定目錄分級顯示VSCode
- linux ubuntu終端路徑顯示設定LinuxUbuntu
- jquery 透過顯示值 設定 select boxjQuery
- 設定spacevim字型顯示亂碼問題
- win10電腦怎樣設定顯示圖示和通知 win10系統設定顯示圖示和通知的步驟Win10
- Win10 1909如何設定多屏顯示_Win10 1909設定多屏顯示圖文步驟Win10
- 顯示卡怎麼設定成最高效能?NVIDIA和AMD顯示卡最高效能的設定教程
- Stable Diffusion WebUI 頁面設定: 顯示 VAE CLIPWebUI
- 如何在 Sway 中設定多個顯示器