用Reporting Service的自定義代碼實現“累乘”功能

SSRS2008中已經有很多系統提供的函數, 包括文本處理類(如Replace),數學計算類(如Atan),統計類(如Sum), 但筆者剛好需要一個類似Sum(累加)的函數--累乘, 找遍其函數庫無果。CSDN上有人給出兩種解決方案:1. 用SQL算好結果將參數傳進來;2.通過SSRS的自定義代碼, 實現“累乘”功能。由於我的報表中多處需要使用到累乘功能,故採用第2種方法, 具體如下:

a. 打開自定義代碼編輯框(報表屬性--》代碼);

b.輸入VB.NET的代碼

c.假設需要累乘的欄位是ColumnA, 則將其表達式由:

=Fields!ColumnA.Value

改爲:

=Code.fnMultiPly(Sng(Fields!ColumnA.Value),Code.sngColumnA)

d.將需要顯示累乘結果的欄位, 表達式改爲:

=Code.sngColumnA

 

需要注意的是, 顯示結果的欄位需要放在所有累乘待累乘欄位的後面。

做完後, 發現此方法相對於系統提供函數(比如Sum)還有一優點, 即可以靈活控制需要累乘的個體。具體怎麼玩, 大家自己研究吧~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章