加入程式碼的 MSDN 說明請參考: Adding Custom Code to a ReportViewer Report
在製作報表的時候,客戶有一個需求,假設資料的內容如下:
班號 (ClassNumber) | 學生姓名 (StudentName) |
001 | 王大明 |
001 | 陳小華 |
002 | 李大丙 |
002 | 吳小菁 |
003 | 張小英 |
希望輸出的報表的時候,重複的班號不要顯示,如下:
班號 | 學生姓名 |
001 | 王大明 |
陳小華 | |
002 | 李大丙 |
吳小菁 | |
003 | 張小英 |
在一般製作報表的時候,班號的這個欄位會填上 Fileds!ClassNumber.Value 的內容,但要怎麼才可以濾掉重複出現的班號呢? 使用自訂程式碼。
展開 Visual Stuio 的命令選單 Rport –> Report Properties,選擇 Code 頁籤,寫一段判斷式的函式。如下:
Dim tempClassNumber as String = ""
Public Function ShowClassNumber(ByVal classNumber as String) as String
If (classNumber = tempClassNumber)
Return ""
End If
tempClassNumber = classNumber
Return classNumber
End Function
然後在設計報表的地方使用如下的 expression:
=Code.ShowClassNumber(Fileds!ClassNumber.Value)
客戶期望的報表內容就成功了。
自訂程式碼是動態地將程式碼編譯到報表內建的 Code 類別,以記事本打開報表設計 rdlc 檔案,可以在 <code> 區塊看到上面寫的程式碼。在報表的 expression 編輯器,使用 Code 類別來呼叫。有幾點要注意一下:
1. 必須先編譯一次專案才可以使用自訂的程式碼。
2. 在 expression 編輯器不會自動列舉自訂程式碼裡面的函式名稱。
3. 自訂程式碼必須以 Visual Basic 撰寫。
No comments:
Post a Comment