Powerapps:将搜索文本拆分为单独的字符串,现在我需要在图库中仅显示包含其中一个字符串的项目

Powerapps: Splitting search text into individual strings, now I need to display on the gallery only items that include one of the strings

我在 powerapps 中创建了一个 table,用于从文本输入框中收集各个字符串。 table 正在运行,当用户在文本框中键入内容时,它会在列下方创建新项目。现在我正在尝试过滤图库以仅显示与 table.

中的任何值匹配的项目

我正在尝试按多行文本字段进行过滤。如果文本块中的单个单词匹配,我希望它显示出来。 table 最终会从视图中隐藏,但正如我现在所看到的,每当在文本框中键入单词,然后用 space 分隔时,它都会在 [=28] 中创建一个新条目=].

这是 table 上有效的项目代码。

AddColumns(Split(SearchBox.Text," "),"Words",Result)

这是我为画廊中的项目尝试的代码。

Filter(Projects,Details in DataTable1.Result)

Projects 是我的数据的名称,Details 是包含我要搜索的多行文本的列的名称。

我收到一条错误消息,提示 'Result' 名称无效。我找不到要在 Filter 代码的第二部分中放入什么表达式。实际结果,我的图库在输入文字时什么也不显示。预期结果 我希望它显示与详细信息和搜索框中的至少一个词相匹配的所有项目。

谢谢, 瑞安·斯图尔特

没有直接的方法来做你想做的事,但我们可以创建一个表达式来实现它。它将类似于:

Filter(
    Projects,
    Sum(
        ForAll(
            Filter(Split(SearchBox.Text, " "), Len(Trim(Result)) > 0),
            If(Result in Details, 1, 0)),
        Value) > 0)

让我们来看看吧。这个子表达式:

Filter(Split(SearchBox.Text, " "), Len(Trim(Result)) > 0)

splits 在您的搜索文本框中输入单词,并且还会删除如果单词之间有两个空格或前导或尾随空格会出现的任何空词。

然后,for all words that were split, we see if that word is contained in the Details column of your list; if so we get the value 1, and 0 otherwise. The result of the ForAll sub-expression is a list of values corresponding to each the items in Projects. We then Sum 那些值。如果详细信息中出现了搜索框中的任何字词,则总和将大于 0。

最后我们可以根据该值过滤 Projects,这应该会给您想要的结果。