<igRep:XamReportPreview xmlns:igRep="http://infragistics.com/Reporting" x:Name="xamReportPreview" />
WPF レポート作成フレームワークを使用すると、 xamPivotGrid の印刷、または XPS ドキュメントへのエクスポートができます。以下の手順では、XPS ファイルをエクスポートする方法およびピボット グリッドを印刷する方法を説明します。
この手順を実行するには、以下が必要です。
ページに追加された xamPivotGrid コントロール (xamPivotGrid の概要 トピックを参照)
プロジェクトに追加された Infragistics.WPF.Reporting NuGet パッケージへの参照
以下はプロセスの概要です。
1.レポート プレビューのコントロールの追加
2. 新規レポートの作成
3.xamPivotGrid 用のセクションの追加
4.ピボット グリッド レポートへのテーマの適用 (オプション)。
5. レポート設定の構成 (オプション)。
6.プレビューの生成
7.レポートの印刷またはエクスポート
以下の手順は、印刷プレビューを生成する方法およびxamPivotGrid を印刷する方法を示します。
xamReportPreview コントロールをページに追加します。x:Name
プロパティを設定し、コード ビハインドからアクセスできるようにします。
XAML の場合:
<igRep:XamReportPreview xmlns:igRep="http://infragistics.com/Reporting" x:Name="xamReportPreview" />
コード ビハインドで、新しい Report インスタンスを作成します。
C# の場合:
var report = new Report();
Visual Basic の場合:
Dim report = New Report()
1 つのレポートに複数の セクションを関連付けることができます。新しい EmbeddedVisualReportSection を作成し、 xamPivotGrid インスタンスをコンストラクターの引数として入力します。セクションをレポートに追加します。
C# の場合:
var section = new EmbeddedVisualReportSection(this.xamPivotGrid);
report.Sections.Add(section);
Visual Basic の場合:
Dim section = New EmbeddedVisualReportSection(Me.xamPivotGrid)
report.Sections.Add(section)
アプリケーションのリリースに追加された xamPivotGrid テーマは、印刷されたピボット グリッドに自動的に適用されます。アプリケーションのリリースにテーマを追加しない場合、またはアプリケーションのいずれかの視覚要素に別の ResourceDictionary
を追加する場合は、ピボット グリッドのレポート セクションのリリースに、テーマを明示的に追加する必要があります。
シンプルで印刷に適したテーマが、 xamPivotGrid レポートで使用できます。テーマは、製品のインストール パスの下の Themes フォルダーにあります。
印刷テーマを読み込むには、新しい ResourceDictionary
を作成し、セクションのResources
に追加します。この例では、 XamPivotGrid.Printing.xaml ファイルが Themes という名前のフォルダー内のプロジェクトに含まれ、そのビルド アクションが Page に設定されていることを前提としています。
C# の場合:
var printingTheme = new ResourceDictionary() {
Source = new Uri("/AssemblyName;component/Themes/XamPivotGrid.Printing.xaml", UriKind.RelativeOrAbsolute) };
section.Resources.MergedDictionaries.Add(printingTheme);
Visual Basic の場合:
Dim printingTheme = New ResourceDictionary() With { _
.Source = New Uri("/AssemblyName;component/Folder/XamPivotGrid.Printing.xaml", UriKind.RelativeOrAbsolute) _
}
section.Resources.MergedDictionaries.Add(printingTheme)
レポート設定は、2 つのレベルで構成できます。1 つは、 Report の ReportSettings プロパティを使用し、もう 1 つは XamPivotGrid の ReportSettings プロパティを使用します。
レポート レベルの設定には、ページ サイズ、向き、ページの印刷順序などの一般的なオプションがあります。
PivotReportSettings では、印刷されたピボット グリッドに固有の複数の構成が可能です。この中には、カスタム テンプレートの印刷や、各ページに印刷する列ヘッダーを制御するための設定が含まれますが、それ以外にもさまざまな設定があります。
以下の例では、前述した設定の一部を構成する方法を示します。
C# の場合:
report.ReportSettings.HorizontalPaginationMode = HorizontalPaginationMode.Mosaic;
this.xamPivotGrid.ReportSettings.ColumnHeaderCellSettings.RepeatHeaders = true;
this.xamPivotGrid.ReportSettings.RowHeaderCellSettings.RepeatHeaders = false;
Visual Basic の場合:
report.ReportSettings.HorizontalPaginationMode = HorizontalPaginationMode.Mosaic
Me.pivotGrid.ReportSettings.ColumnHeaderCellSettings.RepeatHeaders = True
Me.pivotGrid.ReportSettings.RowHeaderCellSettings.RepeatHeaders = False
レポートのプレビューを生成するには、 XamReportPreview の GeneratePreview メソッドを呼び出します。
C# の場合:
this.xamReportPreview.GeneratePreview(report, false, false);
Visual Basic の場合:
Me.xamReportPreview.GeneratePreview(report, False, False)
C# の場合:
report.Export(OutputFormat.XPS, "PivotReport", true);
// または
report.Print(true, false);
Visual Basic の場合:
report.Export(OutputFormat.XPS, "PivotReport", True)
' または
report.Print(True, False)
以下は、この手順の完全なコードです。
XAML の場合:
<igRep:XamReportPreview xmlns:igRep="http://infragistics.com/Reporting" x:Name="xamReportPreview" />
C# の場合:
var report = new Report();
var section = new EmbeddedVisualReportSection(this.xamPivotGrid);
report.Sections.Add(section);
var printingTheme = new ResourceDictionary()
{
Source = new Uri("/AssemblyName;component/Folder/XamPivotGrid.Printing.xaml", UriKind.RelativeOrAbsolute)
};
section.Resources.MergedDictionaries.Add(printingTheme);
report.ReportSettings.HorizontalPaginationMode = HorizontalPaginationMode.Mosaic;
this.pivotGrid.ReportSettings.ColumnHeaderCellSettings.RepeatHeaders = true;
this.pivotGrid.ReportSettings.RowHeaderCellSettings.RepeatHeaders = false;
this.xamReportPreview.GeneratePreview(report, false, false);
report.Export(OutputFormat.XPS, "PivotReport", true);
report.Print(true, false);
Visual Basic の場合:
Dim report = New Report()
Dim section = New EmbeddedVisualReportSection(Me.xamPivotGrid)
report.Sections.Add(section)
Dim printingTheme = New ResourceDictionary() With { _
.Source = New Uri("/AssemblyName;component/Folder/XamPivotGrid.Printing.xaml", UriKind.RelativeOrAbsolute) _
}
section.Resources.MergedDictionaries.Add(printingTheme)
report.ReportSettings.HorizontalPaginationMode = HorizontalPaginationMode.Mosaic
Me.pivotGrid.ReportSettings.ColumnHeaderCellSettings.RepeatHeaders = True
Me.pivotGrid.ReportSettings.RowHeaderCellSettings.RepeatHeaders = False
Me.xamReportPreview.GeneratePreview(report, False, False)
report.Export(OutputFormat.XPS, "PivotReport", True)
report.Print(True, False)
このトピックの追加情報については、以下のトピックも合わせてご参照ください。