2011-12-07 118 views
0

我有一個運行一批發票的SQL Server Reporting Services報表。每張發票都有一個標題,正文和頁腳。報告按發票編號分組,以便每張發票印刷在單獨的頁面上。SSRS在每個組末尾顯示頁腳

我的問題是,當一張發票的正文在一個頁面上擴展時,頁腳會在每個頁面上重複。我只希望它顯示在發票(組)的最後一頁上。

我試着取消選中「page footers:show on first page」選項,但是這隻能從整個批次的第一頁,而不是組中刪除頁腳。

我也嘗試將頁腳信息放入正文中,但由於這些發票打印在預印紙上,因此頁腳位於頁面的最底部非常重要。

回答

0

我成功實現了我想要的,但它只不過是一種工作而已。據我所知,在SSRS 2005中沒有辦法做到這一點。

我的解決方案是計算每個組返回的行數,並限制每個頁面上的行。這使我可以推斷存儲過程中的頁碼,並返回每一行的組頁碼和最大組頁碼。

SELECT CEILING((sum(1) over (Partition by sClientInvoiceNo))/ @MaxRowsPerPage) as GroupMaxPage,CEILING((row_number() over (Partition by sClientInvoiceNo order by iSortOrder,apportionmentID desc))/ @MaxRowsPerPage) as GroupPage 

我再由小組頁碼分組我的數據報告中,特別檢查頁腳數據的最後一頁

=IIF(fields!GroupPage.Value <> fields!GroupMaxPage.Value, "", Fields!iBalanceDue.Value 
0

我管理的唯一一組結束後獲得Page Footer可見。

  1. 您需要在Group Footer的末尾添加一個字段。
  2. 給出該字段的名稱和值(例如:Name = txtShowFooter,Value = False)
    值並不重要,它只需要有一個值。
  3. 在要顯示或隱藏的Page Footer項目中(通常是矩形中的全部內容),請在隱藏屬性中設置以下表達式:=iif(IsNothing(ReportItems!txtShowFooter.Value), true, false)

說明:
如果你在其中txtShowFooter存在一個頁面,你顯示Page Footer
在詳細頁面中,文本框不會存在,因此隱藏了頁腳。

希望這可以幫助其他人!