1

グループのヘッダーとフッターを含むレポートがあります。データに基づくグループは2つだけである必要があります。グループフッターの後にページ分割を設定しています。最後のグループでレポートフッターの前にページ分割を作成したくない(作成した場合は、レポートフッターの前にページ分割を設定します)。私は他のレポートライターでこの問題を経験したことがありません。

デザインではなく、レポートのプリントアウトがどのように見えるかの例。私のレポートには、1つのグループヘッダーと1つのグループフッターしかありません。

レポートヘッダー

グループデータセット1ヘッダー詳細詳細詳細グループデータセット1フッター

グループデータセット2ヘッダー詳細詳細GroupDataセット2フッター!これは欲しくない!

レポートフッター(最後のページだけでスタック)

彼らの掲示板に投稿:http: //community.devexpress.com/forums/t/78705.aspx

4

1 に答える 1

5

これにより、レポートの最後に到達したタイミングが決まり、グループフッターがページを壊さないようになります。グループフッターの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メソッドを任意に選択しましたが、レポートの最後に到達したかどうかを判断するために行数に依存するよりも、それを行う方が快適です。

于 2009-07-21T12:31:05.737 に答える