使用C1ReportDesigner > 报表中的图表 > 总结图表 |
包含在Reports for WinForms的2009v3版本的图表具有一个强大的新功能叫做“图表自动汇总”。该功能允许您选择一个汇总功能(求和,平均值,标准差等等),然后可以对具有相同分组(DataX)的数据值(DataY)进行自动汇总。
为了演示此功能,假设我们有一个“Invoices”报表,该报表按照国家,客户以及订单ID对数据进行分组。
该报表的结构如下所示:
报表页眉区域 |
页眉区域 |
分组页眉区域(Country) |
分组页眉区域(Customer) |
分组页眉区域(OrderID) |
内容区域 |
分组页脚区域(OrderID) |
分组页脚区域(Customer) |
分组页脚区域(Country)) |
页脚区域 |
报表页脚区域 |
假设您希望向每一个Country分组的页眉区域添加一个图表,用做显示当前国家不同客户的订单总金额。
首先请向“Country”的页眉区域添加一个图表字段,并设置DataX以及DataY属性的值如下所示:
DataX= "CustomerName"
DataY= "ExtendedPrice"
这将无法正常工作,每一个国家的数据中,针对每一个用户通常包含若干条记录,而图表会为每一条记录生成一条数据点。图表无法智能推测您实际需要的是将每一个客户的记录累加至一个单一的数据点。
为了解决这种情况,我们为图表字段添加了一个Aggregate属性。该属性告诉图表如何对具有相同分组的数据进行汇总并归并为一个数据点在图表中进行展示。可以设置Aggregate属性对数据执行任何常见的汇总功能:求和、平均值、计数、最大值、最小值、标准偏差以及方差。
继续回到我们的示例,现在我们可以简单地设置图表的Aggregate属性为“Sum”。这将使得图表把属于同一个客户的不同记录的“ExtendedPrice”字段的值累加为一个单独的数据点。结果如下面所示:
请注意每一个客户是如何仅在图表上出现一次的。图表上显示的值和具有相同的“Customer”字段值的记录的“ExtendedPrice”的值之和相关。
由于该图表位于“Country”分组页眉区域,则该图表将为每一个不同的国家重复显示,包含该国家中全部的客户的订单总和信息。
如果将此报表放置在报表页眉区域,则它将对整个报表的全部数据进行汇总。例如,您希望在“Invoices”报表的开始部分放置一个图表用来显示每一个销售人员订单的总金额。为了做到这一点,您需要在报表的页眉部分添加一个图表字段,并设置其属性如下:
由于图表放置在报表的页眉区域,则其显示的值将包括全部的国家以及客户的信息。如果将此图表字段从报表页眉区域移动到“Country”分组的分组页眉区域,您将获取一个按照不同国家显示的一个类似的图表,显示在该国家范围内,不同的销售人员的总销售金额记录。