作成日: 2022/11/30 最終更新日: 2022/11/30
文書種別
使用方法
詳細
テンプレート用の帳票を1種類用意し、ヘッダーのタイトルと背景色を変えて4種類の手書き伝票を生成する方法を紹介します。

まずFlexReportデザイナで、ヘッダーにタイトルや合計金額用などのTextFieldを、詳細セクションにTextFieldを1つ(単価、数量、個別金額などの行として利用)配置したテンプレート用レポートを作成します。

※本ナレッジに、上記設定を行ったテンプレート用レポートファイル(Test01.flxr)を添付しますので、ご参照ください。
次いで、新規のVisual Studioプロジェクトを作成し、1ページに表示する行数を指定し、 詳細セクションのTextFieldをダミーのDataTableにバインドすることで、手書き用各種伝票を作成できます。
以下に、明細行を18行に設定した4種類の手書き伝票(注文書/納品書/請求書/領収書)を作成するサンプルコードを記載します。
※最初に、FlexReportデザイナで上述したテンプレート用レポートを作成し、新規プロジェクトに追加してください。
◎サンプルコード(VB)
まずFlexReportデザイナで、ヘッダーにタイトルや合計金額用などのTextFieldを、詳細セクションにTextFieldを1つ(単価、数量、個別金額などの行として利用)配置したテンプレート用レポートを作成します。
※本ナレッジに、上記設定を行ったテンプレート用レポートファイル(Test01.flxr)を添付しますので、ご参照ください。
次いで、新規のVisual Studioプロジェクトを作成し、1ページに表示する行数を指定し、 詳細セクションのTextFieldをダミーのDataTableにバインドすることで、手書き用各種伝票を作成できます。
以下に、明細行を18行に設定した4種類の手書き伝票(注文書/納品書/請求書/領収書)を作成するサンプルコードを記載します。
※最初に、FlexReportデザイナで上述したテンプレート用レポートを作成し、新規プロジェクトに追加してください。
◎サンプルコード(VB)
Imports C1.Win.FlexReport
Public Class Form1
Dim rpPage As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 伝票情報(共通)
rpPage = 18
' 伝票情報(注文書)
Dim title As String = "注 文 書"
Dim fColor As Color = Color.MediumAquamarine
'' 伝票情報(納品書)
'Dim title As String = "納 品 書"
'Dim fColor As Color = Color.Thistle
'' 伝票情報(請求書)
'Dim title As String = "請 求 書"
'Dim fColor As Color = Color.Tan
'' 伝票情報(領収書)
'Dim title As String = "領 収 書"
'Dim fColor As Color = Color.LightSkyBlue
' レポートの読み込み
C1FlexReport1.Load("..\..\Test01.flxr", "レポート 1")
' データの設定
Dim dt As DataTable = GetMyDataTable()
C1FlexReport1.DataSource.Recordset = dt
' 1ページに表示する行数の設定
C1FlexReport1.RecordsPerPage = rpPage
' TextField(詳細行)の設定
Dim tField1 As TextField = CType(C1FlexReport1.Sections.Detail.Fields("Field1"), TextField)
tField1.Text = "=ColumnA"
' TextField(タイトル)の設定
Dim tField2 As TextField = CType(C1FlexReport1.Sections.Header.Fields("Field2"), TextField)
tField2.Text = title
' テキストフィールドの背景色の設定
tField2.BackColor = fColor
CType(C1FlexReport1.Sections.Header.Fields("Field91"), TextField).BackColor = fColor
CType(C1FlexReport1.Sections.Header.Fields("Field92"), TextField).BackColor = fColor
CType(C1FlexReport1.Sections.Footer.Fields("Field93"), TextField).BackColor = fColor
CType(C1FlexReport1.Sections.Footer.Fields("Field94"), TextField).BackColor = fColor
CType(C1FlexReport1.Sections.Footer.Fields("Field95"), TextField).BackColor = fColor
' プレビュー表示
C1FlexReport1.Render()
C1FlexViewer1.DocumentSource = C1FlexReport1
End Sub
Private Function GetMyDataTable() As DataTable
Dim dt As DataTable = New DataTable()
dt.Columns.Add("ColumnA", GetType(String))
For i As Integer = 0 To rpPage - 1
dt.Rows.Add(" ")
Next
dt.AcceptChanges()
Return dt
End Function
End Class
◎サンプルコード(C#)
using C1.Win.FlexReport;
namespace prj_FlexReport
{
public partial class Form1 : Form
{
int rpPage;
public Form1()
{
InitializeComponent();
// 伝票情報(共通)
rpPage = 18; // 1ページに表示する行数
// 伝票情報(注文書)
String title = "注 文 書";
Color fColor = Color.MediumAquamarine;
//// 伝票情報(納品書)
//String title = "納 品 書";
//Color fColor = Color.Thistle;
//// 伝票情報(請求書)
//String title = "請 求 書";
//Color fColor = Color.Tan;
//// 伝票情報(領収書)
//String title = "領 収 書";
//Color fColor = Color.LightSkyBlue;
// レポートの読み込み
c1FlexReport1.Load(@"..\..\Test01.flxr", "レポート 1"); //Field1, Field2の2つのテキストフィールドを含む
// データの設定
DataTable dt = GetMyDataTable();
c1FlexReport1.DataSource.Recordset = dt;
// 1ページに表示する行数の設定
c1FlexReport1.RecordsPerPage = rpPage;
// TextField(詳細行)の設定
TextField tField1 = (TextField)c1FlexReport1.Sections.Detail.Fields["Field1"];
tField1.Text = "=ColumnA"; //"ColumnA"列をバインド
// TextField(タイトル)の設定
TextField tField2 = (TextField)c1FlexReport1.Sections.Header.Fields["Field2"];
tField2.Text = title;
// テキストフィールドの背景色の設定
tField2.BackColor = fColor;
((TextField)c1FlexReport1.Sections.Header.Fields["Field91"]).BackColor = fColor;
((TextField)c1FlexReport1.Sections.Header.Fields["Field92"]).BackColor = fColor;
((TextField)c1FlexReport1.Sections.Footer.Fields["Field93"]).BackColor = fColor;
((TextField)c1FlexReport1.Sections.Footer.Fields["Field94"]).BackColor = fColor;
((TextField)c1FlexReport1.Sections.Footer.Fields["Field95"]).BackColor = fColor;
// プレビュー表示
c1FlexReport1.Render();
c1FlexViewer1.DocumentSource = c1FlexReport1;
}
DataTable GetMyDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("ColumnA", typeof(String));
for (int i = 0; i < rpPage; i++)
{
dt.Rows.Add(" ");
}
dt.AcceptChanges();
return dt;
}
}
}