筛选数据

已完成

在商务应用程序领域,数据呈现的精准率至关重要。 为此,我们不妨使用 Filter 和 Search 等函数。 通过将这些函数分配给数据源进行处理,您可以精简信息流。

此处的分配意味着这些函数将充当服务器端的选择性筛选器。 结果就是, 您的应用程序可以有选择性地仅获取和处理必要数据,从而增强用户体验。 这种方法不仅可以减少数据传输,还可以提高用户的效率。

在上一模块中,您学习了如何将数据源添加到库中。 在本模块中,您将进一步延伸这些概念,即通过数据整形来显示与用户相关的数据。

使用 Filter 函数来筛选数据

Filter 函数是最常用的数据整形函数。 借助 Filter,可以创建简单查询,以便仅返回所需的数据。 例如,如果数据源具有用于跟踪项目状态的文本列 IsActive,该列的值为 YesNo,可以通过在库的“Items”属性中使用下列公式来筛选数据。

Filter(YourDataSourcetable, IsActive = "Yes")

库将仅显示列 IsActive 中值为 Yes 的行,而不显示表中的所有行。 这样不仅减少了用户需要整理分类的行数,还通过减少下载的数据量加快了应用速度。

And 运算符

要进一步改善筛选效果,需要使用运算符来创建更为复杂的筛选器。 比较常见的做法是使用 And 运算符合并筛选器内的多个条件。 使用 And 运算符时,所有条件都必须计算为 true 才能使筛选器有效。 例如,可以基于上面的示例进行延伸,使用下面的查询来显示 IsActiveYesRegionNorth 的所有行。

Filter(YourDataSourcetable, IsActive = "Yes" And Region = "North")

本公式会返回 IsActive 为 Yes 且 Region 为 North 的所有行。 请注意,在公式中使用 And 运算符时,它必须采用首字母大写形式。

Or 运算符

介绍筛选器的另一个重要运算符:Or 运算符。 与 And 运算符不同,Or 运算符只需一个等式为 true 即可检索行。 与 And 运算符相同,必须将 Or 运算符大写,才能使其在筛选条件内正确运行。

基于上面的示例进行延伸,有时您可能想要查看 Region 为 North 或 West 的所有行。 要生成本查询,请使用 Or 运算符。

Filter(YourDataSourcetable, Region = "North" Or Region = "West")

本公式会返回 Region 等于 North 或 West 的所有行。 另请注意公式中的语法:Region = "North" Or Region = "West"。 常见错误是写成 Region = "North" Or "West"。 本公式并不正确。

结合使用运算符

在要求复杂条件的场景中,组合运算符可以实现更为复杂的逻辑。 参考先前示例:假设您想要筛选数据源,以检索 IsActive 为 Yes 且 Region 为 North 或 West 的所有行。

要做到这一点,需要在公式中添加括号。 公式如下所示:

Filter(YourDataSourcetable, IsActive = "Yes" And (Region = "North" Or Region = "West"))

本公式先对圆括号内的部分进行求值。 本公式先确定 Region 是否为 North 或 West。 如果两个求值结果之一为 true,右侧就为 true。 接下来,本公式检查 IsActive 列的值。 如果值等于“Yes”,该行就为匹配项,并由 Filter 函数返回。 Microsoft Power Apps 支持使用各种运算符和运算符嵌套来进行数据整形。

要详细了解 Power Apps 中可用的不同运算符,请参阅文档中的 Power Apps 中的运算符和数据类型。 其他示例包括 greater than、less than、not、in、exact in 等。 此外,对运算符进行求值时,请务必了解委派。 不同运算符对各个数据源的委派行为也不同。 有关数据源及其运算符的列表,请参阅了解画布应用中的委派