Устраните Разрыв страницы нижнего колонтитула группы перед нижним колонтитулом отчета

StackOverflow https://stackoverflow.com/questions/1144694

Вопрос

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

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

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

Данные Группы Устанавливает Заголовок 1 деталь деталь деталь Данные Группы 1 Подвал

Данные Группы Устанавливает Заголовок 2 Деталь Деталь GroupData Комплект 2 Подвал !Я не хочу этого!

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

Размещено на их доске объявлений: http://community.devexpress.com/forums/t/78705.aspx

Это было полезно?

Решение

Это определяет, когда вы дошли до конца отчета, и не позволяет нижнему колонтитулу группы прерывать страницу.Предполагается, что для свойства 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;
}

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top