第一节 如何搜索部分匹配的文本(包括字符串)
我们讲解和了解如何在 Power Apps 中实施部分匹配文本搜索。虽然StartsWith 和 EndsWith 函数可用于前缀和后缀搜索,但没有专门用于部分匹配搜索的函数。有多种方法,将使用在 SharePoint 列表中搜索数据的示例来解释每种方法。
目录
1.部分匹配搜索概述
2.使用过滤器功能进行部分匹配搜索(带有委托警告)
3.使用搜索功能进行部分匹配搜索(带授权警告)
4.使用 Search 和 AddColumn 函数进行部分匹配搜索(无委托警告)
5.概括
1. 部分匹配搜索概述
我们将解释以下三种部分匹配搜索方法。
- 使用 Filter 功能进行部分匹配搜索
- 使用Search功能进行部分匹配搜索
- 使用 Search 和 AddColumn 函数进行部分匹配搜索
搜索 SharePoint 列表时,每个列表的特征如下。
委任警告 | 可搜索栏 | 难易度 | |
①Filter関数 | 有 | 全部 | 简单 |
②Search関数 | 有 | 仅文本类型列 | 简单 |
③Search関数和AddColumn関数 | 无 | 全部 | 有点难 |
③中的Search函数和AddColumn函数实现起来有点复杂,但我认为它们是通用的,因为可以搜索所有类型的列,而不会出现任何委托警告。
下面是来自库中显示的名为“sampledata”的列表的数据。我表明了列类型。我们将使用一个示例来解释每种搜索方法,在该示例中您可以搜索下面除“日期”和数字列之外的列。
2 使用过滤器功能进行部分匹配搜索(带有委托警告)
Filter関数を利用した部分一致検索は、下記のようにin句を利用して実装します。
Filter(Sampledata,Txt_Searchbox.Text in 'OrderID' || Txt_Searchbox.Text in 'InCharge')
in 子句指示左侧的字符串是否包含在右侧的字符串中。大写和小写字母将被忽略。
在这里,我们使用 OR 条件来检查每列是否包含文本输入控件 (Txt_Searchboxt) 的字符串。
这允许部分匹配搜索。
但是,Filter 函数的 in 子句不能被委托,因此您将收到警告。
如果您的数据很少,您可以安全地忽略该警告。如果您有大量数据,请使用“使用 Search 和 AddColumn 函数进行部分匹配搜索”。
3 使用搜索功能进行部分匹配搜索(带授权警告)
使用搜索功能实现部分匹配搜索,如下所示。
Search(Sampledata,Txt_Searchbox.Text,"OrderID","InCharge","QTY")
搜索功能仅针对文本类型列。无法搜索“选择”和“数字”的数据库列表列类型。“汇总值”已创建。
与 Filter 函数不同,指定用双引号括起来的列的内部名称。
如下图,输入一些字符时会显示建议,所以一定要输入正确的列名。
此外,如果您使用搜索功能搜索 数据库的列表,您将收到警告,因为它无法委派。
如果您的数据很少,您可以安全地忽略该警告。如果您有大量数据,请使用“使用 Search 和 AddColumn 函数进行部分匹配搜索”。
4 使用 Search 和 AddColumn 函数进行部分匹配搜索(无委托警告)
使用Search 函数和AddColumn 函数实现部分匹配搜索,如下所示。
Search(AddColumns(Sampledata,"TempOrderID",ThisRecord.OrderID,"TempQTY",Text(ThisRecord.QTY)),Txt_Searchbox.Text,"TempOrderID","TempQTY")
使用 AddColumn 函数临时创建一个表,并使用该表作为搜索目标。AddColumn 函数添加指定的列并将其作为表返回。
这使您可以在没有委托警告的情况下进行搜索。
另外,文本功能可以将数字转换为文本,因此也可以搜索数字。
例如,Text(ThisRecord.QTY) 将数值类型单价列转换为文本类型。
上面的例子列很多,理解起来比较困难,所以下面我用简单的示例数据来详细解释一下。
English | Chinese |
---|---|
ABC | 上海 |
DEF | 北京 |
GHI | 山东 |
用Search函数的方法如下所示
Search(AddColumns(sampledata,"TempEnglish", ThisRecord.English, "TempJapanese",ThisRecord.Chinese),TextInput1.Text, "TempEnglish","TempChinese")
自动添加新的的列AddColumns(sampledata,”TempEnglish”, ThisRecord.English, “TempChinese”,ThisRecord.Chinese)
English | Chinese | TempEnglish | TempChinese |
---|---|---|---|
ABC | 上海 | ABC | 上海 |
DEF | 北京 | DEF | 北京 |
GHI | 山东 | GHI | 山东 |
于是,上上面的数据库中的TempEnglish列、TempChinese列就陈伟了Search関数的搜索对象。
如果直接对于English列、Chinese列进行搜索就会出现委任警告,所以我们就可以用AddColumns的函数来代替搜索对象列。
5 概括
本页面向您展示了如何在 Power Apps 中实现部分匹配文本搜索。
可能有点难以想象,因为它通过了 AddColumn 函数,但我希望您能够通过此文章的解释来使用它。
Power Apps 可以用低代码实现,但需要我们有编程的思维能力”。