Powerapps: разделение текста поиска на отдельные строки, теперь мне нужно отображать в галерее только те элементы, которые содержат одну из строк - PullRequest
0 голосов
/ 18 февраля 2019

Я создал таблицу в powerapps, которая собирает отдельные строки из поля ввода текста.Таблица работает, и когда пользователи вводят текстовое поле, она создает новые элементы в столбце.Теперь я пытаюсь отфильтровать галерею, чтобы отображать только элементы, соответствующие любому из значений в таблице.

Я пытаюсь отфильтровать текстовое поле из нескольких строк.Если в блоке текста совпадает одно слово, я бы хотел, чтобы оно отображалось.В конечном итоге таблица будет скрыта от просмотра, но, как я сейчас посмотрю, всякий раз, когда слова вводятся в текстовое поле, а затем разделяются пробелом, создается новая запись в таблице.

Этокод для элементов на столе, который работает.

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

Это моя попытка кода для элементов в галерее.

Filter(Projects,Details in DataTable1.Result)

Projects - это имя моих данных, а Details - это имя столбца с многострочным текстом, который я хочу найти.

Я получаю сообщение об ошибке: «Result» name isn 'т действительный.Я не могу найти какое выражение вставить во вторую часть кода фильтра.Фактические результаты, моя Галерея ничего не отображает, когда набраны слова.Ожидаемые результаты Я хочу, чтобы он отображал все элементы, которые соответствуют хотя бы одному слову из Details и в окне поиска.

Спасибо, Райан Стюарт

1 Ответ

0 голосов
/ 18 февраля 2019

Нет прямого способа сделать то, что вы хотите, но мы можем создать выражение, которое могло бы достичь этого.Это будет что-то вроде:

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 на основе этого значения, что должно дать вам результат, который выхочу.

...