У меня проблема с функцией PowerApps, которую я не могу решить самостоятельно. Ниже вы можете найти код, который работает (хотя я предполагаю, что он плохо оптимизирован). Как и в теме, условие if выполняется внутри переключателя, как один из его аргументов, а не выполняется ПОСЛЕ переключателя. Конечным результатом должно быть: пользователь нажимает кнопку, которая применяет фильтр к таблице, и после этого, если условие вступает в игру, и выполняет свою работу.
Основная часть - это условие, когда пользователь выбирает критерии в раскрывающемся меню, условие сортирует таблицу по имени или рейтингу. Внутри этого условия есть функции для поддержки поисковой системы и кнопки сортировки по возрастанию/убыванию. После этого я хотел добавить поддержку кнопок фильтра, и сами кнопки работают нормально, но условие if выполняется только при нажатии последней кнопки (поэтому, когда, например, я нажимаю кнопку, связанную с этим, она устанавливает категорию на «1» и переходит к следующему экрану, но поиск/сортировка не работает). Я попытался разделить условия большим количеством скобок, добавив «;;» в конце переключателя, но это не решило проблему (дополнительно сломало приложение).
Switch(
category;
1;
Filter(
Table1_2;
'4. Area of training' = "IT-related"
);
//here is a bunch of filters for categories from 2 to 4
5; //no filter as it should display table without any filter
If( //the problematic if, that is executed only when category is "5"
dropdown_sort.Selected.Value = "Name of the training"; //check what the value of dropdown is, and the execute positive or negative case
SortByColumns(
Search(
Table1_2;
search_engine.Text; //takes text input and searches inside column below
"3_x002e__x0020_Name_x0020_of_x0020_the_x0020_training"
);
"3_x002e__x0020_Name_x0020_of_x0020_the_x0020_training"; //sorting on this column
If( //to change ascendin/descending on button press
sort;
Ascending;
Descending
)
);
//here is second part of if, that is basically identical to above (it sorts different column), and executes case when selected value of dropdown is different that "Name..."
)
)
Я хотел бы, чтобы выполнить независимо от переключателя. Кроме того, если есть способ сделать это лучше, пожалуйста, напишите свои предложения. Спасибо.