Запросить диапазон в таблице Excel, связанной с полем текстового поиска PowerApps

Впервые задаю вопрос здесь. А также довольно новичок в PowerApps. Я пытаюсь использовать два поля ввода текста, чтобы пользователь мог определить минимальное и максимальное значение их диапазона номеров. в основном я хочу, чтобы код возвращал все результаты, которые попадают в определенный пользователем диапазон. Пользовательские входы: SearchText.Text MinSearch.Text и MaxSearch.Text PDFData - это таблица, а RMANumber - это столбец, в котором я хочу, чтобы Min & Max выполнял поиск и возвращал все в пределах определенного пользователем диапазона. на данный момент все, что я могу вернуть, - это точные результаты, которые просто не сработают в моей ситуации. На мой взгляд, я хочу добавить WHERE после RAWidth и привести более или менее аргументы, но у меня это не работает. Мой полный код приведен ниже, и любая помощь приветствуется.

If(SearchText.Text="" && MinSearch.Text="" && MaxSearch.Text="", PDFData, Filter(PDFData,SearchText.Text in PDFAuthor|| SearchText.Text in PDFName|| SearchText.Text in RMANumber|| MinSearch.Text in RAWidth))


person Robert Werner    schedule 16.04.2018    source источник


Ответы (1)


Вы можете использовать в своем запросе следующее выражение:

Filter(
    PDFData,
    SearchText.Text in PDFAuthor || SearchText.Text in PDFName,
    Coalesce(Value(MinSearch.Text), -1) <= RAWidth,
    Coalesce(Value(MaxSearch.Text), 1000000000) >= RAWidth)

Если SearchText пуст, тогда оба условия SearchText.Text in PDFAuthor и SearchText.Text in PDFName будут истинными в любом случае, поэтому в этом случае нет необходимости в If.

Для других условий мы можем использовать функции Value / Coalesce для преобразования вводимого текста на номер; если пользователь ничего не ввел (или ввел неверное число), функция Value вернет пустое значение, а функция Coalesce будет использовать следующее значение. Я использую здесь -1 для минимального значения и 1000000000 для максимального - если возможный диапазон значений в вашем столбце RAWidth находится между этими числами, тогда все в порядке.

person carlosfigueira    schedule 16.04.2018
comment
Спасибо! Это именно то, что мне было нужно, и теперь я могу двигаться дальше в своем проекте. Я все же оставил заявление If. Кажется, если бы я удалил его, то получил бы неожиданную ошибку токена. If(SearchText.Text="" && MinSearch.Text="" && MaxSearch.Text="", PDFData, Filter( PDFData, SearchText.Text in PDFAuthor || SearchText.Text in PDFName, Coalesce(Value(MinSearch.Text), -1) <= RAWidth, Coalesce(Value(MaxSearch.Text), 500) >= RAWidth)) Это мой новый полный код, который отлично работает. Огромное спасибо! - person Robert Werner; 17.04.2018