Q109. XamDataGrid のレポートフッターに印刷日時やページ数を表示したい

A.Infragistics.Windows.Reporting.Report.PageFooterTemplate プロパティに、XAMLで定義した DataTemplate リソースを設定します。ヘッダーも Report.PageHeaderTemplate プロパティに DataTemplate を設定できます。


以下サンプルです。

<igDP:XamDataGrid.Resources>
    <DataTemplate x:Key="FooterTemplate">
        <Grid Margin="5">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="120" />
                <ColumnDefinition />
                <ColumnDefinition Width="120" />
            </Grid.ColumnDefinitions>
            <!-- 印刷日時 -->
            <TextBlock Text="{
                            Binding Source={x:Static sys:DateTime.Now}, 
                            StringFormat='{}{0:yyyy/MM/dd HH:mm}' 
                       }" 
                       FontSize="9" />
            <!-- ページ数 -->
            <TextBlock Grid.Column="1" HorizontalAlignment="Center" FontSize="9"
                       Text="{Binding RelativeSource={
                            RelativeSource Mode=FindAncestor, 
                            AncestorType={x:Type igReporting:ReportPagePresenter}}, 
                            Path=PhysicalPageNumber
                       }" />
        </Grid>
    </DataTemplate>
</igDP:XamDataGrid.Resources>
// C#
using Infragistics.Windows.Reporting;

public partial class MainWindow : Window {

    private void Button_Click(Object sender, RoutedEventArgs e) {
        var reportObj = new Report() {
            PageFooterTemplate = XamDataGrid1.Resources["FooterTemplate"] as DataTemplate 
        };
        var section = new EmbeddedVisualReportSection(XamDataGrid1);
        reportObj.Sections.Add(section);
        reportObj.Print();
    }
}
' Visual Basic
Option Explicit On
Option Strict On

Imports Infragistics.Windows.Reporting

Public Class MainWindow

    Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
        Dim reportObj = New Report() With {
            .PageFooterTemplate = TryCast(XamDataGrid1.Resources("FooterTemplate"), DataTemplate)
        }
        Dim section = New EmbeddedVisualReportSection(XamDataGrid1)
        reportObj.Sections.Add(section)
        reportObj.Print()
    End Sub
End Class


WPF FAQ の目次に戻る