报表的嵌入数据集 (Power BI Report Builder)

适用于: Power BI Report Builder Power BI Desktop

数据集指定要从数据连接使用的数据。 数据集基于已作为嵌入数据源保存在报表中的数据连接。 数据集包括指定一组字段的查询。 在您将这些字段拖到设计图面上时,将创建在报表运行时对实际数据进行计算的表达式。

Power BI 服务的分页报表支持嵌入数据集。

  • 嵌入的数据集。 只能在嵌入了嵌入数据集的报表中定义和使用嵌入数据集。 当您希望从外部数据源获取将只在一个报表中使用的数据时,使用嵌入数据集。 对嵌入数据集所做的更改仅影响该报表。

数据集还包含参数、筛选器和指定字符区分的数据选项(包括区分大小写、假名类型、宽度、重音以及排序规则信息)。

显示嵌入式数据集的不同元素的关系图。

  1. “报表数据”窗格中的数据集:在创建嵌入数据集后,“报表数据”窗格中会出现一个数据集。 数据集基于数据源。

  2. 查询设计器 当您设计数据集查询时,与数据源类型相关联的查询设计器将打开。

  3. 查询命令 查询设计器可帮助您生成查询命令。 命令语法由数据访问接口确定。

  4. 数据扩展插件/数据访问接口 对数据的连接可通过多个数据访问层。

  5. 外部数据源:检索来自关系数据库、多维数据库等位置的数据。

  6. 查询结果 您可以运行查询并查看示例结果集。 您必须拥有设计时凭据才能运行查询。

  7. 来自架构的元数据 数据访问接口将架构查询命令与检索数据集字段集合的元数据的查询分开运行。 例如,Transact-SQL SELECT 语句返回数据库表的列名称。 使用“报表数据”窗格展开数据集以查看数据集字段集合。

了解报表数据集和查询

报表数据集包含在外部数据源上运行并且指定要检索的数据的查询命令。 为了生成该查询命令,您使用与外部数据源的数据扩展插件相关联的查询设计器。 在查询设计器中,您可以运行该查询命令并查看结果集。 该结果集是一个矩形行集,它具有列名以及在每一行中值的数目都相同的行。 不支持层次结构数据(也称作“不规则层次结构” )。 列名以数据集字段列表的形式保存在报表定义中。

在您向报表中添加数据集后,在“报表数据”窗格中将字段从其字段集合拖到表、图表以及用于设计报表布局的其他报表项中。 有关使用字段的详细信息,请参阅数据集字段集合 (Power BI Report Builder)。

了解报表数据集中的数据

根据数据扩展插件,报表数据集可以由以下类型的数据组成:

  • 来自关系数据库的结果集,它可以是运行数据库命令、存储过程或用户定义函数的结果。 如果通过单个查询检索到多个结果集,则仅处理第一个结果集,并忽略所有其他结果集。 例如,在基于文本的查询设计器中运行以下查询时,只有 Production.Product 的结果集出现在结果窗格中:

    SELECT ProductID FROM Production.Product  
    GO  
    SELECT ContactID FROM Person.Contact  
    
  • 来自多维数据源的平展行集,此类数据源使用 XML for Analysis (XMLA) 协议。 某些数据访问接口提供来自数据源的其他单元和维度属性,在结果集中看不到这些属性,但它们会出现在报表中。

  • 来自任何注册和配置的 .NET Framework 数据访问接口的结果集。

当在运行时处理报表时,查询返回的实际结果集可能有零行或更多行。 在查询中定义的列也有可能已从数据源中丢失。 来自数据源的 Null 值映射到 .NET Framework 值 System.DBNull.Value

有关详细信息,请参阅数据集字段集合引用 (Power BI Report Builder)

数据集查询

在设计时,当在查询设计器中运行数据集查询时,将看到显示示例数据的来自数据源的行集。 在运行时,当用户查看报表时,数据集查询可能产生不同的值,因为数据源的数据已经更改。 每次处理报表时,都可能出现新数据。

定义每个数据集时,Power BI Report Builder 将打开与数据源类型相对应的查询设计器,以帮助你设计查询。 例如,若要为来自 SQL Server 关系数据库的数据定义一个查询,表/矩阵、图表和地图向导将打开一个简单的图形界面来帮助您生成查询,您需要执行的所有工作就是选择您希望位于数据集中的字段。

在查询设计器中,您可以执行以下操作:

  • 在基于图形和基于文本的查询视图之间切换。 使用该图形可以浏览数据源上的架构、表、视图和存储过程。 使用基于文本的视图可以键入、粘贴或查看现有查询,通常用于不能在图形查询设计器中显示的复杂查询。

  • 运行查询以查看数据。 查询会返回一个结果集。 结果集中的列将成为数据集字段的集合。 结果中的行将成为数据集数据。 您可以一直对查询进行操作,直到获得所需的列。

  • 添加查询参数,以便仅检索报表所需的数据。 查询参数会自动生成匹配的报表参数。 对于报表模型数据源,您指定的筛选器将自动生成一个匹配的报表参数。 用户可以利用报表参数来指定在运行报表时要查看的报表数据。 例如,用户选择其所需数据的产品类别,并且在报表运行时,只有这些产品类别的数据将出现在报表中。

查询设计器可以根据数据源类型提供图形模式或文本模式。 如果您选择文本模式,则必须为数据源使用相应的查询语法。

定义报表数据集时,可以在查询中设置数据属性,也可以接受由数据访问接口设置的默认值。 可以通过使用以下策略之一来更改数据类型:

  • 重写数据集查询,以将某字段明确转换为其他数据类型。

  • 编辑数据集中的字段,并提供自定义格式。

  • 基于数据库字段创建新的自定义字段,并提供自定义格式。

有关详细信息,请参阅数据集字段集合 (Power BI Report Builder)

对数据集中的数据进行筛选、排序和分组

数据集中的数据来自对外部数据源运行查询命令所获得的结果。 数据扩展插件的查询命令语法确定是否可以对数据进行排序或分组。 在为报表检索数据前,在查询中发生排序和分组。 在为报表检索数据后发生筛选。

有关详细信息,请参阅对数据进行筛选、分组和排序 (Power BI Report Builder)

筛选数据集中的数据

筛选器是报表中数据集定义的一部分。 使用数据集筛选器可以指定数据集中的哪些数据将包含在报表中。 对某一数据集指定筛选器后,基于该数据集的所有数据区域都将只显示经过数据集筛选器筛选后的数据。

可以对数据区域或数据区域组设置附加筛选器。 还可以使用参数和筛选器的组合,使用户能够选择他们要在报表中看到的数据。 有关详细信息,请参阅报表参数 (Power BI Report Builder)

对数据集中的数据进行排序

在数据集中,数据的顺序就是从外部数据源检索数据的顺序。 此顺序就是您在查询设计器中运行查询时看到的顺序。 如果查询命令语法支持排序,则您可以在数据作为报表数据返回前,编辑查询以便对源中的数据进行排序。 例如,对于 Transact-SQL 查询,ORDER BY 语句控制排序顺序。

若要在数据返回到报表后对数据进行排序,请对数据区域和数据区域组定义排序表达式。 有关详细信息,请参阅特定类型数据区域的相关主题,如表、矩阵和列表 (Power BI Report Builder)

还可以使用参数和排序表达式的组合,使用户能够选择为报表中的数据选择排序顺序。 有关详细信息,请参阅报表参数 (Power BI Report Builder)

对数据集中的数据进行分组

不能对数据集中的数据进行分组。 若要聚合数据集中的数据,您可以编辑查询命令以便在为报表检索数据前计算聚合。 这些聚合值称为“服务器聚合” 。 在表达式中,若要将这些值标识为预先计算的聚合,请使用聚合函数。 有关详细信息,请参阅聚合函数 (Report Builder)

使用参数和数据集

对于包含查询变量的嵌入数据集查询,可以自动创建查询参数和相应的报表参数。 在报表运行时,报表参数的值将链接到数据集查询参数。 这样,在外部数据源上运行的查询命令将包括为报表参数指定的值。 通过报表参数,用户可以选择他们要在报表中看到的数据。 可在“数据集属性”对话框 ->“参数”页中查看查询参数和报表参数的链接方式。

下表描述对查询参数值的支持:

  • 可以基于表达式。

  • 可以包括默认值。

  • 可以设置为只读。 在报表的共享数据集的实例中不能更改只读参数。

  • 不能包含对内置集合参数的引用,该参数表示报表参数。

对于某些表格数据源(如 Analysis Services),图形查询设计器可用于指定查询筛选器并选择一个选项来创建相应的查询参数。 在您选择该参数选项时,数据扩展插件将自动创建一个单独的报表数据集,以便为该参数的下拉列表提供可用值。 默认情况下,这些隐藏的数据集不显示在“报表数据”窗格中。

链接到查询参数的报表参数有助于在从外部数据源返回数据前筛选数据。 您还可以通过创建作为报表定义的一部分的筛选器,对报表中的数据进行筛选。 有关详细信息,请参阅对数据进行筛选、分组和排序 (Power BI Report Builder)

显示隐藏的数据集

为某些表格数据源创建参数化查询时,会自动创建数据集,以为参数提供有效值。 在某些查询设计器上,通过指定筛选器然后选择用于创建参数的选项,创建上述数据集。 默认情况下,这些数据集不显示在“报表数据”窗格中,但可以显示它们。

使用地图和数据集

如果您在报表中包括地图,则必须提供空间数据。 空间数据可以来自报表数据集。 报表中的空间数据不会在“报表数据”窗格中显示为数据集。 有关详细信息,请参阅地图 (Power BI Report Builder)

显示多个数据集的数据

报表通常有多个数据集。 下表介绍如何在报表中使用数据集:

  • 使用单独的数据区域显示每个数据集中的数据。 有关详细信息,请参阅数据区域和地图 (Power BI Report Builder)

  • 可以将多个数据区域链接到一个数据集,并为相同数据提供多个视图。

  • 可以使用数据集提供报表参数的可用值或默认值的下拉列表。 有关详细信息,请参阅报表参数 (Power BI Report Builder)

  • 通过对钻取报表或子报表使用参数,可以链接多个数据集中的相关数据。 例如,销售报表可以显示所有商店的摘要数据,而钻取链接可以指定商店标识符作为具有以下数据集查询的报表的参数:检索指定商店各销售量的数据集查询。 有关详细信息,请参阅钻取、向下钻取、子报表和嵌套数据区域 (Power BI Report Builder)子报表 (Power BI Report Builder)

  • 不能在单个数据区域中显示来自多个数据集的详细信息数据。 但是,可以在一个数据区域中显示多个数据集的聚合或内置函数值。 有关详细信息,请参阅聚合函数引用 (Report Builder)。 如果需要将来自多个数据集的详细信息数据组合到一个数据区域中,则必须重写查询,以作为单个数据集检索数据。

在没有数据行可用时显示消息

在报表处理期间,当运行对数据集的查询时,结果集可能不包含任何行。 在呈现的报表中,链接到空数据集的数据区域将显示为空数据区域。 可以指定要在呈现的报表中代替空数据区域的显示文本。 还可以为子报表指定消息,以便如果在运行时对所有数据集的查询没有产生任何数据,则显示该消息。 有关详细信息,请参阅为数据区域设置“无数据”消息 (Power BI Report Builder)

设置数据集选项

对于支持国际数据的数据源,可能需要调整那些影响排序顺序、国际字符属性以及是否区分大小写的数据集属性。 这些属性包括大小写、假名类型、宽度、重音和排序规则。 有关如何设置这些属性的详细信息,请参阅“数据集属性”对话框 -“选项”(Power BI Report Builder)