Устранить разрыв страницы нижнего колонтитула группы перед нижним колонтитулом отчета - PullRequest
1 голос
/ 17 июля 2009

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

Пример того, как выглядит распечатка отчета, а не дизайн. В моем отчете только один заголовок группы и один нижний колонтитул группы:

Заголовок отчета

Групповой набор данных 1 заголовок подробно подробно подробно Групповой набор данных 1 нижний колонтитул

Заголовок группового набора данных 2 подробность подробность GroupData Set 2 нижний колонтитул ! Я не хочу этого!

Нижний колонтитул отчета (сам застрял на последней странице)

Опубликовано на их доске: http://community.devexpress.com/forums/t/78705.aspx

1 Ответ

5 голосов
/ 21 июля 2009

Определяет, когда вы достигли конца отчета и останавливает нижний колонтитул группы от взлома страницы. Предполагается, что свойство PageBreak нижнего колонтитула вашей группы уже установлено в PageBreak.AfterBand.

private void Report_DataSourceRowChanged(object sender, DataSourceRowEventArgs e) {
    if (e.CurrentRow == this.RowCount - 1)
        GroupFooter.PageBreak = PageBreak.None;
}

В качестве альтернативы вы можете установить для заголовка вашей группы и свойства PageBreak нижнего колонтитула значение PageBreak.None. Затем, когда вы печатаете первую группу, установите для нее разрыв страницы перед каждой полосой заголовка группы следующим образом:

private void GroupFooter_BeforePrint(object sender, DataSourceRowEventArgs e) {
    if (GroupHeader.PageBreak == PageBreak.None)
        GroupHeader.PageBreak = PageBreak.BeforeBand;
}

Вам решать, какой метод выбрать. Лично мне больше нравится второй. Несмотря на то, что я произвольно выбрал метод GroupFooter_BeforePrint для подписки и внесения этого изменения, мне все равно было бы удобнее делать это, чем полагаться на количество строк, чтобы определить, когда вы достигли конца отчета.

...