作成日: 2022/09/16 最終更新日: 2022/09/16
文書種別
使用方法
詳細
レポートのRecordsPerPageプロパティを用いると、1ページに出力する詳細レコード数(行数)を指定できます。
(RecordsPerPage = 20 の例)
RecordsPerPageを設定(*1)した場合、詳細レコード数がこれを超えるとページ区切り(改ページ)が 追加され、残りのレコードは次のページに表示されます。次のページで、残りのレコード数がRecordsPerPageの値に満たなかった場合、空のレコードが追加されます。
*1:RecordsPerPageの設定手順
・FlexReportデザイナーを開きます。
・プロパティウィンドウのフィールド名等の選択ボックスでレポート名を選択します。
・プロパティウィンドウのRecordsPerPageプロパティに任意の整数を設定します。
このとき、グループセクション(ヘッダー/フッター)を追加(*2)してTextFieldを配置すると、レポートの最初のページにグループヘッダーが、最後のページにグループフッターが表示されます。
(メモ)
グループヘッダーセクション/グループフッターセクションのRepeatプロパティは、デフォルトの「False」のままにしておきます。
*2:グループヘッダー/グループフッターの追加手順
・FlexReportデザイナーを開きます。
・[デザイン]タブの[並び替え/グループ化]を開きます。
・[並び替え/グループ化]ウィンドウで、[追加]ボタンをクリックしします。
・右ペインで、ShowGroupFooter/ShowGroupHeaderプロパティをTrueにします。
・[OK]をクリックします。
(結果)セクションに、グループヘッダー/グループフッターが追加されます。
・グループヘッダー、グループフッターをそれぞれ2回ずつクリックして、各セクションのRepeatプロパティが「False」である事を確認します。
以下に、RecordsPerPageを設定したレポート定義を使用して簡単な請求書を作成し、PDFへ出力するサンプルコードを記載します。
※事前に、FlexReportデザイナーにて以下の設定をしたレポート定義ファイル(Test01.flxr)を作成し、プロジェクトに追加しておいてください。
・レポートのRecordsPerPageを「20」に設定
・詳細セクションに、2つのTexField(Field1、Field2)を配置
・グループヘッダー/グループフッター(新規グループ0_Header、新規グループ0_Footer)を追加
・グループヘッダー/グループフッターにそれぞれTexField(Field3/Field12)を配置
デザイナーでの設定
◎サンプルコード(VB)
(RecordsPerPage = 20 の例)
RecordsPerPageを設定(*1)した場合、詳細レコード数がこれを超えるとページ区切り(改ページ)が 追加され、残りのレコードは次のページに表示されます。次のページで、残りのレコード数がRecordsPerPageの値に満たなかった場合、空のレコードが追加されます。
*1:RecordsPerPageの設定手順
・FlexReportデザイナーを開きます。
・プロパティウィンドウのフィールド名等の選択ボックスでレポート名を選択します。
・プロパティウィンドウのRecordsPerPageプロパティに任意の整数を設定します。
このとき、グループセクション(ヘッダー/フッター)を追加(*2)してTextFieldを配置すると、レポートの最初のページにグループヘッダーが、最後のページにグループフッターが表示されます。
(メモ)
グループヘッダーセクション/グループフッターセクションのRepeatプロパティは、デフォルトの「False」のままにしておきます。
*2:グループヘッダー/グループフッターの追加手順
・FlexReportデザイナーを開きます。
・[デザイン]タブの[並び替え/グループ化]を開きます。
・[並び替え/グループ化]ウィンドウで、[追加]ボタンをクリックしします。
・右ペインで、ShowGroupFooter/ShowGroupHeaderプロパティをTrueにします。
・[OK]をクリックします。
(結果)セクションに、グループヘッダー/グループフッターが追加されます。
・グループヘッダー、グループフッターをそれぞれ2回ずつクリックして、各セクションのRepeatプロパティが「False」である事を確認します。
以下に、RecordsPerPageを設定したレポート定義を使用して簡単な請求書を作成し、PDFへ出力するサンプルコードを記載します。
※事前に、FlexReportデザイナーにて以下の設定をしたレポート定義ファイル(Test01.flxr)を作成し、プロジェクトに追加しておいてください。
・レポートのRecordsPerPageを「20」に設定
・詳細セクションに、2つのTexField(Field1、Field2)を配置
・グループヘッダー/グループフッター(新規グループ0_Header、新規グループ0_Footer)を追加
・グループヘッダー/グループフッターにそれぞれTexField(Field3/Field12)を配置
デザイナーでの設定
◎サンプルコード(VB)
Imports C1.Win.FlexReport
Public Class Form1
Dim total As Integer = 0
Dim kakaku As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' レポートの読み込み
C1FlexReport1.Load("..\..\Test01.flxr", "レポート 1")
' データソースの設定
Dim dt As DataTable = GetMyDataTable()
C1FlexReport1.DataSource.Recordset = dt
' TextFieldの設定(詳細セクション)
Dim tField1 As TextField = CType(C1FlexReport1.Sections.Detail.Fields("Field1"), TextField)
tField1.Text = "=ColumnA" '"ColumnA"列をバインド
Dim tField2 As TextField = CType(C1FlexReport1.Sections.Detail.Fields("Field2"), TextField)
tField2.Text = "=ColumnB" '"ColumnB"列をバインド
' TextFieldの設定(グループセクション)
Dim tField3 As TextField = CType(C1FlexReport1.Fields("Field3"), TextField)
tField3.Text = "紫山商事"
Dim tField12 As TextField = CType(C1FlexReport1.Fields("Field12"), TextField)
tField12.Text = total.ToString()
' プレビュー表示
C1FlexReport1.Render()
C1FlexViewer1.DocumentSource = C1FlexReport1
' PDFに出力
Dim filter As C1.Win.C1Document.Export.PdfFilter = New C1.Win.C1Document.Export.PdfFilter()
filter.ShowOptions = False
filter.FileName = "..\..\Test01.pdf"
C1FlexReport1.RenderToFilter(filter)
End Sub
Private Function GetMyDataTable() As DataTable
Dim dt As DataTable = New DataTable()
dt.Columns.Add("ColumnA", GetType(String))
dt.Columns.Add("ColumnB", GetType(Integer))
For i As Integer = 0 To 25
kakaku = (i + 1) * 100
dt.Rows.Add(" 商品 " + (ChrW((65 + i))).ToString(), kakaku)
total = total + kakaku
Next
dt.AcceptChanges()
Return dt
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs)
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.FlexReport;
namespace prj_FlexReport
{
public partial class Form1 : Form
{
int total = 0;
int kakaku;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// レポートの読み込み
c1FlexReport1.Load("..\\..\\Test01.flxr", "レポート 1");
// データソースの設定
DataTable dt = GetMyDataTable();
c1FlexReport1.DataSource.Recordset = dt;
// TextFieldの設定(詳細セクション)
TextField tField1 = ((TextField)(c1FlexReport1.Sections.Detail.Fields["Field1"]));
tField1.Text = "=ColumnA"; //"ColumnA"列をバインド
TextField tField2 = ((TextField)(c1FlexReport1.Sections.Detail.Fields["Field2"]));
tField2.Text = "=ColumnB"; //"ColumnB"列をバインド
// TextFieldの設定(グループセクション)
TextField tField3 = ((TextField)(c1FlexReport1.Fields["Field3"]));
tField3.Text = "紫山商事";
TextField tField12 = ((TextField)(c1FlexReport1.Fields["Field12"]));
tField12.Text = total.ToString();
// プレビュー表示
c1FlexReport1.Render();
c1FlexViewer1.DocumentSource = c1FlexReport1;
// PDFに出力
C1.Win.C1Document.Export.PdfFilter filter = new C1.Win.C1Document.Export.PdfFilter();
filter.ShowOptions = false;
filter.FileName = "..\\..\\Test01.pdf";
c1FlexReport1.RenderToFilter(filter);
}
DataTable GetMyDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("ColumnA", typeof(string));
dt.Columns.Add("ColumnB", typeof(int));
for (int i = 0; (i <= 25); i++)
{
kakaku = ((i + 1)* 100);
dt.Rows.Add((" 商品 " + ((char)((65 + i))).ToString()), kakaku);
total = (total + kakaku);
}
dt.AcceptChanges();
return dt;
}
}
}