Одна галерея из списка нескольких точек обмена (все те же поля)
В настоящее время у моего powerapp есть Галерея, которая основана на одном списке sharepoint, но я хотел бы реализовать галерею в моем приложении, которая должна отображать элементы из 3 различных списков sharepoint (все имеют одинаковые столбцы / поля), и я использую фильтр на камбуз, чтобы пользователь мог печатать на поле и получать отфильтрованный ответ, а не показывать все данные
Пожалуйста помоги
У меня уже есть эта формула в gallery1.items:
Поиск ('PO list', TextSearchBox.Text,"Branch_x0020_Code") Например, рассмотрим, у меня есть 2 списка: список 1 и список 2, теперь, когда пользователь выполняет поиск в окне поиска (т.е. TextSearchbox), я хочу, чтобы галерея фильтровала данные где "Branch_x0020_Code" равен поисковым данным из обоих списков
РЕДАКТИРОВАТЬ 1: Это формула, которую я пытаюсь реализовать: Формула: ClearCollect (Aitems, 'Список PO',PO 2)
и ошибка показана как на следующем рисунке:
В моем "Списке заказов на поставку " был столбец с именем status, и его тип был "Одна строка текста", тогда как в "PO 2" типом столбца состояния был "Выбор". Так как я не могу изменить тип данных, я изменил имя столбца списка на " Статус 0 ". Теперь единственное различие между этими двумя списками, которое у меня есть, состоит в том, что в одном списке есть дополнительные столбцы, а в другом нет. Но все же, когда я пытаюсь реализовать, я получаю эту ошибку "Несовместимый тип".
2 ответа
Галереи не могут напрямую показывать результаты из нескольких источников данных одновременно. Однако один из способов достижения этого - сначала собрать данные из различных списков в одну коллекцию, а затем связать галерею с этой коллекцией.
Например, вы можете сделать это в свойстве OnStart приложения или в свойстве OnSelect кнопки "обновить":
ClearCollect( CombinedListsCollection,
List1, List2, List3 )
Затем вместо этого свяжите gallery.items с коллекцией:
Search( CombinedListsCollection, TextInput.Text, [columns])
Еще один способ добиться этого - динамически собирать отфильтрованный набор записей при поиске пользователями. Например, в элементе управления вводом текста для поля поиска установите для свойства "OnChange" значение:
ClearCollect(CombinedFilteredLists,
Filter(List1, StartsWith(Title, TextInput1.Text)),
Filter(List2, StartsWith(Title, TextInput1.Text)))
Затем установите элементы галереи в CombinedFilteredLists.
Используйте StartsWith(), обернутый в Filter(), чтобы делегировать большие списки SharePoint, как в примере выше.
Вот пример этого в действии: объединение двух списков SharePoint в одну галерею в PowerApps
Если у вас есть одинаковые столбцы / поля для двух списков, то решение Райана будет работать. Однако, если некоторые поля различаются (либо по названию, либо по типу), вы можете использовать одну из многих функций, которые могут помочь вам изменить "формы таблиц" в PowerApps.
В вашем конкретном случае, если у вас есть два следующих списка в SharePoint:
- List01
- Название (текст)
- Статус (Текст)
- List02
- Название (текст)
- Статус (Выбор)
Затем вы можете создать коллекцию с содержимым обоих списков, используя это выражение:
ClearCollect(
ItemsCollection,
ShowColumns(
AddColumns(List01, "StatusText", Status),
"Title", "StatusText"));
Collect(
ItemsCollection,
ShowColumns(
AddColumns(List02, "StatusText", Status.Value),
"Title", "StatusText"));
Вышеприведенное выражение создает новый столбец (*) с именем "StatusText" в обоих списках, нормализуя тип столбца "Status" к тексту, а затем выбирает столбцы "Title" и "StatusText" из двух списков, таким образом гарантируя, что схема (типы поля) одинаковы.
(*) Функция AddColumns не создает никаких дополнительных столбцов в списке SharePoint; вместо этого он возвращает новую "виртуальную" таблицу, которую можно использовать в выражениях / элементах управления в PowerApps.