SSRS – 使用柱状图
这是一个非常基础的图表示例,不需要太多头脑风暴。目的是展示在 SSRS 中创建报表是多么容易。
引言
很多时候,您会注意到公司的高层管理者和资深成员经常处理数字和大量数据,如果他们能获得对其数据的汇总、易于理解的图形表示,那总是很有益的。SQL Server Reporting Services (SSRS) 是解决他们担忧的解决方案之一。它使用户能够生成具有各种功能的报表,这些报表不仅易于实现,而且在做出业务决策方面非常有效。在这篇文章和未来的文章中,我将尝试通过简单的示例向您介绍这个广泛的探索领域。
使用代码
目标
创建一个“每位员工的总销售额”报表,以柱状图格式显示员工及其总销售额。 以下步骤将帮助您设计此报表。
- 启动 SQL Server Business Intelligence Development Studio(BI Development Studio 简介)
- 通过转到“文件”–>“新建”–>“项目”,然后选择“报表服务器项目”,创建一个报表项目,如下图所示。
- 为您的项目命名,并将您的项目放置在您选择的目录中。
- 单击“确定”按钮后,您将在解决方案资源管理器窗口中看到 3 个文件夹。
- 共享数据源: 此文件夹包含跨所有报表共享的数据源。因此,在生产环境中,当单个项目包含指向单个连接字符串的多个报表时,共享数据源是一个不错且理想的选择。在本课程中,我们将学习如何将数据源集成到报表中,因此不创建任何共享数据源。您可以自己探索此区域,因为两种创建数据源的方法是相同的。
- 共享数据集: 就像数据源本质上是数据库的连接字符串一样,您现在需要一个对象(或一个查询或存储过程),在数据库上执行该对象时,它将返回您需要在报表中显示的行。此定义存储在数据集(针对 SSRS)中。与共享数据集一样,当您需要在多个布局中显示相同/相似的数据时,共享数据源再次使用。或者,您可能有一个大型数据集,您打算从中创建多个报表。
- 报表: 这是您的报表所在的位置。您创建的每个报表,无论是使用共享数据集/数据源还是嵌入式数据集/数据源,都将位于此位置。您可以通过右键单击此文件夹并选择“添加新报表”来添加新报表,这将打开报表创建向导,或者只需转到“添加”->“新项”并从下面显示的窗口中选择“报表”。
- 为您的报表命名,然后单击“添加”按钮。您的报表现在位于“报表”文件夹下;双击该报表以在设计器窗口中打开它。
- 添加并打开报表后,IDE 的左侧会显示一个名为“报表数据”的新窗格,该窗格包含报表创建所需的另一组文件夹。
- 在“数据源”文件夹中,我们将创建仅供报表使用的嵌入式数据源。因此,我们将右键单击该文件夹,然后选择“添加数据源…” 这将打开一个窗口,我们在其中放置所需的连接字符串以指向我们的数据库。
- 为您的数据源命名,我通常喜欢给它加上前缀“ds”,表示数据源。 单击“编辑”按钮,将打开一个窗口(熟悉 .NET 应用程序开发背景的人应该会熟悉此窗口),如下图所示。
- 如果连接到 SQL Server 以外的数据库,请提供数据源类型。在此示例中,我们将继续使用 SQL Server 本身。
- 提供服务器名称,然后提供连接到该服务器的凭据。
- 稍后在名为“选择或输入数据库名称”的下拉列表中提供您的数据库名称。单击“测试连接”以验证您的输入,然后单击“确定”继续。
- 现在,您的数据源窗口将填充连接字符串。单击此窗口左侧的“凭据”链接。
- 您可以在此处提供连接字符串凭据,这样您就不必每次运行报表时都传递它们。单击“确定”继续。
- 类似地,我们现在将设置数据集,它包含根据上面数据源中指定的数据从数据库检索数据的定义。右键单击“数据集”文件夹,然后单击“添加数据集…”
- 选择“使用嵌入在我报表中的数据集”选项,以便您可以设置数据源和获取数据的查询。
- 从下拉列表中选择数据源,或者如果您尚未创建数据源,则可以创建一个新的数据源。
- 然后,您可以将查询定义为文本,或者只是数据库中的表,或者一个存储过程名称,它将检索您相关的数据。在本例中,我们将使用一个简单的查询,如下所示。
SELECT E.EmployeeId, EmployeeName, OrderPrice TotalRevenue FROM EmployeeProductOrder EPO INNER JOIN Employee E on EPO.salespersonid = E.employeeid
- 我现在应该向您解释用于此报表的数据库结构。下面是数据库图,它非常简单易懂。
- 基本上有两个基本表:Employee(员工)和 Product(产品),其中 Employee 包含员工的详细信息,Product 包含公司的产品详细信息。EmployeeProductOrder 表包含这两个基本表之间的关系,即哪个员工销售了哪个产品。我们将进一步改进这个数据库,以便在继续探索 SSRS 时使用。目前所有三个表都包含一个主键和外键来链接它们。
- 回到我们的报表解决方案,在添加新数据集的窗口中,窗口左侧还有其他可用选项。
- 字段: 这列出了从您的查询/存储过程返回的所有字段。您可以添加更多字段,这些字段可以用作计算列在报表中。我将在另一篇文章中解释此添加列/字段的功能,但您可以随时自行探索。
- 选项: 定义整理、区分大小写、区分重音等
- 整理: 整理是将书面信息组装成标准顺序。这是一组规则,用于确定数据如何排序或比较。整理名称是一个字符串,用于标识当指定字典排序时应用的字母或语言的排序规则。
- 区分大小写: SQL Server 中的数据可能会因大写和小写字母使用方式的不同而具有不同的含义。这是一个标志,用于确定是否遵循此规则。
- 区分重音: 这是指定根据发音来处理数据的标准。重音可能与方言混淆,方言是语言在词汇、语法和形态以及发音上的变体。例如,如果区分重音不敏感,则 a 和 á,o 和 ó 会被视为相同。
- 区分日文假名: 这指定 SQL Server 区分日文假名字符的两种类型:平假名和片假名。这是一个用于决定是否使用此标志的标志。
- 区分宽度: 它显示 SQL Server 如何处理单字节字符(半角)和双字节字符(全角)的相同数据。这是一个决定是否将这两组数据视为相同数据的标志。
- 筛选器: 您可以在此处定义应用于返回结果集的任何筛选条件。当返回的数据集非常大并且可能包含同一报表其他部分的结果集时,这使您能够钻取报表所需的特定数据。
- 参数: 您可以在此处定义查询/存储过程中指定的参数。您可以使用“参数值”文本框旁边的“fx”按钮通过表达式定义报表参数值,如下所示。
- SSRS 的上述功能是报表设计中最重要的功能之一,您可以设计和构建各种预定义值、数据值的函数,甚至控制程序流(如 IIF、SWITCH 等)。我将在我们进一步进行报表设计任务时尝试涵盖这些选项。当然,您可以自行探索这些选项。
- 完成数据源和数据集后。现在您必须开始设计您的报表。为此,您需要一个工具箱来获取控件。
- 通常,工具箱位于 IDE 的左侧,与“报表数据”一起。如果您在那里找不到它,请转到 IDE 中的“视图”->“工具箱”。
- 从工具箱中将一个图表拖到您的报表主体。一旦您将图表控件放到报表主体中,就会弹出一个新窗口供您选择图表类型。
- SSRS 为各种报表提供了广泛的图表类型。在本例中,我们将使用默认的柱状图的第一个选项,然后单击底部的“确定”。
- 现在您的报表主体将有一个演示图表,让您大致了解您的报表会是什么样子。请注意,您还没有告诉图表报表它应该使用什么数据,当前显示的图表只是此图表类型外观的概览。
- 单击图表区域,它将显示几个选项,这些选项是最适合设置图表报表的选项。对于本例,以下参数将足够:
- 要设置值,只需单击“+”图标并选择 TotalRevenue。工具将自动选择所选字段上的求和操作,这是默认行为,您可以通过右键单击 TotalRevenue 系列并转到“系列属性”来轻松更改此设置,并在弹出的窗口中更改值字段,该窗口与下面显示的窗口类似。这里再次需要为值字段提供表达式。
- 因此,现在我们已将总收入设置为值字段,但我们需要显示公司每位员工的总收入,因此我们需要在类别轴上显示员工姓名。我们将通过遵循上述相同程序来完成,即单击类别部分旁边的“+”号并选择 EmployeeName 字段。
- 要设置图表区域背景的网格状模式,我们将单击图表区域,然后选择“图表区域属性…”,这将弹出以下窗口。
- 现在,在左侧的“填充”选项中,我们可以对图表区域背景进行一些漂亮的更改。在这里,我们进行了上述更改,并将图案样式设置为显示大网格,这为报表提供了比较报表中数据的良好外观。
- 下一个任务将是定义阈值线。您会注意到有三条水平阈值线,第一条在 20,第二条在 40,最后一条在 60。有许多方法可以实现此技巧,最基本的方法是单击主要网格线(确保您选择图表上可见的水平线),右键单击该线,然后选择“主要网格线属性…”这将弹出以下窗口。
- 在“常规”选项卡中,选择您想要的网格线的颜色、样式和宽度。在“设置网格线间隔”部分,选择“网格线间隔类型”为“整数”,并将“网格线间隔”设置为 20,这将以垂直轴的 20 个点为间隔创建网格线,即一条在 20,一条在 40,一条在 60,正如我们想要的。请注意,值 20 实际上基于数据值,因为每位员工的总收入的最大可能值为 100,因此我将其除以 20 的间隔。您需要根据情况适当地选择值;否则,您也可以设置表达式,它将是总收入列的平均值。但请记住,这是一个间隔字段,您提供的值将在此间隔后重复一条线。
- 您还可以提供一个单一值,这样将在该间隔处显示一条线。否则,您可以创建一条表达式线颜色来根据某些报表参数或计算字段等在选定的间隔处显示一条区分的线。
- 请注意,修改主轴属性只是为了获得所需结果的解决方法。主要线的实际作用是显示横跨所有条形的水平线,以便可以正确估计其值。需要注意的是,最好利用现有的杠杆,但仅限于一定程度,以免功能丧失其原始价值。
- 现在,如果您单击报表设计部分顶部的“预览”选项卡。您可以看到实际报表如下所示。
- 设置图表主体的填充属性不会为图表的外部区域着色,这可以通过设置图表对象的背景属性来完成。为此,请选择整个图表,右键单击它,然后选择“图表属性…”
- 这将打开一个类似的窗口,在填充部分,您可以选择您喜欢的颜色,并用合适的颜色填充您的图表区域。
这是一个非常简单的 SSRS 报表图表示例。希望您喜欢它。下次再见,继续探索!!!
关注点
在 SSRS 中,有许多方法可以发挥您的创造力和技巧,使用提供的控件获得特定的报表格式,并获得强大的表达式支持。我相信一旦您开始探索,天空就是极限!!!希望这对新的 Web 开发人员以及 SSRS 新手感兴趣。