SSRS Показать нижний колонтитул в конце каждой группы - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть отчет служб отчетов SQL Server, который запускает пакет счетов.Каждый счет имеет верхний и нижний колонтитулы.Отчеты сгруппированы по номеру счета-фактуры, поэтому каждый счет-фактура печатается на отдельной странице.

Моя проблема заключается в том, что когда объем счета-фактуры превышает одну страницу, нижний колонтитул повторяется на каждой странице.Я хочу, чтобы он отображался только на последней странице счета-фактуры (группы).

Я пытался снять флажок с опции "нижние колонтитулы страницы: показать на первой странице", но это только удаляет нижний колонтитул с первой страницывся партия, а не группа.

Я также пытался поместить информацию нижнего колонтитула в тело, но, поскольку эти счета-фактуры напечатаны на предварительно напечатанной бумаге, важно, чтобы нижний колонтитул находился в самом низу страницы.

Ответы [ 2 ]

0 голосов
/ 22 октября 2013

Мне удалось получить Page Footer видимым только после окончания группы.

  1. Вам необходимо добавить поле в конце вашего Group Footer.
  2. Дайте имя и значение этому полю (например: Name = txtShowFooter, Value = False)
    Значение не имеет значения, оно должно иметь только значение.
  3. В элементе Page Footer, который вы хотите показать или скрыть (обычно все содержимое в прямоугольнике), задайте следующее выражение в скрытом свойстве: =iif(IsNothing(ReportItems!txtShowFooter.Value), true, false).

Пояснения:
Если вы находитесь на странице, где существует txtShowFooter, вы показываете Page Footer.
На страницах с подробностями текстовое поле не существует, поэтому нижний колонтитул скрыт.

Надеюсь, это поможет другим людям!

0 голосов
/ 13 декабря 2011

Мне удалось добиться того, чего я хотел, но это не более чем обходной путь.Насколько я могу судить, в 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
...