第 2 课:添加折线图和迷你图 (SSRS)
在本课程中,您将学习如何向 Employee_Sales_Summary_2008R2 报表添加报表项,以帮助 AdventureWorks 销售人员回答以下问题:
- 我的季节性销售额与往年销售额相比情况如何?
您将需要添加嵌入在矩阵中的折线图和迷你图,从而形象演示 EmployeeSalesYearOverYear2008R2 数据集中的各年销售数据。
学习内容
在本课程中,您将执行以下任务:
将数年中各月的销售额显示在折线图中。
通过添加一个嵌套的迷你图,在矩阵中直观演示相同数据。
添加自定义代码,用于控制每个图中图线的颜色,以便用同一种颜色代表同一年。
为说明性文本、折线图和矩阵添加一个矩形容器。
从应用场景文本中的单词到相应的数据区域添加一个书签。
本教程的预计学时:15 分钟。
打开项目和报表
在 Business Intelligence Development Studio 中,打开您在上一课中创建的报表服务器项目 AdventureWorks 2008R2 示例报表。
打开 Employee_Sales_Summary_2008R2 报表。
展开报表高度以容纳图表
选择包含有关参数、数据源和数据集的信息性文本的矩形。
按向下箭头键以向页面下方移动矩形。报表将自动增加高度。
如果需要,使用**“报表”工具栏的“缩放”**调整报表设计区域的视图。
添加和配置折线图
在应用场景切换文本框之下插入一个**“图表”**。
在**“选择图表类型”中,使用工具提示选择“折线”**图。
将该图表拖到报表左侧包含切换功能的文本框下方。使用 Ctrl + 箭头键将图表微调到正确的位置。
验证已选择了此图表,并且在“属性”窗格中显示了图表属性。
使用 Shift + 箭头键将图表的宽度和高度展开到约为 3.75 英寸。在“属性”窗格中,展开**“大小”**以验证高度和宽度。
从 EmployeeSalesYearOverYear2008R2 数据集中,执行以下操作:
将 Sales 拖至“图表数据”窗格中的**“值”**。这便定义了垂直轴。
将 Month 拖到**“类别组”**中。这便定义了水平轴。
在“图表数据”窗格中,右键单击 Month 以配置**“类别组属性”。在“排序”**页上,按 MonthNumber 进行排序。这将控制水平轴上的排序顺序。
将 Year 拖到**“序列组”**中。这将为每年添加一行。
右键单击该图表直到选定该序列,然后打开**“序列属性”**。
在**“边框”**页上,执行以下操作:
将**“线条样式”设置为“实线”**。
将**“线条宽度”**设置为 2pt。
线条颜色是从默认调色板自动分配的。将根据序列组的排序顺序分配颜色。
配置图表标题和轴
将图表标题改为 Yearly Sales Comparison。
将序列图例的位置改为水平轴下方。
删除**“水平轴标题”**。
将垂直轴标题改为 In Thousands。
打开**“垂直轴属性”**。执行下列操作:
在**“数字”页上的“类别”中,键入“货币”**。
将**“小数位数”**设置为 0。
选择**“使用 1000 分隔符”**。
选择**“值的显示位置”,然后选择“千”**。
打开**“水平轴属性”。在“轴选项”**页上,执行以下操作:
从**“轴类型”中,选择“标量(数字/日期)”**。
将**“间隔”**更改为 1。
在**“标签”页上,选择“禁用自动调整”并将“标签旋转角度(度)”**设置为 45。
在**“数字”页上,将“类别”设置为“日期”,将“类型”设置为“*1/31/2000”**。
添加矩阵
在折线图下方插入**“矩阵”**。
将矩阵的左侧与折线图的左侧对齐。
从 EmployeeSalesYearOverYear 数据集中,执行以下操作:
将 [Year] 拖到**“行”**中。
将 Sales 拖到**“数据”中。将文本框的格式设置为“货币”**。
按需设置标题行的格式。
选择该矩阵。在“属性”窗格中,将**“书签”**设置为 MatrixwithNestedSparkline。
按需设置矩阵标题的格式。
向 Tablix 单元中添加嵌套迷你图
在矩阵中,右键单击 Sales 列,指向**“插入列”,然后单击“组外部 - 右侧”**。
抓住列控点,扩展宽度以与图表的右侧对齐。
右键单击第二行中的最后一个单元,指向**“插入”,单击“迷你图”,然后使用“工具提示”添加“有标记的折线图”**。
若要配置迷你图,请执行以下操作:
从 EmployeeSalesYearOverYear 数据集中,将 Sales 拖到**“值”**中。
将 Month 拖到**“类别组”**中。
右键单击 Month,以打开**“类别组属性”**对话框。
在**“常规”页上的“同步其中的组”**中,选择 Tablix1。每个迷你图的类别轴都将根据矩阵中的所有组数据(而非单独每行的组数据)使用相同的最小值和最大值。
在**“排序”页上,将“排序依据”**表达式设置为 [MonthNumber]。
对于嵌套的迷你图,作用域中只有一个序列组,因此,每行的颜色基于默认调色板中的第一个颜色。
在下一步中,您将自定义代码,以控制基于组表达式分配给序列组的颜色的顺序。这样,与每年对应的行在折线图和迷你图中将具有相同的颜色。
使折线图和迷你图中的线条颜色对应起来
在**“报表”属性中的“代码”**页上,向报表添加以下自定义代码:
Private colorPalette As String() = {"Blue", "Orange", "Green"} Private count As Integer = 0 Private mapping As New System.Collections.Hashtable() Public Function GetColor(ByVal groupingValue As String) As String If groupingValue = Nothing Then Return "Black" End If If mapping.ContainsKey(groupingValue) Then Return mapping(groupingValue) End If Dim c As String = colorPalette(count Mod colorPalette.Length) count = count + 1 mapping.Add(groupingValue, c) Return c End Function
在本例中,只有三年的数据,因此只定义了三种颜色。
在折线图上,右键单击线条直到图表序列出现在“属性”窗格中,然后单击**“序列属性”**。
在**“填充”页的“颜色”**中,输入以下表达式:
=IIF(Fields!Year.Value IS NOTHING,"Black",Code.GetColor(Fields!Year.Value))
对迷你图重复执行第 2 步和第 3 步。
预览报表。
与每年对应的行颜色在折线图和迷你图中是相同的。
添加矩形容器
右键单击报表**“主体”,指向“插入”,然后单击“矩形”**。
在**“矩形属性”,将“名称”**更改为 rectCharts。
向该矩形添加具有以下文本的名为 tbChartPurpose 的文本框:按年度比较季节性销售。
按需设置格式。
选择折线图。将该图的左上角拖入该矩形。矩形将展开以包含此图表。
抓住该矩形的底部控点,并向下拖动。若要选择该矩形,请单击该图,然后按 ESC 直到“属性”窗格工具栏将 Rectangle1 显示为所选对象。
将矩阵的左上角拖至矩形中该图的下方。
将图表和矩阵均置于矩形之内。
在矩形的“属性”窗格中,将**“书签”**设置为 YearlySalesRectangle。
将该矩形移到切换文本框之下。
使用矩形作为容器,以便更轻松地定位多个相关的报表项。
添加从文本至书签的链接
单击文本框 tbScenario,直至显示所有文本。
突出显示单词 line,右键单击并打开**“文本属性”**对话框。
在**“字体”页上,将“颜色”设置为“蓝色”,将“效果”设置为“下划线”**。
在**“操作”页上,单击“转到书签”**。
在**“选择书签”**中,输入 YearlySalesRectangle。
对 sparkline 一词重复执行第 2 步到第 4 步。
在**“选择书签”**中,键入 MatrixwithNestedSparkline。
预览并验证报表
预览报表。
检查下列各项:
在矩形容器中,标签、折线图与具有嵌入迷你图的矩阵具有相同的宽度,并且相互对齐。
折线图和迷你图显示相同的数据。例如,2005 年的销售只出现在该年的下半年。
折线图和迷你图均使用以下线条颜色来表示各年销售数据:2005 年表示为**“蓝色”、2006 年表示为“橙色”、2007 年表示为“绿色”**。
切换应用场景文本,然后单击 line。报表将跳转至包含具有折线图的矩形的页。
滚动到报表顶部。在应用场景文本中,单击 sparkline。报表将跳转到其中包含矩阵(具有嵌套迷你图)的页。