向图表数据区域添加数据 (Report Builder 2.0)
将图表数据区域添加到设计图面后,可以将数值数据和非数值数据的报表数据集字段拖到图表的放置区中。左键单击设计图面上的图表时,将会显示三个放置区(序列、类别和数据)。如果已为报表定义了数据集,则数据集中的结果字段将会显示在“报表数据”窗格中。将数据集中的字段拖到适当放置区。默认情况下,将字段添加到图表的其中一个字段放置区时,Reporting Services 会计算字段的聚合。您还可以使用序列分组动态生成序列。图表还与矩阵关系密切。
注意 如果是在设计时添加数据,则设计时的结果图表看起来会与处理报表时的结果图表不同。设计时创建的数据并不是实际数据。已添加的是生成的数据,这样您就可以设计近似所见即所得的图表。
聚合图表上数据字段中的值
默认情况下,将字段添加到图表的数据字段放置区时,Reporting Services 会计算字段的聚合。如果将字段拖到图表上而将未将字段拖到特定放置区中,则图表将基于字段的数据类型来确定该字段是属于分类 (x) 轴还是属于值 (y) 轴。使用 SUM 函数可聚合拖放到数据字段放置区中的数值字段。如果值字段的数据类型是数据字段放置区中的字符串,则图表将无法显示数值,即使字段中有数字,因此图表会显示 COUNT 函数。若要避免该行为,请确保使用的字段是数值数据类型的,而不是包含格式化数字的字符串。可以使用 Visual Basic 表达式以将字符串值转换为使用 CDbl 或 CInt 常量的数值数据类型。例如,以下复杂表达式会转换名为 MyField 且包含格式为字符串的数值的字段。
=Sum(CDbl(Fields!MyField.Value))
有关聚合表达式的详细信息,请参阅在表达式中使用内置报表函数和聚合函数 (Report Builder 2.0)。
向图表添加数据
假定您具有一个显示“按名称的销售情况”的报表。将“名称”字段拖放到类别字段放置区并将“销售量”字段拖放到数据字段放置区。
将“销售量”字段添加到数据字段放置区时,数据字段的文本将出现在图例中,并且数值字段的数据将会聚合为一个值。默认情况下,是使用内置函数 Sum 来聚合值的。图表放置区将为您的字段包含一个简单表达式。在我们的示例中,将针对字段表达式 =Sum(Fields!Sales.Value) 显示 [Sum(Sales)]。如果未指定任何组,则图表将仅显示一个数据点。为了显示多个数据点,必须通过添加分组字段来对数据进行分组。将“名称”字段添加到类别字段放置区时,与字段的名称相同的分组字段将会自动添加到图表。添加定义沿 x 和 y 轴的值的字段后,图表将有足够的信息以正确绘制数据。
序列字段放置区保留为空时,序列数将在设计时固定。在本示例中,销售额是唯一显示在图表中的序列。
向图表添加序列分组
在前面的示例中,假定向序列字段放置区添加了“年份”字段。“年份”字段中值的数量将决定图表中显示序列的数量。如果将某个字段添加到序列字段放置区,则序列的数量将取决于该字段中包含的数据。如果“年份”字段包含 2004、2005 和 2006 年,则图表将为数据放置区中的每个字段都显示三个序列。
与矩阵的相似之处
图表的行为与 Tablix 控件的矩阵模板行为的相同之处:
矩阵上的“列”字段放置区与图表上的类别组放置区相同。
矩阵上的“行”字段放置区与图表上的序列组放置区相同。
矩阵上的“数据”字段放置区与图表上的数据字段放置区相同。