教程:向报表添加 KPI(报表生成器)
关键绩效指标 (KPI) 是对业务具有重大意义的可测量值。 本教程教您如何在报表中包含一个 KPI。 在本教程中,按产品子类别进行的销售汇总为 KPI。 可以使用颜色、仪表和指示器来显示 KPI 的当前状态。
下图显示了将创建的报表。
学习内容
在本教程中,将学习如何通过基于单元值设置表单元的背景色来添加 KPI,以及添加和配置仪表和指示器。 还将学习如何编写设置表单元的背景色的表达式。
本教程包含下列过程:
注意
在本教程中,将向导的多个步骤合并为两个过程:一个用于创建数据集,一个用于创建表。 有关如何浏览到报表服务器、选择数据源、创建数据集和运行向导的分步说明,请参阅本系列的第一个教程:教程:创建基本表报表(报表生成器)。
完成本教程的估计时间:15 分钟。
要求
有关要求的详细信息,请参阅教程先决条件(报表生成器)。
1.使用表向导或矩阵向导创建表报表和数据集
在“入门”对话框中,选择共享数据源,创建嵌入数据集,并在表中显示数据。
注意
在本教程中,由于查询包含了数据值,因此它不需要外部数据源。 这样,查询就会非常长。 在业务环境中,查询不会包含数据。 本教程中的查询仅供学习使用。
创建新表
单击“开始”,指向“程序”,指向“Microsoft SQL Server 2012 Report Builder”,然后单击“Report Builder”。
此时将显示 “入门” 对话框。
注意
如果未显示“入门”对话框,请在“Report Builder”按钮中单击“新建”。
在左窗格中,确认已选中 “新建报表” 。
在右窗格中,单击“表或矩阵向导”。
在“选择数据集”页上,单击“ 创建数据集”。
单击“下一步”。
在“选择数据源的连接”页上,选择现有数据源或浏览到报表服务器并选择一个数据源。 如果没有可用数据源,或无权访问报表服务器,可以改用嵌入数据源。 有关详细信息,请参阅教程:创建基本表报表(报表生成器)。
单击“下一步”。
在“设计查询”页上,单击“编辑为文本” 。
复制并将以下查询粘贴到查询窗格中:
SELECT CAST('2009-01-05' AS date) as SalesDate, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(16996.60 AS money) AS Sales, 68 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Accessories' as Subcategory, 'Tripod' as Product, CAST(1350.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-11' AS date) as SalesDate, 'Accessories' as Subcategory, 'Lens Adapter' as Product, CAST(1147.50 AS money) AS Sales, 17 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Accessories' as Subcategory, 'Mini Battery Charger' as Product, CAST(1056.00 AS money) AS Sales, 44 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate, 'Accessories' as Subcategory, 'Telephoto Conversion Lens' as Product, CAST(1380.00 AS money) AS Sales, 18 as Quantity UNION SELECT CAST('2009-01-06' AS date) as SalesDate,'Accessories' as Subcategory, 'USB Cable' as Product, CAST(780.00 AS money) AS Sales, 26 as Quantity UNION SELECT CAST('2009-01-08' AS date) as SalesDate, 'Accessories' as Subcategory, 'Budget Movie-Maker' as Product, CAST(3798.00 AS money) AS Sales, 9 as Quantity UNION SELECT CAST('2009-01-09' AS date) as SalesDate, 'Camcorders' as Subcategory, 'Business Videographer' as Product, CAST(10400.00 AS money) AS Sales, 13 as Quantity UNION SELECT CAST('2009-01-10' AS date) as SalesDate, 'Camcorders' as Subcategory, 'Social Videographer' as Product, CAST(3000.00 AS money) AS Sales, 60 as Quantity UNION SELECT CAST('2009-01-11' AS date) as SalesDate, 'Digital' as Subcategory, 'Advanced Digital' as Product, CAST(7234.50 AS money) AS Sales, 39 as Quantity UNION SELECT CAST('2009-01-07' AS date) as SalesDate, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(10836.00 AS money) AS Sales, 84 as Quantity UNION SELECT CAST('2009-01-08' AS date) as SalesDate, 'Digital' as Subcategory, 'Consumer Digital' as Product, CAST(2550.00 AS money) AS Sales, 17 as Quantity UNION SELECT CAST('2009-01-05' AS date) as SalesDate, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(8357.80 AS money) AS Sales, 44 as Quantity UNION SELECT CAST('2009-01-09' AS date) as SalesDate, 'Digital SLR' as Subcategory, 'SLR Camera 35mm' as Product, CAST(18530.00 AS money) AS Sales, 34 as Quantity UNION SELECT CAST('2009-01-07' AS date) as SalesDate, 'Digital SLR' as Subcategory, 'SLR Camera' as Product, CAST(26576.00 AS money) AS Sales, 88 as Quantity
单击“下一步”。
2. 从表或矩阵向导中组织数据、选择布局和样式
使用此向导可提供用于显示数据的起始设计。 此向导中的预览窗格可帮助您在完成表或矩阵设计之前将对数据进行分组的结果可视化。
若要将数据组织成组,请选择布局和样式
在“排列字段”页上,将 Product 拖到“值”中。
将 Quantity 拖到“值”中并将其置于 Product 下方。
将使用汇总数值字段的默认函数 Sum 函数对 Quantity 进行汇总。
将 Sales 拖到“值”中并将其放在 Quantity 下面。
步骤 1、2 和 3 指定要在表中显示的数据。
将 SalesDate 拖到“行组”中。
将 Subcategory 拖到“行组”中并将其置于 SalesDate 下方。
步骤 4 和 5 首先按日期组织字段的值,然后按照该日期的所有销售组织字段的值。
单击“下一步”。
当您运行报表时,表将显示每个日期、每个日期的所有订单以及每个订单的所有产品、数量和销售额总计。
在“选择布局”页的“选项”下,确认已选择“显示小计和总计” 。
验证是否选择了“分块式,小计下方显示”。
清除“展开/折叠组”选项。
在本教程中,创建的报表不会使用明细功能(用户可通过此功能来展开父组层次结构)来显示子组行和详细信息行。
单击“下一步”。
在“选择样式”页的“样式”窗格中,选择样式。
已完成报表的图采用“海洋”样式显示报表。
单击“完成”。
表将添加到设计图面中。 此表有五个列和五个行。 “行组”窗格显示三个行组:“SalesDate”、“Subcategory”和“Details”。 详细信息数据是由数据集查询检索的所有数据。
单击 “运行” 以预览报表。
对于在特定日期销售的每个产品,表显示产品名称、销售数量及销售额总计。 此数据首先按销售日期组织,然后按子类别组织。
3.使用背景色显示 KPI
可将背景色设置为运行报表时计算的表达式。
使用背景色显示 KPI 的当前状态
在表中,右键单击单元格 (
[Sum(Sales)]
显示子类别) 销售额的分类汇总行的两个单元格,然后单击“ 文本框属性”。在“填充”中,单击“填充颜色”选项旁边的 fx 按钮,然后在“设置表达式”中输入以下表达式:BackgroundColor 字段:
=IIF(Sum(Fields!Sales.Value) >= 5000 ,"Lime", IIF(Sum(Fields!Sales.Value) < 2500, "Red","Yellow"))
对于包含大于或等于 5000 的 [Sum(Sales)]
聚合汇总的每个单元,该表达式会使用名为“Lime”的绿色阴影,将背景色会更改为绿色。 2500 和 5000 之间的 [Sum(Sales)]
值会变为黄色。 小于 2500 的值会变为红色。
单击“确定”。
单击 “运行” 以预览报表。
在显示子类别销售额的小计行中,根据销售额总计的值,单元的背景色为红色、黄色或绿色。
4.使用仪表显示 KPI
仪表显示数据集中的单个值。 本教程使用水平线性仪表,因为即使是在该仪表较小或在表单元内使用的情况下,其形状和简便性也使其易于读取。 有关详细信息,请参阅仪表(报表生成器和 SSRS)。
使用仪表显示 KPI 的当前状态
切换到“设计”视图。
在表中,右键单击在上一过程中更改的单元格的列处理程序,指向 “插入列”,然后单击“ 向右”。 此时将向表添加一个新列。
在列标题中键入 KPI 。
在“ 插入 ”选项卡上的“ 数据区域 ”组中,单击“ 仪表”,然后单击表外部的设计图面。 此时将显示 “选择仪表类型” 对话框。
单击“ 线性”。 选择第一个线性仪表类型 “水平”。
单击 “确定” 。
此时将向设计图面添加一个仪表。
从“报表数据”窗格,将 Sales 拖至该仪表。 当您在仪表中拖动 Sales 时,将打开“仪表数据”窗格。
在 “值 ”列表中删除“销售额”。
将该字段拖到仪表中时,将使用内置 Sum 函数聚合该字段。
右键单击仪表中的指针,然后单击“ 指针属性”。
在 “指针类型”中,选择“ 条形图”。 这会将指针从标记改为条形,从而在将仪表添加到表中时更加清晰可见。
单击“ 指针填充”。 在 “辅助颜色”中, 选择 “黄色”。 渐变填充模式将从白色改为黄色。
右键单击仪表中的刻度,然后单击“刻度属性”。
将 “最大值 ”选项设置为 25000。
备注
可以使用一个表达式动态计算“最大值”选项的值来代替常数(如 25000)。 该表达式将使用聚合功能的聚合,类似于表达式
=Max(Sum(Fields!Sales.value), "Tablix1")
。将表内的仪表拖到所插入列的小计行(此行显示子类别的销售额)的第三个单元中。
注意
可能需要调整列大小,以使单元能够容纳水平线性仪表。 若要调整列大小,请单击列标题,并使用控点水平和垂直调整单元大小。
单击 “运行” 以预览报表。
仪表中条形的水平长度将根据 KPI 的值变化。
(可选)添加处理溢出的最大刻度格,以使超出最大刻度的任何值始终指向最大刻度格:
打开“属性”窗格。
单击刻度。 该线性刻度的属性将显示在“属性”窗格中。
在 “缩放引脚” 类别中,展开 “MaximumPin” 节点。
将 Enable 属性设置为
True
。 随即将在刻度的最大值之后显示一个刻度格。将 BorderColor 设置为
Lime
。
单击 “运行” 以预览报表。
5.使用指示器显示 KPI
指示器是以直观的形式传递数据值的小巧而简单的仪表。 由于指示器尺寸较小且具有简便性,其经常被用于表和矩阵中。 有关详细信息,请参阅指示器(报表生成器和 SSRS)。
使用指示器显示 KPI 的当前状态
切换到“设计”视图。
在表中,右键单击在上一过程中更改的单元格的列处理程序,指向 “插入列”,然后单击“ 向右”。 此时将向表添加一个新列。
在列标题中键入 KPI 。
单击子类别小计的单元。
在“ 插入 ”选项卡上的“ 数据区域 ”组中,双击“ 指示器”。
“选择指示器类型”对话框即会打开。
单击“ 形状”。 选中第一个形状类型 “3 个红绿灯” (“未) ”。
在本教程中,您将使用该指示器。
单击“确定”。
该指示器将添加到设计图面中。
右键单击指示器,然后单击“指示器属性”。
单击“ 值和状态”。
在“值”下拉列表中,选择“ [总和 (销售额) ],但不要更改任何其他选项。
默认情况下,数据区域会发生数据同步,且将在“同步作用域”框中看到“Tablix1”值(报表中表数据区域的名称)。
在该报表中,还可以更改放在子类别小计单元中的指示器的作用域,以在 SalesDate 字段内同步。
单击 “运行” 以预览报表。
6.添加报表标题
报表标题将出现在报表的顶部。 可以将报表标题置于报表表头中或置于表体顶部的文本框中(如果报表未使用表头)。 您将使用自动放在表体顶部的文本框。
通过将不同的字体样式、大小和颜色应用于文本的短语和单个字符,可以进一步增强文本。 有关详细信息,请参阅设置文本框中文本的格式(报表生成器和 SSRS)。
添加报表标题
在设计图面上,单击“单击以添加标题”。
键入 “产品销售 KPI”,然后在文本框外部单击。
(可选)右键单击包含 Product Sales KPI 的文本框,单击“ 文本框属性”,然后在“字体”选项卡上选择不同的字体样式、大小和颜色。
单击 “运行” 以预览报表。
7.保存报表
将报表保存到报表服务器或计算机上。 如果不将报表保存到报表服务器上,则许多 Reporting Services 功能(如报表部件和子报表)将不可用。
将报表保存到报表服务器
从 “报表生成器” 按钮,单击 “另存为” 。
单击 “最近使用的站点和服务器” 。
选择或键入您拥有保存报表权限的报表服务器的名称。
此时将显示“正在连接到报表服务器”消息。 当连接完成时,您将看到报表服务器管理员指定为报表默认位置的报表文件夹的内容。
在“名称”中,用 Product Sales KPI 替换默认名称 。
单击“ 保存”。
报表即已保存至报表服务器。 您连接的报表服务器的名称将显示在窗口底部的状态栏中。
将报表保存到计算机上
从 “报表生成器” 按钮,单击 “另存为” 。
依次单击“桌面”、“我的文档”或“我的电脑”,并浏览到要保存该报表的文件夹 。
备注
如果无权访问报表服务器,请单击“桌面”、“我的文档”或“我的电脑”,将报表保存到计算机上。
在“名称”中,用 Product Sales KPI 替换默认名称 。
单击“ 保存”。
后续步骤
您已成功完成“向报表添加 KPI”教程的学习。 有关详细信息,请参阅仪表 (Report Builder) 指示器 (Report Builder和 SSRS) 。