2016-05-08 24 views
1

我正在嘗試製作一份SSRS Delivery Note報表,其中的詳細信息需要按客戶進行分組,並將客戶地址用作報表標題。一個數據集包含多個客戶,每個客戶可能有10多行項目詳細信息。 但是,由於交貨單紙張已預先打印,因此每個頁面上的詳細行數限制爲10。SSRS報告一旦每頁限制行數,組無法正常顯示

所以,我將所有細節按客戶信息分組,使用矩陣較小的大矩陣來顯示客戶信息(標題)和項目詳細信息(細節)。

爲了限制每頁的詳細行數,我在組中使用'=天花板(RowNumber(Nothing)/ 10)'命令。

但是我注意到這樣做後有很大的副作用。例如,客戶A有15條詳圖線和客戶B具有8條詳圖線,預期的結果是:

  • 1:客戶A地址& 10項細節
  • 第2頁:客戶A地址& 5項的詳細信息
  • 第3頁:客戶B地址& 8項細節

但實際的結果是:

  • 1:客戶A地址& 10項細節
  • 第2頁:客戶A地址& 5項細節
  • 第3頁:客戶B地址& 5項細節
  • 第4頁:客戶B地址& 3商品詳細信息

這是因爲客戶B的細節行號從16開始,所以在第一個客戶B頁面上只顯示5行,這是意想不到的。是否有任何可能的方法來實現預期的結果?

Pic:Big matrix nest with small matrix

Pic:limit rows per page

回答

0

的問題是你對分組第二個條件:

=Ceiling(Rownumber(Nothing)/10) 

這個羣體,從而觸發上每10行分頁符,無論客戶的線是爲了。在您的示例中,客戶C在其第一頁上只有7行,因爲迄今共打印了23行,A爲15,B爲8。

希望您的數據集基於Sql,因爲我們可以計算組使用一些內置的查詢結果中的頁碼功能Row_NumberOverPartition

SELECT Floor((Row_Number() OVER(partition by CustomerName ORDER BY CustomerName, ItemNumber)-1)/10) AS GroupPageNumber, 
    CustomerName, ItemNumber 
FROM Items 
ORDER BY CustomerName, ItemNumber 

這種計算與每頁10個項目的最大數量的組頁號,所以現在你只需要你的第二個分組表達如同=Fields!GroupPageNumber.Value

+0

感謝您的回答,此解決方案有效。但我仍然認爲佈局(像每頁10行)應該在報表中進行管理,而不是在SQL查詢中進行管理。是否有任何可能的方法使其在SSRS配置中完成? – invicil

+0

沒有每頁最大行數的屬性。您可以使用底部邊距設置來嘗試爲報告強制執行此操作,但問題將出現在Web查看器中,其中交互式高度更像是指南而不是規則,並且您可能會在瀏覽器中顯示更多或更少的行。如果預覽不重要,你可能會以這種方式工作。 –

+0

我曾嘗試使用頁面高度,但對於一個客戶超過10行的情況,第二頁上的詳細信息不會再顯示組頭。作爲組頭數據是動態的,我無法將「每頁重複」設置爲true。我也嘗試在報表中使用變量而不是行數作爲組標準,但是SSRS無法接受變量作爲組標準..我只是想知道SSRS中是否沒有辦法做到這一點...... – invicil