Довідкова інформація про шаблон екрана "Люди" для компонованих програм
Для програм на полотні в Power Apps зрозумійте, як кожен значний елемент керування в шаблоні екрана користувачів сприяє загальній функціональності екрана за замовчуванням. Цей детальний огляд містить формули поведінки і значення інших властивостей, що визначають реакцію елементів керування на дані, що вводяться користувачем. Детальне обговорення стандартної функціональності цього екрана див. в розділі Огляд екрана "Люди.
У цьому розділі описуються деякі важливі елементи керування і пояснюються вирази або формули, в яких задаються різні властивості (наприклад, Елементи і OnSelect) цих елементів керування:
- Поле пошуку тексту
- Колекція "Огляд користувачів" (+ дочірні елементи керування)
- Колекція "Додані люди (+ дочірні елементи керування)
Передумова
Знайомство з додаванням і настроюванням екранів та інших елементів керування під час створення програми в Power Apps.
Поле пошуку тексту
Кілька інших елементів керування взаємодіють з або залежать від поля пошуку тексту:
- Якщо користувач починає вводити будь-який текст, відображається UserBrowseGallery.
- Коли користувач вибирає людину в UserBrowseGallery, вміст пошуку скидається.
Колекція "Огляд користувачів"
Властивість: Items
Значення: логіка, за якою шукати користувачів, коли користувач починає введення з клавіатури:
If( !IsBlank( Trim( TextSearchBox.Text ) ), 'Office365Users'.SearchUser( { searchTerm: Trim( TextSearchBox.Text ), top: 15 } ) )
Елементи цієї колекції заповнюються результатами пошуку з операції Office365.SearchUser. Операція бере текст у
Trim(TextSearchBox)як умову пошуку і повертає 15 найкращих результатів на основі цього пошуку. TextSearchBox береться всередину функції
Trim(), оскільки пошук користувача з пробілами не дійсний.
Операція
Office365Users.SearchUser розташовується в функції
If(!IsBlank(Trim(TextSearchBox.Text)) ... ), тому що операцію потрібно викликати лише якщо поле пошуку містить текст, вказаний користувачем. Це покращує ефективність.
Елемент керування "Заголовок UserBrowseGallery"
Властивість: Text
Значення:
ThisItem.DisplayName
Відображає коротке ім'я користувача з його профілю Office 365.
Властивість: OnSelect
Значення: Код для додавання користувача в колекцію рівня програми, а потім вибору користувача:
Concurrent( Set( _selectedUser, ThisItem ), Reset( TextSearchBox ), If( Not( ThisItem.UserPrincipalName in MyPeople.UserPrincipalName ), Collect( MyPeople, ThisItem ) ) )
Вибір цього елемента управління робить три дії одночасно:
- Задає значення змінної __selectedUser для обраного елемента.
- Скидання умов пошуку в TextSearchBox.
- Додає вибраний елемент до колекції MyPeople — колекції всіх людей, вибраних користувачем програми.
Елемент керування ProfileImage UserBrowseGallery
Властивість: Зображення
Значення: логіка для отримання фотографії профілю користувача.
If( !IsBlank( ThisItem.Id ) && 'Office365Users'.UserPhotoMetadata( ThisItem.Id ).HasPhoto, 'Office365Users'.UserPhoto( ThisItem.Id ) )
Елемент керування Зображення отримує зображення користувача за допомогою операції Office365Users.UserPhoto. Однак, перед отриманням, вона перевіряє дві речі:
- Чи порожнє поле ідентифікатора. Це не попереджає спроби елемента керування Зображення отримати фотографію користувача, перш ніж колекція заповниться результатами пошуку.
- Чи є у користувача фотографія (за допомогою операції Office365Users.UserPhotoMetadata). Це дозволить підстановці
Office365Users.UserPhotoуникнути повернення виключення, якщо користувач не має зображення профілю.
Зверніть увагу, що якщо зображення не отримано, елемент керування Зображення пустий, а замість нього відображається елемент iconUser.
Колекція доданих людей
- Властивість: Items
Значення:
MyPeople
Це колекція людей, ініціалізована або поповнена шляхом вибору елемента керування Заголовок UserBrowseGallery.
Елемент керування "Заголовок" PeopleAddedGallery
- Властивість: OnSelect
Значення:
Set( _selectedUser, ThisItem )
Задає змінну _selectedUser для елемента, обраного в EmailPeopleGallery.
Елемент керування "iconRemove" PeopleAddedGallery
- Властивість: OnSelect
Значення:
Remove( MyPeople, LookUp( MyPeople, UserPrincipalName = ThisItem.UserPrincipalName ) )
Виконує пошук запису в колекції MyPeople де UserPrincipalName відповідає UserPrincipalName обраного елемента, та видаляє цей запис з колекції.