Нотатка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
Застосовується до: Програми
Canvas Copilot Studio
Desktop flows
Model-driven apps
Power Platform CLI
Dataverse functions
Power Pages
Пошук одного або кількох записів у таблиці.
Перегляньте це відео, щоб дізнатися, як використовувати Filter, Searchі LookUp функції:
Нотатка
Pac CLI pac power-fx команди не підтримують Search функцію.
Опис
Функція Filter знаходить записи в таблиці, які відповідають формулі. Використовується Filter для пошуку набору записів, які відповідають одній або кількох умовам, і вилучення тих записів, які цього не зробили.
Функція LookUp знаходить перший запис у таблиці, яка задовольняє формулу. Використовується LookUp для пошуку одного запису, який відповідає одній або кількох умовам.
В обох випадках формула обчислюється для кожного запису таблиці. Записи зі значенням true включаються в результат. Окрім звичайних операторів формул можна скористатися операторами in та exactin для збігів підрядків.
Поля оброблюваного запису доступні у формулі. Використовуйте оператор ThisRecord або просто вкажіть посилання на поля за іменем, як у випадку з будь-яким іншим значенням. Оператор As також можна використовувати для призначення імені оброблюваного запису, що спростить сприймання формули та зробить вкладені записи доступними. Додаткову інформацію див. у прикладах нижче та в статті Робота з областю застосування записів.
Функція Search знаходить записи в таблиці, які містять рядок в одному зі своїх стовпців. Рядок може виникнути будь-де в стовпці; наприклад, пошук за запитом "rob" або "bert" може знайти збіг у стовпці, який містить слово "Robert". Під час пошуку не враховується регістр. На відміну від Filter і LookUp, Search замість формули функція використовує один рядок.
Filter і Search повертає таблицю, яка містить ті самі стовпці, що й вихідна таблиця, і записи, які відповідають умовам. LookUp повертає лише перший знайдений запис, після застосування формули для зменшення запису до одного значення. Якщо жодного запису не знайдено та FilterSearch повернуто пусту таблицю та LookUpповернуто пусту таблицю.
Таблиці - це значення Power Apps, так само як рядок або число. Їх можна передавати в функції та повертати від функцій. Filter, Searchі LookUp не змінюйте таблицю. Замість цього вони обробляють таблицю як аргумент і повертають таблицю, запис або одне значення з нього. Додаткові відомості див. в розділі Робота з таблицями.
Делегування
За можливості Power Apps делегуватимуть операції фільтрування й сортування джерелу даних і розбиватимуть результати на сторінки за запитом. Наприклад, якщо ви запустите програму, яка показує Галерею даних, на пристрій спочатку буде завантажено лише перший набір записів. Додаткова інформація завантажуватиметься з джерела даних, коли користувач прокручуватиме галерею. Це прискорює запуск програм і доступ до дуже великих наборів даних.
Утім, делегування не завжди можливе. Джерела даних відрізняються за наборами функцій і операторів, які вони підтримують під час делегування. Якщо повністю делегувати формулу неможливо, неделеговану частину буде виділено в редакторі з попередженням. Якщо можливо, спробуйте змінити формулу, відмовившись від функцій і операторів, які не можна делегувати. У списку делегування перелічено всі джерела даних і операції, які можна делегувати.
Якщо делегування неможливе, Power Apps завантажить лише невеликий набір записів для локальної обробки. Filter функції сортування працюватимуть на зменшеному наборі записів. Тобто в Галереї може відображатися не вся історія, що може спантеличити користувачів.
Додаткову інформацію див. у статті Огляд делегування.
Синтаксис
Filter(Таблиця*, Формула1 [, *Формула2*, ... ] )
- Таблиця - обов’язковий. Таблиця для виконання пошуку.
- Формули- обов’язкові . Формула, за якою обчислюється кожний запис таблиці. Функція повертає всі записи зі значенням true. В таблиці можна посилатися на стовпці. Для джерел даних Dataverse формула може бути іменем подання Dataverse. Якщо вказати кілька формул, результати усіх формул поєднуються за допомогою функції And.
Нотатка
Можна створити подання dataverse, які повертають додаткові стовпці з пов'язаних таблиць. Однак Power Apps повертає лише ті стовпці, які, як відомо, входять до вказаного джерела даних Dataverse.
Search(Таблиця*, Рядок пошуку, стовпець1 [, *Стовпець2*, ... ] )
- Таблиця - обов’язковий. Таблиця для виконання пошуку.
- SearchString - обов’язковий. Рядок для пошуку. У разі пустого значення або пустого рядка повертаються всі записи.
- Стовпчики - обов’язкові для заповнення . Імена стовпців у таблиці для пошуку. Якщо SearchString буде знайдено в даних будь-якого з цих стовпців як частковий збіг, повернеться повний запис.
Нотатка
У програмах Power Apps до версії 3.24042 імена стовпців для Search функції указано текстовим рядком із подвійними лапками, а якщо їх підключено до джерела даних, вони також повинні були бути логічними іменами. Наприклад, логічне ім'я "cr43e_name" з подвійними лапками використовувалося замість короткого імені без лапок. Для джерел даних SharePoint і Excel, які містять імена стовпців із пробілами, у кожному пробілі вказано "_x0020_", наприклад "Column Name" , як "Column_x0020_Name". Після цієї версії всі програми були автоматично оновлені до нового синтаксису, описаного в цій статті.
LookUp(Table*, Formula [, *ReductionFormula* ] )
- Таблиця - обов’язковий. Таблиця для виконання пошуку. В інтерфейсі користувача синтаксис відображається як джерело над полем функції.
- Формула - Обов’язкова. Формула, за якою обчислюється кожний запис таблиці. Функція повертає перший запис зі значенням true. В таблиці можна посилатися на стовпці. В інтерфейсі користувача синтаксис відображається як умова над полем функції.
- Формула скорочення- необов’язкова. Ця формула обчислюється для знайденого запису, а потім вона скорочує запис до одного значення. В таблиці можна посилатися на стовпці. Якщо цей параметр не використовується, функція повертає повний запис із таблиці. В інтерфейсі користувача синтаксис відображається як результат над полем функції.
Приклади
У наступних прикладах використовується джерело данихIceCream (Морозиво).
| Формула | Опис | Результат |
|---|---|---|
Filter(IceCream, OnOrder > 0) |
Повертає записи, у яких значення стовпця OnOrder (Замовлено) більше нуля. |
|
Filter(IceCream, Quantity + OnOrder > 225) |
Повертає записи, у яких сума значень стовпців Quantity (Кількість) і OnOrder більше 225. |
|
Filter(IceCream, "chocolate" in Lower(Flavor )) |
Повертає записи, у яких слово "chocolate" відображається в назві "Смак ", незалежно від великих або малих букв. |
|
Filter(IceCream, Quantity < 10 && OnOrder < 20) |
Повертає записи, у яких значення стовпця Quantity менше 10, а стовпця OnOrder – менше 20. Цим критеріям не відповідає жоден запис, тому буде повернуто пусту таблицю. |
|
Search(IceCream, "choc", Flavor) |
Повертає записи, у яких рядок "choc" відображається в назві "Смак ", незалежно від великих або малих букв. |
|
Search(IceCream, "", Flavor) |
Оскільки пошуковий термін не вказаний, повертаються всі записи. |
|
LookUp(IceCream, Flavor = "Chocolate", Quantity) |
Шукає запис зі смаком, рівним "Chocolate", з яких є один. Для першого знайденого запису повертає значення стовпця Quantity. | 100 |
LookUp(IceCream, Quantity > 150, Quantity + OnOrder) |
Виконує пошук запису, у якому значення стовпця Quantity більше 150 (таких записів кілька). Для першого знайденого запису , який має значення "Vanilla" Flavor, повертає суму стовпців "Кількість " і "OnOrder ". | 250 |
LookUp(IceCream, Flavor = "Pistachio", OnOrder) |
Шукає запис зі значенням Flavor , рівним "Pistachio", з яких немає. Оскільки нічого не знайдено, функція Lookup (підстановка) повертає значення blank (пусто). | Порожній |
LookUp(IceCream, Flavor = "Vanilla") |
Шукає запис зі смаком, рівним "Vanilla", з яких є один. Оскільки не було вказано формулу для скорочення, повертається весь запис. | { Смак: "Vanilla", Кількість: 200, OnOrder: 75 } |
Фільтрування за допомогою окремих стовпців
Наведений нижче приклад використовує в якості джерела даних таблицю Бізнес-партнер у Microsoft Dataverse. У цьому прикладі показано, як створити Filter список облікових записів на основі вибраних значень елемента керування "Поле зі списком":
Покрокові інструкції
Відкрийте пусту програму.
Додайте новий екран за допомогою параметру Новий екран.
На вкладці Вставлення виберіть Галерея, а потім виберіть пункт Вертикальна.
На вкладці Властивості області праворуч, відкрийте меню Джерело даних, а потім виберіть Бізнес-партнери.
(Необов'язково) У списку Макет, виберіть інші параметри.
На вкладці Вставлення виберіть Введення, а потім виберіть пункт Поле зі списком. Повторіть крок, щоб додати ще два елементи керування "Поле зі списком".
Для кожного елементу керування "Поле зі списком", на вкладці Властивості області праворуч, відкрийте меню Джерело даних, а потім виберіть Бізнес-партнери. Натисніть Редагувати поряд з параметром Поля, та виберіть значення Основний текст та SearchField. Основним текстом має бути стовпець варіантів, який ви хочете додати до поля зі списком. Повторіть крок з двома іншими елементами керування "Поле зі списком".
Тепер виберіть елемент керування Галерея та задайте наведену нижче формулу у властивості Елементи.
Filter(Accounts, 'Industry' = ComboBox3.Selected.Industry Or IsBlank(ComboBox3.Selected.Industry), 'Relationship Type' = ComboBox2.Selected.'Relationship Type' Or IsBlank(ComboBox2.Selected.'Relationship Type'), 'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact' Or IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
Search інтерфейс користувача
У наступних прикладах використовується джерело данихIceCream (Морозиво).
У багатьох програмах можна ввести один або кілька символів у поле пошуку, щоб відфільтрувати список записів у великому наборі даних. Під час введення у списку відображаються лише записи, які відповідають умовам пошуку.
Далі в прикладах цієї статті показані результати пошуку за списком "Клієнти", який містить такі дані:
Щоб створити це джерело даних як колекцію, створіть елемент керування Кнопка і встановіть для його властивості OnSelect цю формулу.
ClearCollect(Customers, Table({ Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" }) )
У цьому прикладі можна відобразити список записів у елементі керування "Галерея" в нижній частині екрана. У верхній частині екрана можна додати елемент керування Введення тексту, названий SearchInput, щоб користувачі могли визначити записи, які їх цікавлять.
Коли користувач вводить символи в поле SearchInput, результати в галереї автоматично фільтруються. У цьому випадку галерею настроєно на відображення записів, для яких ім’я клієнта (а не назва компанії) починається з послідовності символів у елементі керування з іменем SearchInput. Якщо користувач уведе в полі пошуку літери «co», галерея відобразить зазначені нижче результати.
Щоб фільтрувати на основі стовпця Ім’я, налаштуйте для властивості Елементи елемента керування галереєю одну з таких формул:
| Формула | Опис | Результат |
|---|---|---|
| Filter(Customers, StartsWith(Name, SearchInput.Text) | Відфільтровує в джерелі даних Клієнти записи, в яких рядок пошуку відображається на початку стовпця Ім’я. Перевірка нечутлива до регістру. Якщо користувач вводить co у поле пошуку, в галереї відображаються Colleen Jones і Cole Miller. У колекції не відображається Mike Collins, оскільки стовпець Ім’я для цього запису не починається з рядка пошуку. |
|
| Filter(Клієнти, SearchInput.Text in Name) | Відфільтровує в джерелі даних Клієнти записи, в яких рядок пошуку відображається в будь-якому місці стовпця Ім’я. Перевірка нечутлива до регістру. Якщо користувач вводить co у поле пошуку, в галереї відобразяться Colleen Jones,Cole Miller і Mike Collins, оскільки рядок пошуку присутній десь у стовпці Ім’я всіх цих записів. |
|
| Search(Клієнти, SearchInput.Text, ім'я) | Подібно до використання оператора in , Search функція шукає збіг у будь-якому місці в стовпці Ім'я кожного запису. Необхідно поставити назву стовпця у подвійні лапки. |
|
Пошук можна розширити включенням в нього стовпців Компанія та Ім'я:
| Формула | Опис | Результат |
|---|---|---|
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) |
Фільтрує джерела даних Клієнти за записами, в яких стовпець Ім’я або стовпець Компанія починається з рядка пошуку (наприклад co). ||Оператор має значення true, якщо функція StartsWith має значення true. |
|
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) |
Відфільтровує в джерелі даних Клієнти записи, в яких стовпець Ім’я або стовпець Компанія містить рядок пошуку (наприклад, co) у будь-якому місці стовпців. |
|
Search(Customers, SearchInput.Text, Name, Company) |
Подібно до використання оператора in , Search функція шукає записи в джерелі даних "Клієнти ", у яких стовпець "Ім'я" або " Компанія " містить рядок пошуку (наприклад, co) будь-де в ньому. Функцію Search легше читати та записувати, ніж Filter указувати кілька стовпців і кілька операторів . |
|