2011年3月3日 星期四

SSRS 限定一頁顯示N筆資料

同事設計RDL想要一頁只顯示10筆清單資料就強迫換頁.

於在報表上,依這段Expression 建立一個群組Group,每頁顯示10筆後跳新分頁

=Fix((RowNumber("DataSet1")-1) /10)

預覽時,發生這個錯誤

 [rsInvalidGroupExpressionScope] A group expression for the grouping ‘Group1’ uses the RowNumber function with a scope parameter that is not valid.  When used in a group expression, the value of the scope parameter of RowNumber must equal the name of the group directly containing the current group.   

大家在RowNumer的scope上測來測去都是同樣的錯,真不知該給什麼好....



最後是給上了nothing 就解決了  =Fix((RowNumber(nothing   )-1) /10)

查了MSDN上的說明, 有看沒有懂,

因為很直覺的是RowNumber的scope應該是dataset啊..不是嗎???

Scope

每個彙總函數都使用 Scope 參數,它用來定義彙總函數的執行範圍。有效範圍是群組、資料集或資料區域的名稱。只有直接或間接包含運算式的群組或資料區域可用來作為範圍。對於資料區域 內的運算式而言,所有彙總函數的 Scope 都是選擇性的。如果您省略 Scope 參數,彙總範圍便是報表項目所屬的最內層資料區域或群組。指定 Nothing 範圍會將範圍設為報表項目所屬的最外層資料區域。
對於資料區域之外的運算式,Scope 是指資料表或商務物件。如果報表包含多個資料集,Scope 就是必要的。如果報表只包含單一資料集,便會省略 Scope,範圍會設為資料集。您不能針對在資料區域之外的報表項目來指定 Nothing 關鍵字。
頁首或頁尾不能使用 Scope 參數。

1 則留言:

  1. 你好,我有個也是關於顯示筆數的問題想請教你,若你有閒餘時間,期望你能撥空幫我想想

    我的問題如下:

    我的報表內需要顯示兩個欄位,並顯示在同一行;其中主要的欄位是品名,另一欄位則是品名的雜項支出,雜項支出顯示在每個品名的下面緊鄰著品名;目前我的品名是直接顯示在父報表內,雜項支出我是用子報表顯示於品名下方。
    Question:請問我可以控制品名和雜項支出一頁只顯示六筆,超過就放下一頁。

    回覆刪除

publish error allowDefinition='MachineToApplication'

一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...