[RDLC] ReportViewer 設計系列:設定群組之每頁小計

陷入Report 無底洞,就有一堆奇怪的Report樣式要設計

Report經一事長一智又來了!這次的問題為:

RDLC如何設計群組每頁都要小計,最後再來個總計,並與資料集相連不分開

Report設計二:我要依條件分群,並且每頁幫我小計一次,最後要總計結果

就像這樣:

代碼1是一群,但可能超過一頁,也有可能不超過一頁,不管如何每頁都要小計

超過一頁的,代碼要在每一頁顯示

以上列為例,在解決之後就會覺的小計筆數是啥小

解法簡介:建立二個群組,一個群組是by條件分群,接著在建立每頁固定幾筆的子群組就可以了,

至於每頁要顯示分群條件的欄位內容,則是將屬性「KeepTogether」為True,每頁標題重覆則是標題的靜態列屬性「RepeatOnNewpage」為Ture且「KeeWithGroup」設After

Step1.

打開一個新的RDLC 檔,工具箱內插入「資料表」(這步是要多重覆

建立資料表的資料來源(這步也超重覆 詳見:這篇的Step2.

Step2.

先加入父群組,這個群組就是您要依條件群組的群組(饒舌...

Step3.

調整一下剛建的群組屬性,首先先把名稱換一下,免得與欄位名稱搞混了

分頁符號勾起來

Step4.

屬性設定好後,就點擊剛的群組右鍵加入「子群組」

Step5.

這次要建立的群組就是指定每頁要幾筆,這邊依資料量與頁寬差不多12筆放的下(記得留小計的空間)

因為在群組依據上寫上:=Int((RowNumber("gp_unitno")-1)/12)    ps.記得加上「=」

Step6.

設好第二個群組,記得,屬性也是要調整一下「分頁符號」 如同Step3.分頁符號設定

設好後會像下圖一樣有多了二個欄位「一個是第一個by條件分群」另一個則是「每頁固定筆數的分群」

Step7.

接著要放下小計欄位,這欄就是要跟著「每頁固定筆數的分群」走,所以在下紅框處插入一個資料列「群組內-下方」

Step7.

總計欄則是在小計欄的「unitono」資料格點右鍵「插入資料列」>「群組外-下方」

總計欄就這樣出現了

Step8.

為了讓每頁都可以重覆(如果資料不超過一頁就不會重覆)出現分群條件的資料,

所以不需將條件分群產生的欄位刪除,但每頁固定筆數分群所產生的欄位需求上並不需要,則可以刪除(是刪除資料行)

Step9.

接著就是小計與總計的公式了,條件中是要每頁小計筆數與總共筆數,所以在此特別註明一下運算式

小計法一:可在資料來源增加一欄位,並固定放1,在透過運算式[Sum(rowcount)]的方式,如此一來,就把所每行1都加起來,幾本上上面已設定12筆為一頁,最多就是12筆,最少就看頁面上幾筆自然就會Sum的出來

小計法二:可在畫面上固定放隱藏的textbox於詳細資料中,固定給1,在Sum Report Items!textbox.value,但這個似乎僅限把小計放頁尾才可以。<<這個沒試過

總計:運算式:RowNumber(nothing)

Step10.

接著資料都設好之後,就是顯示上的問題了,每頁標題重覆是很常見的需求

在「資料列群組」中,點擊「靜態」並確認所點擊的靜態是標題之一

將屬性下紅框調整

Step11.

有些會希望如果同一個條件超過一頁的資料,可以將第一列的資料在每頁顯示

先點擊第一個by條件分群的群組,找到他的屬性,將KeepTogether為True

以上。

參考:

How to Display Page Wise Total Amount....

MSDN-如何:在多個頁面上顯示資料列和資料行標頭 (Reporting Services)