作成日: 2020/09/15 最終更新日: 2020/09/15
文書種別
使用方法
詳細
C1FlexGridをデータソースと連結してバウンドモードで使用する場合、表示されるデータ型はデータソースに依存します。C1FlexGridに通貨型として表示させるには、データソース側のInt32やDoubleなど数値型のデータとバインドする必要があります。その際C1FlexGridの列のFormat = "C"に設定すると、C1FlexGridの列には通貨型として円マーク(¥)が表示されます。
なお、数値型以外(例:文字列型)のデータに連結した場合は、C1FlexGridの列でFormat = "C"を設定しても、グリッドに円マークは表示されません。またこのとき、C1FlexGrid側で列のDataTypeを数値型に設定し直しても、該当セルのValueは「文字列型」となり、やはり円マークは表示されません。
◎サンプルコード(VB)
なお、数値型以外(例:文字列型)のデータに連結した場合は、C1FlexGridの列でFormat = "C"を設定しても、グリッドに円マークは表示されません。またこのとき、C1FlexGrid側で列のDataTypeを数値型に設定し直しても、該当セルのValueは「文字列型」となり、やはり円マークは表示されません。
◎サンプルコード(VB)
' データの作成
Dim dt As DataTable = New DataTable("TEST")
dt.Columns.Add("ColumnA", GetType(Int32))
dt.Columns.Add("ColumnB", GetType(Double))
dt.Columns.Add("ColumnC", GetType(String))
Dim i As Integer = 0
For i = 0 To 9
dt.Rows.Add(((i + 1) * 10), ((i + 1) * 10), ((i + 1) * 10).ToString)
Next i
dt.AcceptChanges()
' グリッドの書式設定
C1FlexGrid1.SetDataBinding(dt, "")
C1FlexGrid1.Cols(1).Format = "C" 'Int32に連結
C1FlexGrid1.Cols(2).Format = "C" 'Doublに連結
C1FlexGrid1.Cols(3).Format = "C" '文字列型に連結
' C1FlexGridの文字列型を数値型に変更
C1FlexGrid1.Cols(3).DataType = GetType(Int32)
' デバッグ出力
Console.WriteLine(C1FlexGrid1(1, 1).GetType.ToString)
Console.WriteLine(C1FlexGrid1(1, 2).GetType.ToString)
Console.WriteLine(C1FlexGrid1(1, 3).GetType.ToString)
' (デバッグ出力結果)
'System.Int32
'System.Double
'System.String
' (C1FlexGridコントロール上の表示結果)
' 1列目 = "¥10"
' 2列目 = "¥10"
' 3列目 = "10"
◎サンプルコード(C#) // データの作成
DataTable dt = new DataTable("TEST");
dt.Columns.Add("ColumnA", typeof(Int32));
dt.Columns.Add("ColumnB", typeof(Double));
dt.Columns.Add("ColumnC", typeof(String));
for (int i = 0; i < 10; i++)
{
dt.Rows.Add((i + 1) * 10, (i + 1) * 10, ((i + 1) * 10).ToString());
}
dt.AcceptChanges();
// グリッドの書式設定
c1FlexGrid1.SetDataBinding(dt, "");
c1FlexGrid1.Cols[1].Format = "C"; // Int32に連結
c1FlexGrid1.Cols[2].Format = "C"; // Doublに連結
c1FlexGrid1.Cols[3].Format = "C"; // 文字列型に連結
// C1FlexGridの文字列型を数値型に変更
c1FlexGrid1.Cols[3].DataType = typeof(Int32);
// デバッグ出力
Console.WriteLine(c1FlexGrid1[1, 1].GetType().ToString());
Console.WriteLine(c1FlexGrid1[1, 2].GetType().ToString());
Console.WriteLine(c1FlexGrid1[1, 3].GetType().ToString());
// (デバッグ出力結果)
// System.Int32
// System.Double
// System.String
// (C1FlexGridコントロール上の表示結果)
// 1列目 = "¥10"
// 2列目 = "¥10"
// 3列目 = "10"
旧文書番号
85999