使用C1PrintDocument控件 > 数据绑定 > 数据绑定示例 > 使用分组 |
一个典型的应用分组的示例由以下代码进行演示:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
' 创建一个按照分组重复的RenderArea. Dim ra As C1.C1Preview.RenderArea = New C1.C1Preview.RenderArea ra.Style.Borders.All = New C1.C1Preview.LineDef("2mm", Color.Blue) ' MyData 对象数组用作数据源: ra.DataBinding.DataSource = MyData.Generate(100, 0) ' 数据按照GroupId字段进行分组: ra.DataBinding.Grouping.Expressions.Add("Fields!GroupId.Value") ' 创建一个做为分组页眉的RenderText;通常情况下,页眉可以非常复杂,其本身可以是数据绑定的: Dim rt As C1.C1Preview.RenderText = New C1.C1Preview.RenderText ' 分组页眉看起来像是“GroupId=XXX”的格式,这里XXX表示分组中GroupId字段的值: rt.Text = "GroupId: [Fields!GroupId.Value]" rt.Style.BackColor = Color.Yellow ' 为分组区域添加标题: ra.Children.Add(rt) '该 RenderText 将会在每一个分组打印一条记录: rt = New C1.C1Preview.RenderText ' 为每一条记录打印的文本: rt.Text = "GroupId: [Fields!GroupId.Value]" & Microsoft.VisualBasic.Chr(13) & "IntValue: [Fields!IntValue.Value]" rt.Style.Borders.Bottom = C1.C1Preview.LineDef.Default rt.Style.BackColor = Color.FromArgb(200, 210, 220) '设置该文本的数据源为其所包含的RenderArea的数据源,这表示该render对象绑定到当前分组的特定对象上: rt.DataBinding.DataSource = ra.DataBinding.DataSource ' 向区域添加文本: ra.Children.Add(rt) |
C#
C# |
拷贝代码
|
---|---|
// 创建一个按照分组重复的RenderArea. RenderArea ra = new RenderArea(); ra.Style.Borders.All = new LineDef("2mm", Color.Blue); // MyData 对象数组用作数据源: ra.DataBinding.DataSource = MyData.Generate(100, 0); // 数据按照GroupId字段进行分组: ra.DataBinding.Grouping.Expressions.Add("Fields!GroupId.Value"); // 创建一个做为分组页眉的RenderText;通常情况下,页眉可以非常复杂,其本身可以是数据绑定的: RenderText rt = new RenderText(); // 分组页眉看起来像是“GroupId=XXX”的格式,这里XXX表示分组中GroupId字段的值: rt.Text = "GroupId: [Fields!GroupId.Value]"; rt.Style.BackColor = Color.Yellow; // 为分组区域添加标题: ra.Children.Add(rt); //该 RenderText 将会在每一个分组打印一条记录: rt = new RenderText(); // 为每一条记录打印的文本: rt.Text = "GroupId: [Fields!GroupId.Value]\rIntValue: [Fields!IntValue.Value]"; rt.Style.Borders.Bottom = LineDef.Default; rt.Style.BackColor = Color.FromArgb(200, 210, 220); // 设置该文本的数据源为其所包含的RenderArea的数据源,这表示该render对象绑定到当前分组的特定对象上: rt.DataBinding.DataSource = ra.DataBinding.DataSource; // 向区域添加文本: ra.Children.Add(rt); |