作成日: 2022/11/21 最終更新日: 2022/11/21
文書種別
使用方法
詳細
DataTableの列(Column)には「Expression」というプロパティがあり、「A&B」のような計算式を指定できます。この機能を利用し、DataTableの2つの列を結合して1つのデータ列を生成し、テキストフィールドにバインドすることが可能になります。
例えば、「苗字」列と「名前」列を結合して「氏名」列を生成するには、次のようなコードを使用できます。
(例)
以下に、結合してできた「氏名」列を、レポートファイルのQRコードフィールド(BarCodeField)に設定して表示するサンプルを記載します。

【メモ】
QRコードのサイズは、レポートデザイナの以下の場所でSizeModeを"Scale"に設定する事で、フィールドのサイズに比例した大きさに変更できます。
◎サンプルコード(VB)
例えば、「苗字」列と「名前」列を結合して「氏名」列を生成するには、次のようなコードを使用できます。
(例)
dt.Columns.Add("苗字", typeof(String));
dt.Columns.Add("名前", typeof(String));
dt.Columns.Add("氏名", typeof(String), "苗字 + 名前");
以下に、結合してできた「氏名」列を、レポートファイルのQRコードフィールド(BarCodeField)に設定して表示するサンプルを記載します。
【メモ】
QRコードのサイズは、レポートデザイナの以下の場所でSizeModeを"Scale"に設定する事で、フィールドのサイズに比例した大きさに変更できます。
Field(BarCodeField) > BarCodeOptions > SizeOptions
・ SizeMode = "Scale"
◎サンプルコード(VB)
Imports C1.Win.FlexReport
Public Class Form1
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
' BarCodeFieldの設定
Dim bField11 As BarCodeField = CType(C1FlexReport1.Sections.Detail.Fields("Field1"), BarCodeField)
bField11.Text = "=氏名"
' プレビュー表示
C1FlexReport1.Render()
C1FlexViewer1.DocumentSource = C1FlexReport1
End Sub
Private Function GetMyDataTable() As DataTable
Dim dt As DataTable = New DataTable()
dt.Columns.Add("苗字", GetType(String))
dt.Columns.Add("名前", GetType(String))
dt.Columns.Add("氏名", GetType(String), "苗字 + 名前") '2つの列を結合
dt.Rows.Add("葡萄", "太郎")
dt.Rows.Add("甜橙", "桃子")
dt.Rows.Add("無花果", "次郎")
dt.Rows.Add("酪梨", "三郎")
dt.Rows.Add("伊予柑", "花子")
dt.AcceptChanges()
Return dt
End Function
End Class
◎サンプルコード(C#)
using C1.Win.FlexReport;
namespace prj_FlexReport
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// レポートの読み込み
c1FlexReport1.Load(@"..\..\Test01.flxr", "レポート 1"); //Field1, Field2の2つのテキストフィールドを含む
// データテーブルの作成
DataTable dt = GetMyDataTable();
// データソースの設定
c1FlexReport1.DataSource.Recordset = dt;
// BarCodeFieldの設定
BarCodeField bField11 = (BarCodeField)c1FlexReport1.Sections.Detail.Fields["Field1"];
bField11.Text = "=氏名";
// プレビュー表示
c1FlexReport1.Render();
c1FlexViewer1.DocumentSource = c1FlexReport1;
}
DataTable GetMyDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("苗字", typeof(String));
dt.Columns.Add("名前", typeof(String));
dt.Columns.Add("氏名", typeof(String), "苗字 + 名前"); //2つの列を結合
dt.Rows.Add("葡萄", "太郎");
dt.Rows.Add("甜橙", "桃子");
dt.Rows.Add("無花果", "次郎");
dt.Rows.Add("酪梨", "三郎");
dt.Rows.Add("伊予柑", "花子");
dt.AcceptChanges();
return dt;
}
}
}