通过添加、删除、重命名和选择来为表造型。

概述

以下函数通过调整表的列来为表造型:

  • 将包含多个列的表缩减为包含一个列,使该表可用于 LowerAbs 等单列函数。
  • 将计算结果列(例如,显示“数量”乘以“单价”后的结果的“总价”列)添加到某个表。
  • 使用更有意义的名称将列重命名,以便向用户显示或者在公式中使用。

表是 PowerApps 中的一个值,与字符串或数字类似。 可将表指定为公式中的参数,函数可以返回表作为结果。 本主题中介绍的函数不会修改表。 这些函数将表用作参数,并转换一个应用了转换的新表。 请参阅使用表,了解更多详情。

无法使用这些函数修改数据源的列。 必须在数据源中修改数据。 可以使用 Collect 函数将列添加到集合。 有关详细信息,请参阅使用数据源

说明

AddColumns 函数将列添加到表,某个公式将定义该列中的值。 现有列保持不变。

将会针对表的每条记录计算该公式。

当前正在处理的记录字段在该公式中可用。 只需按名称对其引用,这与引用任何其他值的方法相同。 另外,也可以从整个应用中引用控件属性和其他值。 有关详细信息,请参阅下面的示例和使用记录作用域

DropColumns 函数从表中排除列。 其他所有列保持不变。 DropColumns 排除列,ShowColumns 包含列。

RenameColumns 函数重命名表的列。 其他所有列保留其原始名称。

ShowColumns 函数包含某个表的列并删除其他所有列。 可以使用 ShowColumns 从多列表创建单列表。 ShowColumns 包含列,DropColumns 排除列。

对于所有这些函数,结果是已应用转换的新表。 不会修改原始表。

当这些函数与数据源一起使用时,不能委派这些函数。 将只检索数据源的第一个部分,然后检索应用的函数。 结果可能并不是事实的全部。 系统会在你创作时显示一个蓝点,提醒注意此限制,并建议尽可能改用可委托的替代项。 有关详细信息,请参阅委托概述

语法

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table - 必需。 要运算的表。
  • ColumnName(s) - 必需。 要添加的列的名称。 必须为此参数指定字符串(例如 "Name",包括双引号)。
  • Formula(s) - 必需。 要针对每条记录计算的公式。 结果将添加为相应新列的值。 可在此公式中引用表的其他列。

DropColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table - 必需。 要运算的表。
  • ColumnName(s) - 必需。 要删除的列的名称。 必须为此参数指定字符串(例如 "Name",包括双引号)。

RenameColumns( Table, OldColumneName, NewColumnName )

  • Table - 必需。 要运算的表。
  • OldColumnName - 必需。 要重命名的列的名称。 此名称必须是字符串(例如 "Name",包括双引号)。
  • NewColumnName - 必需。 替换后的名称。 必须为此参数指定字符串(例如 "Customer Name",包括双引号)。

ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table - 必需。 要运算的表。
  • ColumnName(s) - 必需。 要包含的列的名称。 必须为此参数指定字符串(例如 "Name",包括双引号)。

示例

本部分中的示例使用 IceCreamSales 数据源,其中包含下表中的数据:

这些示例都不会修改 IceCreamSales 数据源。 每个函数将数据源的值转换为表,然后返回该值作为结果。

公式 说明 结果
AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold ) Revenue 列添加到结果。 对于每条记录,将计算 UnitPrice * QuantitySold,并将结果放在新列中。
DropColumns( IceCreamSales, "UnitPrice" ) 从结果中排除 UnitPrice 列。 使用此函数可排除列,使用 ShowColumns 可包含列。
ShowColumns( IceCreamSales, "Flavor" ) 仅在结果中包含 Flavor 列。 使用此函数可包含列,使用 DropColumns 可排除列。
RenameColumns( IceCreamSales, "UnitPrice", "Price") 在结果中将 UnitPrice 列重命名。
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, "Revenue",
UnitPrice * QuantitySold ),
"UnitPrice", "Price" ),
"Quantity" )
从公式内部开始,按顺序执行以下表转换:
  1. 根据针对每条记录计算 UnitPrice * Quantity 后的结果添加 Revenue 列。
  2. UnitPrice 重命名为 Price
  3. 排除 Quantity 列。
请注意,顺序很重要。 例如,不能在重命名 UnitPrice 后计算该列。

分步操作

  1. 导入或创建一个名为 Inventory 的集合,作为在库中显示图像和文本中所述的第一个子过程。

  2. 添加一个按钮,然后将其 OnSelect 属性设置为以下公式:

    ClearCollect(Inventory2, RenameColumns(Inventory, "ProductName", "JacketID"))

  3. 按 F5,选择刚刚创建的按钮,然后按 Esc 返回设计工作区。

  4. 在“文件”菜单中选择“集合”。

  5. 确认已创建名为 Inventory2 的集合。 新集合包含的信息与 Inventory 相同,不过,Inventory 中名为 ProductName 的列在 Inventory2 中名为 JacketID