Нотатка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
Застосовується до: Програми canvas
Model-driven
Оновлює записи у джерелі даних.
Опис
Update функція
Скористайтеся функцією Update , щоб замінити весь запис у джерелі даних. На відміну UpdateIf від цього, функції та patch змінюють одне або кілька значень у записі, залишаючи інші значення в спокої.
Для колекції має збігатися весь запис. Колекції дають змогу дублювати записи, тому можуть збігатися кілька записів. Ви можете використовувати аргумент RemoveFlags.All для оновлення всіх копій запису; в іншому випадку оновлюється лише одна копія запису.
Якщо джерело даних автоматично генерує значення стовпця, значення цього стовпця має бути повторно підтверджено.
UpdateIf функція
UpdateIf Використовуйте функцію, щоб змінити одне або кілька значень в одному або кількох записах, які відповідають одній або кількох умов. Умова може бути будь-якою формулою, результатом якої є true або false, і може посилатися на стовпці джерела даних за іменами. Функція оцінює умову для кожного запису та змінює будь-який запис із результатом true.
Щоб указати зміну, використайте змінний запис, який містить нові значення властивостей. Якщо ввести цей змінний запис у тексті у фігурних дужках, формули властивостей зможуть посилатися на властивості запису, який змінюється. За допомогою цієї поведінки можна змінити записи на основі формули.
Подібно до UpdateIf, ви також можете використовувати функцію Patch , щоб змінювати певні стовпці запису, не впливаючи на інші стовпці.
І Update те, і інше, і UpdateIf повернення зміненого джерела даних як таблиці. Одну з цих функцій потрібно використати у формулі поведінки.
Делегування
Ці функції не делеговано джерелу даних. Однак і RemoveIf працюють локально, UpdateIf щоб імітувати делегування до обмеження в 500/2000 записів. Вони поступово зводять записи за межі не делегування 500/2000 записів. Збираються записи, які відповідають умові If . Зазвичай не більше 500/2000 записів збираються окремо, а потім змінюються для виконання. Проте інші записи можуть оновлюватися, якщо наявний локальний кеш даних великий, оскільки функція може мати доступ до більшої кількості записів для оцінювання. Буде отримано лише початкову частину джерела даних, а потім буде застосовано функцію. Можливо, це не є повним рисунком. Під час створення може з'явитися попередження про це обмеження.
Синтаксис
Update(DataSource_, OldRecord, NewRecord [, RemoveFlags.All ] )
- Джерело даних– Обов’язковий. Джерело даних, що містить запис, який необхідно замінити.
- OldRecord – Обов’язковий. Запис, який потрібно замінити.
- NewRecord – Обов’язковий. Запис на заміну. Це не змінний запис. Весь запис буде замінено, а відсутні властивості містять пусті.
- RemoveFlags.All – необов’язковий. У колекції один і той же запис може відображатися не раз. Укажіть аргумент RemoveFlags.All , щоб оновити всі копії запису.
UpdateIf(DataSource_, умова1, ChangeRecord1 [, Умова2, ChangeRecord2, ... ] )
- Джерело даних– Обов’язковий. Джерело даних, що містить запис або записи, які необхідно змінити.
- Умови – обов'язковий аргумент. Формула, яка має значення true для запису чи записів, які ви хочете змінити. У формулі можна використовувати імена стовпців DataSource. Якщо буде передано кілька умов , застосовується лише параметр ChangeRecord , пов'язаний із першою умовою , яка повертає значення true .
- ChangeRecords - Обов’язковий. Для кожної відповідної умови це змінний запис нових значень властивостей, який буде застосовано до записів DataSource, що задовольняють умову. Якщо надати запис у тексті у фігурних дужках, значення властивостей наявного запису можна використовувати у формулах властивостей.
Приклади
у цих прикладах можна замінити або змінити записи в джерелі даних під назвою IceCream, яке починається з даних у цій таблиці:
| Формула | Опис | Результат |
|---|---|---|
|
Update(IceCream, LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, Смак: "М'ятний шоколад", Кількість:150 } ) |
Замінює запис із джерела даних. |
Джерело даних IceCream було змінено. |
| UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) | Змінює записи, у яких є Quantity, що перевищує 175. Поле Quantity збільшується на 10, а інші поля не змінюються. |
Джерело даних IceCream було змінено. |
|
Update(IceCream, LookUp( IceCream, Flavor="Полуниця" ), { ID: 3, Flavor: "Полуничний завиток"} ) |
Замінює запис із джерела даних. Властивість Quantity у записі на заміну не вказано, тому в результаті властивість буде пустою. |
Джерело даних IceCream було змінено. |
| UpdateIf( IceCream, true, { Quantity: 0 } ) | Задає властивості Quantity для всіх записів у джерелі даних значення 0. |
Джерело даних IceCream було змінено. |
Покрокові інструкції
Імпортуйте або створіть колекцію з іменем Inventory, і покажіть її у галереї, як описано в розділі Відображення даних у галереї.
Назвіть галерею ProductGallery.
Додайте повзунок під назвою UnitsSold і задайте для його властивості Max такий вираз:
Галерея товарів.Вибрані.ОдиниціInStockДодайте кнопку та налаштуйте її властивість OnSelect відповідно до нижченаведеної формули.
UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-Unitssold.Value})Натисніть клавішу F5, виберіть продукт у галереї, укажіть значення з повзунком, а потім натисніть кнопку.
Кількість одиниць у наявності для вказаного продукту зменшиться на вказану суму.