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