2012年5月4日 星期五

Reporting Service 一些函數整理 - CountDistinct RowNumber CountRow

最近 Reporting Service 用很兇,所以會有一些感想。
原本計畫是用 Reporting Service 更新的 2008 版本。
但是實在太趕了,所以倉促之下,一些介面的變更等等,持續使用 2005 的版本。
不過就很好用啦,只是面對複雜的報表,支援度就沒那個高啦。

  1. 匯出Excel報表只支援一層子報表,巢狀就沒辦法顯示至第二層子報表。
  2. 2005 版本沒辦法像 2008 可匯出Word版本。
  3. 2005 也沒有LoopUp Function 可以查詢 DataSet 裡面的其中一筆資料等等。

然後最近比較常用到的幾個函式的紀錄一下來分享




CountDistinct 傳回指定運算式的所有個別值計數
資料有重複但只想計數一次的話就用這個。

 =CountDistinct(Fields!theYear.Value)


例如資料列 99 99 100 99 100 101 102
就可以得到回傳總數為4的值啦,但如果這樣就滿足就遜掉了


可以延伸應用,得到未曾出現計數才加1的

 =RunningValue(Fields!theYear.Value,CountDistinct,Nothing)

所得到的就是慢慢累加的計數了,之前出現過的,就不會累加上去。



RowNumber 傳回指定範圍的資料列計數
就是計算目前列數是第幾列

 =RowNumber(資料來源名稱)




CountRow 傳回指定範圍中所有資料列的執行計數
傳回總共有幾列的函數

 =CountRows()





沒有留言:

張貼留言