使用C1PrintDocument控件 > 数据绑定 > 数据汇总 |
在发布的2010 V1版本中,向Reports for WinForms添加了新的汇总。这些汇总类型可以应用在数据绑定的C1PrintDocument中,而不需要在文档的汇总集合(Aggregates)中声明它们。
例如,如果“Balance”是一个数据绑定文档的数据字段,以下RenderText可以用于打印数据集的余额总量:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
Dim rt As New RenderText("[Sum(""Fields!Balance.Value"")]") |
C#
C# |
拷贝代码
|
---|---|
RenderText rt = new RenderText("[Sum(\"Fields!Balance.Value\")]"); |
以下新的属性和方法被添加到DataSet和C1DataBinding类型上以支持此功能:
类 | 成员 | 描述 |
---|---|---|
C1DataBinding | Name 属性 | 获取或设置当前C1DataBinding名称。该名称可以在汇总函数中使用,表示该汇总表示的目标数据绑定 |
DataSet | Name 属性 | 获取或设置当前数据集的名称。该名称可以在汇总函数中使用,表示该汇总表示的目标数据源。 |
所有汇总函数具有以下格式:
AggFunc(expression, scope)
参数解释:
识汇总计算所包括的数据集范围的字符串。如果省略,则汇总会基于当前的数据集进行计算(比如当前的分组,数据集等等)。如果指定的话,应当是目标分组或者数据集的名称。
例如,如果一个数据集有以下字段,ID,GroupID,SubGroupID,NAME,Q,同时记录按照
GroupID和SubGroupID进行分组,则可以创建以下文档:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
Dim doc As New C1PrintDocument() Dim raGroupId As New RenderArea() ' 按照需求设置raGroupId的属性... raGroupID.DataBinding.DataSource = dataSet raGroupID.DataBinding.Name = "GroupID" raGroupID.DataBinding.Grouping.Expressions.Add("Fields!GroupID.Value") Dim raSubGroupID As New RenderArea() ' 按照需求设置raSubGroupID的属性... raSubGroupID.DataBinding.DataSource = dataSet raSubGroupID.DataBinding.Grouping.Expressions.Add("Fields!SubGroupID.Value") raGroupID.Children.Add(raSubGroupID) Dim raDetail As New RenderArea() ' 按照需求设置raDetail属性... raDetail.DataBinding.DataSource = dataSet raSubGroupID.Children.Add(raDetail) ' 显示 Q 字段的值: Dim rtQ As New RenderText() rtQ.Text = "[Fields!Q.Value]" raDetail.Children.Add(rtQ) ' 显示内嵌分组 Q 字段的值之和(SubGroupID) Dim rtSumQ1 As New RenderText() rtSumQ1.Text = "[Sum(""Fields!Q.Value"")]" raDetail.Children.Add(rtSumQ1) ' 显示GroupID的所有Q字段的值之和: Dim rtSumQ2 As New RenderText() rtSumQ2.Text = "[Sum(\"Fields!Q.Value\", "\"GroupID\"")]" raDetail.Children.Add(rtSumQ2) ' 显示整个数据集Q字段的值之和: Dim rtSumQ3 As New RenderText() rtSumQ3.Text = "[Sum(\"Fields!Q.Value\", "\"DataSet\"")]" raDetail.Children.Add(rtSumQ3) doc.Body.Children.Add(raGroupId) |
C#
C# |
拷贝代码
|
---|---|
C1PrintDocument doc = new C1PrintDocument(); RenderArea raGroupId = new RenderArea(); // 按照需求设置raGroupId的属性... raGroupID.DataBinding.DataSource = dataSet; raGroupID.DataBinding.Name = "GroupID"; raGroupID.DataBinding.Grouping.Expressions.Add("Fields!GroupID.Value"); RenderArea raSubGroupID = new RenderArea(); // 按照需求设置raSubGroupID的属性... raSubGroupID.DataBinding.DataSource = dataSet; raSubGroupID.DataBinding.Grouping.Expressions.Add("Fields!SubGroupID.Value"); raGroupID.Children.Add(raSubGroupID); RenderArea raDetail = new RenderArea(); // 按照需求设置raDetail属性... raDetail.DataBinding.DataSource = dataSet; raSubGroupID.Children.Add(raDetail); // 显示 Q 字段的值: RenderText rtQ = new RenderText(); rtQ.Text = "[Fields!Q.Value]"; raDetail.Children.Add(rtQ); // 显示内嵌分组 Q 字段的值之和(SubGroupID) RenderText rtSumQ1 = new RenderText(); rtSumQ1.Text = "[Sum(\"Fields!Q.Value\")]"; raDetail.Children.Add(rtSumQ1); // 显示GroupID的所有Q字段的值之和: RenderText rtSumQ2 = new RenderText(); rtSumQ2.Text = "[Sum(\"Fields!Q.Value\", "\"GroupID\"")]"; raDetail.Children.Add(rtSumQ2); // 显示整个数据集Q字段的值之和: RenderText rtSumQ3 = new RenderText(); rtSumQ3.Text = "[Sum(\"Fields!Q.Value\", "\"DataSet\"")]"; raDetail.Children.Add(rtSumQ3); doc.Body.Children.Add(raGroupId); |
当以上文档生成时,每一个raDetail分组的实例将显示以下四个值: