MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > テーブル > テーブルの連結 |
SPREAD for Windows Formsは、セルラベルの連結を使用してテーブルをデータソースと連結します。テーブルを以下の2つの方法で連結できます。
データと連結したテーブルは、以下のように動作します。
ITableインタフェースとそのメンバーを使用してテーブルをデータソースと自動的に連結できます。
AutoGenerateColumnsプロパティは自動的に列を生成します。DataSourceプロパティでデータソースが設定されます。
DataSourceプロパティをAutoGenerateColumnsプロパティの後に設定する必要があります。そうしないと、既存のテーブル列が保持されます。 |
会社の財務部門が、従業員の仕事に関連する旅行の詳細、便名、出発日付、出発地、目的地など、のデータベースを維持している次の例を考えてみます。データベースをテーブルに自動的にロードして、旅行の詳細を表示できます。
C# |
コードのコピー
|
---|---|
// テーブルのデータを作成します。 DataSet ds = new DataSet(); DataTable flightDetails = new DataTable("FlightDetails"); flightDetails.Columns.Add("旅客名"); flightDetails.Columns.Add("部門"); flightDetails.Columns.Add("チケットタイプ"); flightDetails.Columns.Add("便名"); flightDetails.Columns.Add("出発日付"); flightDetails.Columns.Add("出発地"); flightDetails.Columns.Add("目的地"); flightDetails.Rows.Add("Mark", "営業", "エコノミーチ",7855, new DateTime(2021, 10, 11).ToShortDateString(), "ニューヨーク", "東京"); flightDetails.Rows.Add("Sophie", "サービス", "エコノミーチ", 7426, new DateTime(2021, 10, 12).ToShortDateString(), "ロンドン", "ヴェネツィア"); flightDetails.Rows.Add("Oliver", "財務", "ビジネス", 7641, new DateTime(2021, 10, 15).ToShortDateString(), "ニューデリー", "モスクワ"); flightDetails.Rows.Add("James", "研究開発", "エコノミーチ", 7293, new DateTime(2021, 10, 18).ToShortDateString(), "北京", "ドバイ"); flightDetails.Rows.Add("Emma", "マーケティング", "ビジネス", 7117, new DateTime(2021, 10, 20).ToShortDateString(), "パリ", "ソウル"); ds.Tables.Add(flightDetails); // テーブルを作成します。 TestActiveSheet.Cells["A1"].Value = "財務のみ:"; GrapeCity.Spreadsheet.ITable table = TestActiveSheet.Range("A2:G7").CreateTable(true); // 自動生成される列を設定します。 table.AutoGenerateColumns = true; // テーブルをデータソースに連結します。 table.DataSource = ds; |
Visual Basic |
コードのコピー
|
---|---|
'テーブルのデータを作成します。 Dim ds As DataSet = New DataSet() Dim flightDetails As DataTable = New DataTable("FlightDetails") flightDetails.Columns.Add("旅客名") flightDetails.Columns.Add("部門") flightDetails.Columns.Add("チケットタイプ") flightDetails.Columns.Add("便名") flightDetails.Columns.Add("出発日付") flightDetails.Columns.Add("出発地") flightDetails.Columns.Add("目的地") flightDetails.Rows.Add("Mark", "営業", "エコノミーチ", 7855, New DateTime(2021, 10, 11).ToShortDateString(), "ニューヨーク", "東京") flightDetails.Rows.Add("Sophie", "サービス", "エコノミーチ", 7426, New DateTime(2021, 10, 12).ToShortDateString(), "ロンドン", "ヴェネツィア") flightDetails.Rows.Add("Oliver", "財務", "ビジネス", 7641, New DateTime(2021, 10, 15).ToShortDateString(), "ニューデリー", "モスクワ") flightDetails.Rows.Add("James", "研究開発", "エコノミーチ", 7293, New DateTime(2021, 10, 18).ToShortDateString(), "北京", "ドバイ") flightDetails.Rows.Add("Emma", "マーケティング", "ビジネス", 7117, New DateTime(2021, 10, 20).ToShortDateString(), "パリ", "ソウル") ds.Tables.Add(flightDetails) 'テーブルを作成します。 TestActiveSheet.Cells("A1").Value = "財務のみ:" Dim table As GrapeCity.Spreadsheet.ITable = TestActiveSheet.Range("A2:G7").CreateTable(True) '自動生成される列を設定します。 table.AutoGenerateColumns = True 'テーブルをデータソースに連結します。 table.DataSource = ds |
データソースにテーブルを連結し、ITableColumnインタフェースを使用して手動的に列を設定できます。テーブルを手動的に連結する際、AutoGenerateColumnsプロパティがfalseである必要があります。
DataFieldプロパティは、列にデータソースのデータフィールドを割り当てます。 CellTypeプロパティを使用して列に特定のセル型も設定することができます。
前セクションの例に続き、会社は既存のデータソースを使用して手動でテーブルを作成することもできます。 本例でのテーブルは、従業員が出発日に在籍できないことをそれぞれの上司に告げます。
C# |
コードのコピー
|
---|---|
// テーブルを作成します。 TestActiveSheet.Cells["A9"].Value = "在籍できない従業員:"; GrapeCity.Spreadsheet.ITable table2 = TestActiveSheet.Range("A10:D12").CreateTable(true); // 自動生成される列を無効にします。 table2.AutoGenerateColumns = false; // 列にデータフィールドを設定します。 table2.TableColumns[0].DataField = "旅客名"; table2.TableColumns[1].DataField = "部門"; table2.TableColumns[2].DataField = "目的地"; table2.TableColumns[3].DataField = "出発日付"; // 「自動的にテーブルを連結する」セクションで定義した既存のデータソース「ds」にテーブルを連結します。 table2.DataSource = ds; |
Visual Basic |
コードのコピー
|
---|---|
'テーブルを作成します。 TestActiveSheet.Cells("A9").Value = "在籍できない従業員:" Dim table2 As GrapeCity.Spreadsheet.ITable = TestActiveSheet.Range("A10:D12").CreateTable(True) '自動生成される列を無効にします。 table2.AutoGenerateColumns = False '列にデータフィールドを設定します。 table2.TableColumns(0).DataField = "旅客名" table2.TableColumns(1).DataField = "部門" table2.TableColumns(2).DataField = "目的地" table2.TableColumns(3).DataField = "出発日付" '「自動的にテーブルを連結する」セクションで定義した既存のデータソース「ds」にテーブルを連結します。 table2.DataSource = ds |