Делите путем


Ажурирај и ажурирајИф функције

Важи за: Цанвас апликације Модел-дривен апликације

Ажурира записе у извору података.

Опис

Функција Update

Користите функцију Update за замену целог записа у извору података. Супротно томе, функције UpdateIf и Patch мењају једну или више вредности у запису, а остале вредности остављају саме.

За збирку, целокупни запис се мора подударати. Збирке омогућавају дуплиране записе па се може подударати више записа. Аргумент РемовеФлагс.Алл можете да користите да бисте ажурирали све копије записа; у супротном, ажурира се само једна копија записа.

Ако извор података аутоматски генерише вредност колоне, вредност те колоне мора поново бити потврђена.

Функција UpdateIf

Користите функцију UpdateIf за измену једне или више вредности у једном или више записа који одговарају једном или више услова. Услов може бити било која формула која даје резултат тачно или погрешно и може да се референцира на колоне извора података по имену. Функција процењује стање за сваки запис и мења било који запис за који је резултат тачно.

Да бисте одредили модификацију, користите запис о промени који садржи нове вредности својстава. Ако овај запис о промени обезбедите уметнуто са витичастим заградама, формуле својстава се могу референцирати на својства записа који се мења. Ово понашање можете користити за модификовање записа на основу формуле.

Као функцију UpdateIf, можете користити и функцију Patch за промену одређених колона записа без утицаја на друге колоне.

Обе функције, Update и UpdateIf, враћају измењени извор података као табелу. Морате користити било коју функцију у формули понашања.

Делегирање

Када се користе са < ДИЦТ__извор података > дата соурце , ове функције се не могу делегирати. Само први део извора података ће бити преузет, а затим примењена функција. Ово можда не представља целу причу. Упозорење се може појавити у време ауторизације да би вас подсетило на ово ограничење.

Подршка делегације (експериментална)

Подршка делегације за УпдатеИф и РемовеИф је сада у експерименталном < ДИЦТ__верзија за преглед > Превиеw (дефаулт ОФФ) за изворе података који је подржавају. Ако < ДИЦТ__извор података > дата соурце не подржава ову функцију, Power Apps сада ће послати упит серверу и преузети све податке који се подударају са изразом филтера до максималне величине странице са подацима до максималних 500, 2000 или величине странице са подацима. Затим ће ажурирати те записе и све послати назад на сервер да би били ажурирани.

Синтакса

Упдате ( ДатаСоурце,ОлдРецорд,НеwРецорд [, РемовеФлагс .Алл ] )

  • DataSource – Обавезно. Извор података који садржи запис који желите заменити.
  • OldRecord – Обавезно. Записа за замену.
  • NewRecord – Обавезно. Запис замене. Ово није запис промене. Читав запис је замењен, а својства која недостају ће садржати празно.
  • РемовеФлагс .Алл – Опционално. У збирци се исти запис може појавити више пута. Наведите аргумент РемовеФлагс.Алл да бисте ажурирали све копије записа.

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – Обавезно. Извор података који садржи запис или записе које желите изменити.
  • Condition(s) – Обавезно. Формула која се процењује на тачно за запис или записе које желите да измените. Можете користити имена колона у DataSource у формули.
  • ChangeRecord(s) – Обавезно. За сваки одговарајући услов, промена записа нових вредности својстава која ће се применити на записе DataSource који задовољавају услов. Ако обезбедите уметнути запис користећи витичасте заграде, вредности својстава постојећег записа могу се користити у формулама својстава.

Примери

У овим примерима ћете заменити или изменити записе у извору података по имену IceCream и започиње подацима из ове табеле:

IceCream пример.

Формула Опис Резултат
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Мења запис из извора података. Замените запис.

Извор података IceCream је измењен.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Мења записе који имају Quantity која је веће од 175. Поље Quantity се инкрементално повећава за 10, а ниједно друго поље се не мења. Измените записе.

Извор података IceCream је измењен.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Мења запис из извора података. Својство Quantity није дато у запису о замени, тако да ће својство бити празно у резултату. Замени запис када количина није испоручена.

Извор података IceCream је измењен.
UpdateIf( IceCream, true, { Quantity: 0 } ) Поставља вредност својства Quantity за све записе у извору података на 0. Поставите количину за све на 0.

Извор података IceCream је измењен.

Корак по корак

  1. Увозите или креирате колекцију под називом Инвентар и приказујете је у галерији као Приказ података у галерији.

  2. Назовите галерију ProductGallery.

  3. Додајте клизач по имену UnitsSold, и поставите његово својство Max на овај израз:
    ProductGallery.Selected.UnitsInStock

  4. Додајте дугме и подесите његово својство OnSelect према овој формули:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Притисните F5, изаберите производ у галерији, одредите вредност клизачем, а затим изаберите дугме.

    Број јединица на складишту за производ који сте навели смањује се за износ који сте навели.