リレーショナルを設定したデータセットをFpSpreadクラスのDataSourceプロパティに設定するだけで、階層表示は自動的に行われます。(連結時にはデータセットの各フィールドに基づき、セル型や列幅などが自動的に設定されます。)
|
private void Form1_Load(object sender, System.EventArgs e) { //データセットを手動で作成します DataSet ds = new DataSet(); DataTable fpParent; DataTable fpChild1; fpParent = ds.Tables.Add("SampleTable"); fpParent.Columns.AddRange(new DataColumn[] { new DataColumn("Name", Type.GetType("System.String")), new DataColumn("ID", Type.GetType("System.Int32"))}); fpParent.Rows.Add(new object[] {"親データ1", 123}); fpParent.Rows.Add(new object[] {"親データ2", 456}); fpChild1 = ds.Tables.Add("ChildTable"); fpChild1.Columns.AddRange(new DataColumn[] { new DataColumn("Child-Name", Type.GetType("System.String")), new DataColumn("ID", Type.GetType("System.Int32"))}); fpChild1.Rows.Add(new object[] {"子データ1-1", 123}); fpChild1.Rows.Add(new object[] {"子データ1-2", 123}); fpChild1.Rows.Add(new object[] {"子データ2-1", 456}); fpChild1.Rows.Add(new object[] {"子データ2-2", 456}); //テーブル間のリレーションを設定します ds.Relations.Add("Relation1", fpParent.Columns["ID"], fpChild1.Columns["ID"]); //作成されたデータセットを接続します fpSpread1.ActiveSheet.DataSource = ds; //全ての階層を展開します fpSpread1.ActiveSheet.ExpandRow(-1, true); }
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load 'データセットを作成します Dim ds As New DataSet Dim fpParent As DataTable Dim fpChild1 As DataTable fpParent = ds.Tables.Add("SampleTable") fpParent.Columns.AddRange(New DataColumn() { _ New DataColumn("Name", Type.GetType("System.String")), _ New DataColumn("ID", Type.GetType("System.Int32"))}) fpParent.Rows.Add(New Object() {"親データ1", 123}) fpParent.Rows.Add(New Object() {"親データ2", 456}) fpChild1 = ds.Tables.Add("ChildTable") fpChild1.Columns.AddRange(New DataColumn() { _ New DataColumn("Child-Name", Type.GetType("System.String")), _ New DataColumn("ID", Type.GetType("System.Int32"))}) fpChild1.Rows.Add(New Object() {"子データ1-1", 123}) fpChild1.Rows.Add(New Object() {"子データ1-2", 123}) fpChild1.Rows.Add(New Object() {"子データ2-1", 456}) fpChild1.Rows.Add(New Object() {"子データ2-2", 456}) 'テーブル間のリレーションを設定します ds.Relations.Add("Relation1", fpParent.Columns("ID"), fpChild1.Columns("ID")) '作成されたデータセットを接続します FpSpread1.ActiveSheet.DataSource = ds '全ての階層を展開します FpSpread1.ActiveSheet.ExpandRow(-1, True) End Sub