SSRS 報表開發小技巧


說明:  

開發工具為: SQL Server Data Tools (英文版)     開發環境為: SQL Server 2012 (英文版) 

 

一. 餅圖數據外部顯示

首先我們來看3張效果圖:  內部顯示 、 外部顯示 、 3D效果-外部顯示

 

      餅圖的數據默認是內部顯示的,當類別比較多的時候(上圖只有 1,2,3,4 四種類別),數據內部顯示就會很擠,看不清楚。此時我們應該將其它設置為外部顯示, 如何設置為外部顯示呢? 具體步驟如下:

1. 調出屬性面板(按 F4 鍵)

2. 選中餅圖中的數據標簽

3. 在屬性面板中找到 Position (位置) 屬性, 將其設置為 Outside (外部顯示)

 

      經過上面的步驟,餅圖的數據在外部顯示了(也就是上面效果圖中的第2張圖)。雖然此時數據已經在外部顯示了,但是當類別變得很多的時候,可能依舊會讓人產生混亂,因為你不知道每個數據到底對應的是哪個類別色塊。如果 數據 與 類別色塊 之間有線條連接那就最好了。如何讓其出現線條連接呢? 很簡單,只要開啟 3D 模式就行了,步驟如下:

1. 選中圓餅

2. 右鍵 -> 3D效果

3. 勾選 啟用 3D 

 

 

 

 

二. 將數值轉為百分比顯示

     數值轉為百分比,計算公式無非就是 percent = value / total 。 如上面示例一,四個類別的數值分別為:76,39,6,25 。 將它們轉為百分比則為: percent1 = 76 / (76+39+6+25) ,  percent2 = 39 / (76+39+6+25) ,  percent3 = 6 / (76+39+6+25) ,  percent4 = 25 / (76+39+6+25) 。知道了這個,我們來看具體步驟:

 

1. 選中餅圖中的數據標簽 -> 右鍵 -> 選擇標簽屬性(Series Label Properties)

 

2. 點擊常規頁 Label data 后面的 fx 按鈕 進行表達式設置

 

3. 輸入如下表達式

=FormatPercent(Fields!Percent.Value / Sum(Fields!Percent.Value, "PercentDS"), 2)

      表達式的簡單講解, 首先是一個格式化函數 “FormatPercent()” , 通過名字就知道它是用來干嘛的了:將數字類型數據格式化為百分比,它會自動加上 % 符號。 它接收兩個參數,第一個是要進行轉換的數值,第二個則是要保留的小數位。我們這里第二個參數傳入的是 2, 代表保留兩位小數。 至於傳入的第一個參數 Fields!Percent.Value / Sum(Fields!Percent.Value, "PercentDS") 。 很眼熟吧,這不就是我們上面所講的百分比計算公式嘛,其中 “PercentDS” 是數據集名稱。

 

4. 保存即可。 保存時可能會有一個小插曲,當 UseValueAsLabel 屬性值為 true 時(其默認值就是為 true), 會彈出如下提示框:

      這是什么意思呢? 是這樣的,我們首先要分清 value 和 label 。 實際上餅圖的 value 只接收 數字類型的數據(即:int , long, double ...) , 如果你的數據集返回給餅圖的數據不是 數字 類型(如:string),則餅圖不會顯示。 label 是用來展示餅圖的 value 的。屬性 UseValueAsLabel 為true, 則是說:直接將 餅圖的 value 進行顯示,不做任何加工。 但是我們上面的一系列操作明顯是對 顯示結果進行了加工的,我們顯示的不再是直接的 value:76,39,6,25 。而是帶有 % 符號的百分比數據,因此我們要將 UseValueAsLabel 設置為 false, 不直接顯示 餅圖 value。也就是說,如果彈出此提示框,我們直接選擇 Yes 就行了。

 

 

 

三. 表格奇偶行背景色的設置

 

表格奇偶行的設置,其實就是為了美觀,讓人看起來更加的舒服,具體實現步驟如下:

1. 調出屬性面板

2. 選擇數據行(非 Header,要整行選取)

3. 在屬性面板中找到背景色屬性

4. 輸入如下表達式

=iif(RowNumber(nothing) mod 2 = 0, "#DDDDDD", "White")

 

 

 

四. 打印導出的相關設置

    我們在對報表進行導出或打印是經常會遇到格式錯亂的現象,原因是我們的相關設置沒有做好。 導出打印通常都是針對 A4 格式的紙張而言的,所以我們在進行打印或導出之前要先對報表進行大小的設置。具體步驟如下:

1. 在報表外部空白處單擊右鍵 -> 選擇報表屬性

2. 在頁面設置頁設置頁面大小為 A4 (至於 是縱向還是橫向,以及外邊距等,根據你自己的需求進行設置)

3. 設置為 A4 后, 后面的寬高會自動變成 A4 相應的大小, 記住此 寬高 數值

4. 調出屬性面板(按 F4 鍵)

5. 在報表內部空白處單擊,然后找到屬性面板中的 Size,將其 寬高 設置為等於或小於 A4 的數值(不能大於 A4 的寬高,否則打印或導出會出現錯亂現象)。

 

 

 

五. 表格行號的設置

 

表格行號的設置很簡單,主要還是借助 Rownumber() 函數,具體實現如下圖:

 

 

六. 自定義函數的使用

有些時候內置的函數方法並不能滿足我們的需求,那么我們就可以自己實現一個方法,然后調用它。  舉個實例: 在之前的一次報表開發中,有這樣一個需求: 文本框的背景色必須是動態的, 其背景色根據數據庫中存有顏色的RGB的字符串的值來動態指定(如: "255,255,123")。 雖說背景色也是可以應用表達式的,但它只識別顏色名(如: Gray )和 16進制格式(如: #DDDDDD)的顏色值,並不支持RGB的顏色數值。這個時候就只能自己來實現一個設置RGB顏色的函數。具體步驟如下:

1. 在報表外部空白處右鍵單擊 -> 選擇報表屬性

2. 選擇 Code 菜單

3. 填入我們的自定義函數代碼 (SSRS里面應用的是VB語法,因此要想寫自定義函數,必須先學習VB語法)

 

4. 函數的調用:因為自定函數都是掛在 Code 下面的,所以調用的時候必須是 Code.SetRGB() 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM