作成日: 2022/09/15 最終更新日: 2022/09/15
文書種別
使用方法
詳細
実行時に改ページを適用するには、フィールドまたはセクションにForcePageBreakプロパティを設定します。
例えば詳細セクションごとに改ページするには、Detail.ForcePageBreakに「ForcePageBreakEnum.After」を指定します。ForcePageBreakEnum.Afterは、フィールドまたはセクションの後にページ区切りを挿入します。
(設定例)c1FlexReport1.Sections.Detail.ForcePageBreak = ForcePageBreakEnum.After;
以下に、詳細セクションごとに改ページしてPrintメソッドで印刷(PDF出力)する簡単なサンプルを記載します。
※事前に、詳細セクションにTextFieldを2つ配置したレポート定義ファイル(例:SampleReport.flxr)を作成してプロジェクトフォルダに配置しておいてください。

◎サンプルコード(VB)
例えば詳細セクションごとに改ページするには、Detail.ForcePageBreakに「ForcePageBreakEnum.After」を指定します。ForcePageBreakEnum.Afterは、フィールドまたはセクションの後にページ区切りを挿入します。
(設定例)c1FlexReport1.Sections.Detail.ForcePageBreak = ForcePageBreakEnum.After;
以下に、詳細セクションごとに改ページしてPrintメソッドで印刷(PDF出力)する簡単なサンプルを記載します。
※事前に、詳細セクションにTextFieldを2つ配置したレポート定義ファイル(例:SampleReport.flxr)を作成してプロジェクトフォルダに配置しておいてください。

◎サンプルコード(VB)
Imports C1.Win.FlexReport
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'データテーブルの作成
Dim dataTable As DataTable = New DataTable("Product")
Dim Id As DataColumn = New DataColumn("Id", GetType(System.Int32))
Dim Name As DataColumn = New DataColumn("Name", GetType(System.String))
dataTable.Columns.AddRange(New DataColumn() {Id, Name})
Dim products As String() = {"ウォールフック", "クッション", "テーブルクロス", "ミニアート", "壁掛け時計"}
'Dim rnd As Random = New Random()
For i As Integer = 0 To 4
'dataTable.Rows.Add(i, products(rnd.[Next](0, products.Count())))
dataTable.Rows.Add(i + 1, products(i))
Next
'レポート定義のロード
C1FlexReport1.Load("../../SampleReport.flxr", "Sample Report")
'レポートのデータを設定
C1FlexReport1.DataSource.Recordset = dataTable
'レポートのプレビュー
C1FlexViewer1.DocumentSource = C1FlexReport1
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'プリンタの設定
Dim pset As System.Drawing.Printing.PrinterSettings = New System.Drawing.Printing.PrinterSettings()
pset.PrinterName = "Microsoft Print to Pdf" 'プリンタ名の指定
pset.Copies = 1 'コピー枚数の指定
'詳細セクションのあとに改ページを挿入
C1FlexReport1.Sections.Detail.ForcePageBreak = ForcePageBreakEnum.After
'印刷の実行
C1FlexReport1.Render()
C1FlexReport1.Print(pset)
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.FlexReport;
namespace prj_C1FlexReport
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//データテーブルの作成
DataTable dataTable = new DataTable("Product");
DataColumn Id = new DataColumn("Id", typeof(System.Int32));
DataColumn Name = new DataColumn("Name", typeof(System.String));
dataTable.Columns.AddRange(new DataColumn[] { Id, Name });
string[] products = {"ウォールフック", "クッション", "テーブルクロス", "ミニアート", "壁掛け時計" };
for (int i = 0; i <= 4; i++)
{
dataTable.Rows.Add(i + 1, products[i]);
}
//レポート定義のロード
c1FlexReport1.Load(@"../../SampleReport.flxr", "Sample Report");
//レポートのデータを設定
c1FlexReport1.DataSource.Recordset = dataTable;
//レポートのプレビュー
c1FlexViewer1.DocumentSource = c1FlexReport1;
}
private void button1_Click(object sender, EventArgs e)
{
//プリンタの設定
System.Drawing.Printing.PrinterSettings pset = new System.Drawing.Printing.PrinterSettings();
pset.PrinterName = "Microsoft Print to Pdf"; //プリンタ名
pset.Copies = 1;//コピー枚数
//詳細セクションのあとに改ページを挿入
c1FlexReport1.Sections.Detail.ForcePageBreak = ForcePageBreakEnum.After;
// 印刷の実行
c1FlexReport1.Render();
c1FlexReport1.Print(pset);
}
}
}