バージョン

ページ番号の印刷

レポートを印刷するとき、WPF レポーティング エンジンはレポートのコンテンツのみを印刷します。ヘッダーやフッターを印刷したい場合は、 Report オブジェクトまたは EmbeddedVisualReportSection オブジェクトの PageHeader または PageFooter プロパティを設定できます。ただし、ページ番号をレポートのヘッダーまたはフッターに追加したい場合は、各セクションのヘッダー/フッターを整数に設定するのは良い方法ではありません。その代りに、データ テンプレートを作成し、 ReportPagePresenter クラスの PhysicalPageNumber プロパティにバインドするべきです。

レポートのヘッダーまたはフッターにページ番号を追加するのは、2 つの手順からなる処理です。

  1. XAML で基本 DataTemplate オブジェクトを作成します。

  2. DataTemplate オブジェクトを Report オブジェクトまたは EmbeddedVisualReportSection オブジェクトの PageHeaderTemplate または PageFooterTemplate プロパティに割り当てます。

以下のコード例は、データ テンプレートを使用してページ番号をレポートに印刷する方法を示します。この XAML は基本的な DataTemplate オブジェクトを作成し、プロシージャ コードはそれを report1 という名前の Report オブジェクトの PageHeaderTemplate プロパティに割り当てます。

XAML の場合:

<!--この DataTemplate を Window の ResourceDictionary に追加します-->
<DataTemplate x:Key="pageNumberDataTemplate">
    <DockPanel Margin="5">
        <!--この TextBlock の Text プロパティは、ReportPagePresenter の PhysicalPageNumber プロパティにバインドされます-->
        <TextBlock
            xmlns:igReporting="http://infragistics.com/Reporting"
            DockPanel.Dock="Right"
            Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type igReporting:ReportPagePresenter}}, Path=PhysicalPageNumber}" />
            <TextBlock Text="Page Number: " DockPanel.Dock="Right" />
            <!--この ContentPresenter は Report オブジェクトまたは EmbeddedVisualReportSection オブジェクトの Header プロパティを表示します。-->
            <ContentPresenter Content="{Binding}" />
        </DockPanel>
</DataTemplate>

Visual Basic の場合:

report1.PageHeaderTemplate = TryCast(Me.TryFindResource("pageNumberDataTemplate"), DataTemplate)

C# の場合:

report1.PageHeaderTemplate = this.TryFindResource("pageNumberDataTemplate") as DataTemplate;