3

我在 powerapps 中创建了一个表格,该表格从文本输入框中收集各个字符串。该表正在工作,并且当用户在文本框中键入时,它会在列的下方创建新项目。现在我正在尝试过滤图库以仅显示与表中任何值匹配的项目。

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

这是工作表上项目的代码。

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

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

Filter(Projects,Details in DataTable1.Result)

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

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

谢谢你,瑞恩斯图尔特

4

1 回答 1

2

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

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)

它将您的搜索文本框拆分为单词,并删除如果单词之间有两个空格或前导或尾随空格时会得到的任何空词。

然后,对于所有拆分的单词,我们会查看该单词是否包含在Details列表的列中;如果是,我们得到值 1,否则为 0。ForAll子表达式的结果是与 中的每个项目对应的值列表Projects。然后我们对这些值求和。如果搜索框中的任何单词出现在详细信息中,则总和将大于 0。

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

于 2019-02-18T17:10:15.790 回答