第 2 课:添加折线图和迷你图 (SSRS)

在本课程中,您将学习如何向 Employee_Sales_Summary_2008R2 报表添加报表项,以帮助 AdventureWorks 销售人员回答以下问题:

  • 我的季节性销售额与往年销售额相比情况如何?

您将需要添加嵌入在矩阵中的折线图和迷你图,从而形象演示 EmployeeSalesYearOverYear2008R2 数据集中的各年销售数据。

学习内容

在本课程中,您将执行以下任务:

  • 将数年中各月的销售额显示在折线图中。

  • 通过添加一个嵌套的迷你图,在矩阵中直观演示相同数据。

  • 添加自定义代码,用于控制每个图中图线的颜色,以便用同一种颜色代表同一年。

  • 为说明性文本、折线图和矩阵添加一个矩形容器。

  • 从应用场景文本中的单词到相应的数据区域添加一个书签。

本教程的预计学时:15 分钟。

提示

回顾关于先在设计图面上配置数据区域而后将这些区域添加到矩形的提示。有关详细信息,请参阅报表设计提示(Report Builder 3.0 和 SSRS)

打开项目和报表

  1. 在 Business Intelligence Development Studio 中,打开您在上一课中创建的报表服务器项目 AdventureWorks 2008R2 示例报表。

  2. 打开 Employee_Sales_Summary_2008R2 报表。

展开报表高度以容纳图表

  1. 选择包含有关参数、数据源和数据集的信息性文本的矩形。

  2. 按向下箭头键以向页面下方移动矩形。报表将自动增加高度。

  3. 如果需要,使用**“报表”工具栏的“缩放”**调整报表设计区域的视图。

添加和配置折线图

  1. 在应用场景切换文本框之下插入一个**“图表”**。

  2. 在**“选择图表类型”中,使用工具提示选择“折线”**图。

  3. 将该图表拖到报表左侧包含切换功能的文本框下方。使用 Ctrl + 箭头键将图表微调到正确的位置。

  4. 验证已选择了此图表,并且在“属性”窗格中显示了图表属性。

  5. 使用 Shift + 箭头键将图表的宽度和高度展开到约为 3.75 英寸。在“属性”窗格中,展开**“大小”**以验证高度和宽度。

  6. 从 EmployeeSalesYearOverYear2008R2 数据集中,执行以下操作:

    1. 将 Sales 拖至“图表数据”窗格中的**“值”**。这便定义了垂直轴。

    2. 将 Month 拖到**“类别组”**中。这便定义了水平轴。

    3. 在“图表数据”窗格中,右键单击 Month 以配置**“类别组属性”。在“排序”**页上,按 MonthNumber 进行排序。这将控制水平轴上的排序顺序。

    4. 将 Year 拖到**“序列组”**中。这将为每年添加一行。

  7. 右键单击该图表直到选定该序列,然后打开**“序列属性”**。

  8. 在**“边框”**页上,执行以下操作:

    1. 将**“线条样式”设置为“实线”**。

    2. 将**“线条宽度”**设置为 2pt。

线条颜色是从默认调色板自动分配的。将根据序列组的排序顺序分配颜色。

配置图表标题和轴

  1. 将图表标题改为 Yearly Sales Comparison。

  2. 将序列图例的位置改为水平轴下方。

  3. 删除**“水平轴标题”**。

  4. 将垂直轴标题改为 In Thousands。

  5. 打开**“垂直轴属性”**。执行下列操作:

    1. 在**“数字”页上的“类别”中,键入“货币”**。

    2. 将**“小数位数”**设置为 0。

    3. 选择**“使用 1000 分隔符”**。

    4. 选择**“值的显示位置”,然后选择“千”**。

  6. 打开**“水平轴属性”。在“轴选项”**页上,执行以下操作:

    1. 从**“轴类型”中,选择“标量(数字/日期)”**。

    2. 将**“间隔”**更改为 1。

  7. 在**“标签”页上,选择“禁用自动调整”并将“标签旋转角度(度)”**设置为 45。

  8. 在**“数字”页上,将“类别”设置为“日期”,将“类型”设置为“*1/31/2000”**。

添加矩阵

  1. 在折线图下方插入**“矩阵”**。

  2. 将矩阵的左侧与折线图的左侧对齐。

  3. 从 EmployeeSalesYearOverYear 数据集中,执行以下操作:

    1. 将 [Year] 拖到**“行”**中。

    2. 将 Sales 拖到**“数据”中。将文本框的格式设置为“货币”**。

    3. 按需设置标题行的格式。

  4. 选择该矩阵。在“属性”窗格中,将**“书签”**设置为 MatrixwithNestedSparkline。

  5. 按需设置矩阵标题的格式。

向 Tablix 单元中添加嵌套迷你图

  1. 在矩阵中,右键单击 Sales 列,指向**“插入列”,然后单击“组外部 - 右侧”**。

  2. 抓住列控点,扩展宽度以与图表的右侧对齐。

  3. 右键单击第二行中的最后一个单元,指向**“插入”,单击“迷你图”,然后使用“工具提示”添加“有标记的折线图”**。

  4. 若要配置迷你图,请执行以下操作:

    1. 从 EmployeeSalesYearOverYear 数据集中,将 Sales 拖到**“值”**中。

    2. 将 Month 拖到**“类别组”**中。

    3. 右键单击 Month,以打开**“类别组属性”**对话框。

    4. 在**“常规”页上的“同步其中的组”**中,选择 Tablix1。每个迷你图的类别轴都将根据矩阵中的所有组数据(而非单独每行的组数据)使用相同的最小值和最大值。

    5. 在**“排序”页上,将“排序依据”**表达式设置为 [MonthNumber]。

对于嵌套的迷你图,作用域中只有一个序列组,因此,每行的颜色基于默认调色板中的第一个颜色。

在下一步中,您将自定义代码,以控制基于组表达式分配给序列组的颜色的顺序。这样,与每年对应的行在折线图和迷你图中将具有相同的颜色。

使折线图和迷你图中的线条颜色对应起来

  1. 在**“报表”属性中的“代码”**页上,向报表添加以下自定义代码:

    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
    

    在本例中,只有三年的数据,因此只定义了三种颜色。

  2. 在折线图上,右键单击线条直到图表序列出现在“属性”窗格中,然后单击**“序列属性”**。

  3. 在**“填充”页的“颜色”**中,输入以下表达式:

    =IIF(Fields!Year.Value IS NOTHING,"Black",Code.GetColor(Fields!Year.Value))

  4. 对迷你图重复执行第 2 步和第 3 步。

  5. 预览报表。

与每年对应的行颜色在折线图和迷你图中是相同的。

添加矩形容器

  1. 右键单击报表**“主体”,指向“插入”,然后单击“矩形”**。

  2. 在**“矩形属性”,将“名称”**更改为 rectCharts。

  3. 向该矩形添加具有以下文本的名为 tbChartPurpose 的文本框:按年度比较季节性销售。

  4. 按需设置格式。

  5. 选择折线图。将该图的左上角拖入该矩形。矩形将展开以包含此图表。

  6. 抓住该矩形的底部控点,并向下拖动。若要选择该矩形,请单击该图,然后按 ESC 直到“属性”窗格工具栏将 Rectangle1 显示为所选对象。

  7. 将矩阵的左上角拖至矩形中该图的下方。

  8. 将图表和矩阵均置于矩形之内。

  9. 在矩形的“属性”窗格中,将**“书签”**设置为 YearlySalesRectangle。

  10. 将该矩形移到切换文本框之下。

使用矩形作为容器,以便更轻松地定位多个相关的报表项。

添加从文本至书签的链接

  1. 单击文本框 tbScenario,直至显示所有文本。

  2. 突出显示单词 line,右键单击并打开**“文本属性”**对话框。

  3. 在**“字体”页上,将“颜色”设置为“蓝色”,将“效果”设置为“下划线”**。

  4. 在**“操作”页上,单击“转到书签”**。

  5. 在**“选择书签”**中,输入 YearlySalesRectangle。

  6. 对 sparkline 一词重复执行第 2 步到第 4 步。

  7. 在**“选择书签”**中,键入 MatrixwithNestedSparkline。

预览并验证报表

  1. 预览报表。

  2. 检查下列各项:

    1. 在矩形容器中,标签、折线图与具有嵌入迷你图的矩阵具有相同的宽度,并且相互对齐。

    2. 折线图和迷你图显示相同的数据。例如,2005 年的销售只出现在该年的下半年。

    3. 折线图和迷你图均使用以下线条颜色来表示各年销售数据:2005 年表示为**“蓝色”、2006 年表示为“橙色”、2007 年表示为“绿色”**。

    4. 切换应用场景文本,然后单击 line。报表将跳转至包含具有折线图的矩形的页。

    5. 滚动到报表顶部。在应用场景文本中,单击 sparkline。报表将跳转到其中包含矩阵(具有嵌套迷你图)的页。