第 2 课:使用表或矩阵向导添加表 (Report Builder 2.0)

创建报表后,您可以使用表向导向该报表添加表和数据。该向导可帮助您定义数据源的连接,创建用于指定要使用的数据的查询,将数据按组进行组织并添加用来显示分组数据的汇总值的行。

在本课中,您将使用 AdventureWorks2008 示例数据库作为报表数据源。

启动表向导并添加连接

  1. 单击**“设计”**按钮切换到设计视图。

  2. 在设计图面的**“单击可添加数据”下,单击“表或矩阵”**。

    将打开**“选择数据源的连接”**页面。

    如果报表服务器上具有指定的共享数据源文件夹,则会显示数据源列表。

  3. 选择指向 AdventureWorks2008 示例数据库的共享数据源,或者单击**“浏览”以浏览到该共享数据源,然后单击“打开”**。

  4. 单击**“下一步”**。

您已向示例数据库添加了共享数据源引用。接下来,您将创建指定要使用的数据的查询。

为报表数据定义 Transact-SQL 查询

  1. 在**“设计查询”**页中,关系查询设计器处于打开状态。在本教程中,您将使用基于文本的查询设计器。

    单击**“编辑为文本”**。基于文本的查询设计器将显示查询窗格和结果窗格。

  2. 将以下 Transact-SQL 查询粘贴到**“查询”**框中。

    SELECT
      SH.OrderDate
      ,SH.SalesOrderNumber
      ,SD.OrderQty
      ,SD.LineTotal
      ,P.Name AS [Product]
      ,PS.Name AS [Subcategory]
    FROM
      Sales.SalesOrderHeader AS SH
      INNER JOIN Sales.SalesOrderDetail AS SD
       ON SH.SalesOrderID = SD.SalesOrderID
      INNER JOIN Production.Product AS P
       ON SD.ProductID = P.ProductID
      INNER JOIN Production.ProductSubcategory AS PS
       ON PS.ProductSubcategoryID = P.ProductSubcategoryID
      INNER JOIN Production.ProductCategory AS PC
       ON PC.ProductCategoryID = PS.ProductCategoryID
    WHERE PC.Name = 'Clothing' AND SH.OnlineOrderFlag = 0
    ORDER BY P.Name
    
  3. 在工具栏上单击**“运行”** (!) 以运行查询。

    该查询运行并显示来自 AdventureWorks2008 数据库中五个表的 OrderDate、SalesOrderNumber、OrderQty、LineTotal、Product 和 Subcategory 字段的结果集。该查询利用 Transact-SQL 功能,如别名。例如,SalesOrderHeader 表称为 SH。

    在结果集中,列标题基于数据库表中的列名,但未保存在报表中。

    在数据集中,字段名称基于列名并且保存在报表中。完成向导后,可以使用“报表数据”窗格查看数据集字段集合。

  4. 单击**“下一步”**。

通过使用查询指定表中要使用的数据,您已经添加了一个数据集。接下来,您将在组中排列数据。

将数据组织到组中

  1. 在**“排列字段”页上,将 Product 拖到“值”**中。

  2. 将 OrderQty 拖到**“值”**中并将其放在 Product 下面。

    数值字段的默认值将使用 Sum 函数对数据进行汇总。您可以使用下拉箭头选择不同的汇总函数。

  3. 将 LineTotal 拖到**“值”**中并将其放在 OrderQty 下面。

    步骤 1、2 和 3 指定要在表中显示的数据。

  4. 将 OrderDate 拖到**“行组”**中。

  5. 将 SalesOrderNumber 拖到**“行组”**中并将其放在 OrderDate 下面。

    步骤 4 和 5 首先按日期组织字段的值,然后按照该日期的所有订单组织字段的值。

  6. 单击**“下一步”**。

当您运行报表时,表将显示每个日期、每个日期的所有订单以及每个订单的所有产品、数量和行总计。接下来,您将为表选择布局。

添加小计和总计

  1. 在**“选择布局”页的“选项”下,验证是否选择了“显示小计和总计”**。

  2. 验证是否选择了**“分块式,小计下方显示”**。

    “预览”窗格将显示包含有五行的表。当您运行报表时,每行将按以下方式显示:

    1. 第一行将对表重复一次以显示列标题。

    2. 第二行将对销售订单中的每个行项重复一次并显示产品名称、订单数量和行总计。

    3. 第三行将对每个销售订单重复一次以显示每个订单的小计。

    4. 第四行将对每个订单日期重复一次以显示每天的小计。

    5. 第五行将对表重复一次以显示总计。

  3. 清除**“展开/折叠组”**选项。在本教程中,您创建的报表不会使用明细功能(用户可通过此功能来展开父组层次结构)来显示子组行和详细信息行。

  4. 单击**“下一步”**。

    您已经设计了表布局。接下来,您将选择样式。

指定表样式

  1. 在**“选择样式”**页的“样式”窗格中,选择样式。

    样式指定字形、颜色集和边框样式。选择样式时,“预览”窗格将显示具有该样式的表的示例。

  2. 单击**“完成”**。

    表将添加到设计图面中。该表有 5 列、5 行。“行组”窗格显示三个行组:OrderDate、SalesOrderNumber 和 Details。详细信息数据是由数据集查询检索的所有数据。

  3. 单击**“运行”**以预览报表。

    对于销售订单中的每个行项,表显示产品名称、订购数量及行项总计。此数据首先按订单日期组织,然后按订单号组织。

后续步骤

您已使用向导成功地向新报表中添加了一个表。接下来,您将向该报表添加格式设置。请参阅第 3 课:设置报表格式 (Report Builder 2.0)