テーブル行/列グループの基本クラスである TableVectorGroupの DataBinding プロパティを使用して、RenderTable をデータ連結にできます。この例については、DataBinding サンプルを参照してください。
使用可能なサンプルプロジェクト:RenderTableへのバインディングの例については、DataBinding のサンプルを参照してください。
行のグループだけでなく、列のグループもデータ連結できることに注目してください。つまり、テーブルを下方向だけでなく、横方向にも拡大できます。
次のコードに示すように、グループ化は機能しますが、グループ階層は TableVectorGroup オブジェクトの階層に基づいていません。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Dim rt As C1.C1Preview.RenderTable = New C1.C1Preview.RenderTable rt.Style.GridLines.All = C1.C1Preview.LineDef.Default ' テーブルヘッダー: Dim c As C1.C1Preview.TableCell = rt.Cells(0, 0) c.SpanCols = 3 c.Text = "Header" ' グループヘッダー: c = rt.Cells(1, 0) c.Text = "GroupId = [Fields!GroupId.Value]" c.SpanCols = 3 c.Style.TextAlignHorz = C1.C1Preview.AlignHorzEnum.Center c.Style.TextAlignVert = C1.C1Preview.AlignVertEnum.Center ' サブグループヘッダー: c = rt.Cells(2, 0) c.Text = "GroupId = [Fields!GroupId.Value] SubGroupId = [Fields!SubGroupId.Value]" c.SpanCols = 3 c.Style.TextAlignHorz = C1.C1Preview.AlignHorzEnum.Center c.Style.TextAlignVert = C1.C1Preview.AlignVertEnum.Center ' サブグループデータ: rt.Cells(3, 0).Text = "GroupId=[Fields!GroupId.Value]" rt.Cells(3, 1).Text = "SubGroupId=[Fields!SubGroupId.Value]" rt.Cells(3, 2).Text = "IntValue=[Fields!IntValue.Value]" 'GroupId フィールドによってグループ化されたデータ連結線のグループを作成します: Dim g As C1.C1Preview.TableVectorGroup = rt.RowGroups(1, 3) g.CanSplit = True g.DataBinding.DataSource = MyData.Generate(20, 0) g.DataBinding.Grouping.Expressions.Add("Fields!GroupId.Value") g.Style.BackColor = Color.LightCyan 'SubGroupId によってグループ化されたネストされたグループを作成します: Dim ng As C1.C1Preview.TableVectorGroup = rt.RowGroups(2, 2) ng.CanSplit = True ng.DataBinding.DataSource = g.DataBinding.DataSource ng.DataBinding.Grouping.Expressions.Add("Fields!SubGroupId.Value") ng.Style.BackColor = Color.LightPink ' Create yet deeper nested data bound group: Dim ng2 As C1.C1Preview.TableVectorGroup = rt.RowGroups(3, 1) ng2.DataBinding.DataSource = g.DataBinding.DataSource ng2.Style.BackColor = Color.LightSteelBlue |
C# コードの書き方
C# |
コードのコピー
|
---|---|
RenderTable rt = new RenderTable(); rt.Style.GridLines.All = LineDef.Default; // テーブルヘッダー: TableCell c = rt.Cells[0, 0]; c.SpanCols = 3; c.Text = "Header"; //グループヘッダー: c = rt.Cells[1, 0]; c.Text = "GroupId = [Fields!GroupId.Value]"; c.SpanCols = 3; c.Style.TextAlignHorz = AlignHorzEnum.Center; c.Style.TextAlignVert = AlignVertEnum.Center; // サブグループヘッダー: c = rt.Cells[2, 0]; c.Text = "GroupId = [Fields!GroupId.Value] SubGroupId = [Fields!SubGroupId.Value]"; c.SpanCols = 3; c.Style.TextAlignHorz = AlignHorzEnum.Center; c.Style.TextAlignVert = AlignVertEnum.Center; // サブグループデータ: rt.Cells[3, 0].Text = "GroupId=[Fields!GroupId.Value]"; rt.Cells[3, 1].Text = "SubGroupId=[Fields!SubGroupId.Value]"; rt.Cells[3, 2].Text = "IntValue=[Fields!IntValue.Value]"; // GroupId フィールドによってグループ化されたデータ連結線のグループを作成します: TableVectorGroup g = rt.RowGroups[1, 3]; g.CanSplit = true; g.DataBinding.DataSource = MyData.Generate(20, 0); g.DataBinding.Grouping.Expressions.Add("Fields!GroupId.Value"); g.Style.BackColor = Color.LightCyan; // SubGroupId によってグループ化されたネストされたグループを作成します: TableVectorGroup ng = rt.RowGroups[2, 2]; ng.CanSplit = true; ng.DataBinding.DataSource = g.DataBinding.DataSource; ng.DataBinding.Grouping.Expressions.Add("Fields!SubGroupId.Value"); ng.Style.BackColor = Color.LightPink; // さらに深くネストされたデータ連結グループを作成します: TableVectorGroup ng2 = rt.RowGroups[3, 1]; ng2.DataBinding.DataSource = g.DataBinding.DataSource; ng2.Style.BackColor = Color.LightSteelBlue; |
上記のコードを図示すると、次の表のようになります。