Я весь день пытаюсь найти решение для следующей проблемы:
SortByColumns(Filter(LogisticsHelpdesk,And(If(Dropdown1.Selected.Value="All",(Status.Value="Open" || Status.Value="Closed"), (Status.Value=Dropdown1.Selected.Value)),StartsWith(Text(ID), SearchBox.Text))),SortField, sortOrder)
где SortField и sortOrder являются переменными, установленными следующим образом:
UpdateContext({SortOrignatorDescending: !SortOrignatorDescending, SortField: "Originator"});Set(sortOrder, If(SortOrignatorDescending, Descending, Ascending))
Переменная обновляется в трех местах, одна с колонкой Заголовок, две другие с колонками Персона. Для столбца Заголовок приведенный выше код работает нормально, но для столбца Персона не работает.
Я обнаружил, что проблема заключается в том, что функции SortByColumns и Sort не знают, по какому свойству сортировать столбец Person. Любая идея, как динамически предоставлять имя столбца вместе со свойством DisplayName для функций Sort / SortByColumns?
До сих пор я тестировал передачу свойства DisplayName с именем столбца в виде строки:
UpdateContext({SortAllocatedToDescending: !SortAllocatedToDescending, SortField:"AllocatedTo.DisplayName"});Set(sortOrder, If(SortAllocatedToDescending, Descending, Ascending))
и попытался установить переменную для самого столбца:
UpdateContext({SortAllocatedToDescending: !SortAllocatedToDescending, SortField:AllocatedTo});Set(sortOrder, If(SortAllocatedToDescending, Descending, Ascending))
Но в конструкторе возникла ошибка из-за несовместимого типа. Я предполагаю, что столбцы не могут быть напрямую переданы через переменные.
Также пытался использовать обе функции (Sort и SortByColumns) взаимозаменяемо, но безрезультатно.
Основной целью является одновременная сортировка, фильтрация и поиск определенной строки по нескольким столбцам, а также простота добавления большего числа критериев / столбцов в формулу без добавления одного и того же оператора несколько раз.
Заранее благодарю за любую помощь, которую вы можете оказать.