Update and UpdateIf funkcijas

Attiecas uz: Pamatnes programmām Modeļa vadītas programmas

Atjaunina ierakstusdatu avotā.

Apraksts

Atjaunināšanas funkcija

Izmantojiet funkciju Update, lai aizstātu visu ierakstu datu avotā. Turpretī UpdateIf un Patch funkcijas modificē vienu vai vairākas ieraksta vērtības, neskarot citas vērtības.

Kolekcijām jāatbilst visam ierakstam. Kolekcijas pieļauj ierakstu dublikātus, tāpēc varētu sakrist vairāki ieraksti. Varat izmantot argumentu RemoveFlags.All , lai atjauninātu visas ieraksta kopijas; pretējā gadījumā tiek atjaunināta tikai viena ieraksta kopija.

Ja datu avots automātiski ģenerē kolonnas vērtību, ir jāapstiprina šīs kolonnas vērtība.

UpdateIf funkcija

Izmantojiet funkciju UpdateIf, lai modificētu vienu vai vairākas vērtības vienā vai vairākos ierakstos, kas atbilst vienam vai vairākiem nosacījumiem. Nosacījums var būt jebkura formula, kas rezultējas vērtībā true vai false un var atsaukties uz datu avota kolonnām pēc nosaukuma. Šī funkcija novērtē katra ieraksta nosacījumu un pārveido visus ierakstus, kuru rezultāts ir patiess.

Lai konkretizētu modifikāciju, izmantojiet izmaiņu ierakstu, kas satur jaunās rekvizīta vērtības. Ja nodrošināt šo izmaiņu ierakstu figūriekavās, rekvizītu formulas var atsaukties uz tiem ieraksta rekvizītiem, kuri tiek modificēti. Varat izmantot šo uzvedību, lai modificētu ierakstus, pamatojoties uz formulu.

Līdzīgi kā UpdateIf, varat lietot arī Patch funkciju, lai mainītu noteiktas ieraksta kolonnas, neskarot citas kolonnas.

Gan Update, gan UpdateIf funkcija atgriež pārveidoto datu avotu kā tabulu. Uzvedības formulā ir jāizmanto viena no šīm funkcijām.

Deleģēšana

Lietojot kopā ar datu avots, šīs funkcijas nevar deleģēt. Tiks izgūta tikai pirmā datu avota daļa, un pēc tam tiks izmantota funkcija. Tas var neatspoguļot visu stāstu. Autorēšanas laikā var tikt parādīts brīdinājums, lai atgādinātu jums par šo ierobežojumu.

Deleģēšanas atbalsts (eksperimentāls)

Deleģēšanas atbalsts UpdateIf un RemoveIf tagad ir pieejams eksperimentālajā priekšskatījumā (noklusējuma IZSLĒGTS) datu avotiem, kas to atbalsta. Ja datu avots neatbalsta šo līdzekli, tagad nosūtīs vaicājumu serverim un izgūs visus datus, kas atbilst filtra izteiksmei līdz maksimumam 500, Power Apps 2000 vai datu lappuses lielumam. Pēc tam tas atjauninās šos ierakstus un nosūtīs tos atpakaļ uz atjaunināmo serveri.

Sintakse

Update( DataSource,OldRecord,NewRecord[, RemoveFlags.All ] )

  • DataSource – Obligāti. Datu avots, kas satur ierakstu, kuru vēlaties aizstāt.
  • OldRecord — Obligāti. Aizstājamais ieraksts.
  • NewRecord — Obligāti. Aizstāšanas ieraksts. Šis nav izmaiņu ieraksts. Tiek aizstāts viss ieraksts, un trūkstošie rekvizīti saturēs blank.
  • RemoveFlags.All – Pēc izvēles. Kolekcijā viens un tas pats ieraksts var parādīties vairāk nekā vienu reizi. Norādiet argumentu RemoveFlags.All , lai atjauninātu visas ieraksta kopijas.

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

  • DataSource – Obligāti. Datu avots, kas satur ierakstu vai ierakstus, kurus vēlaties modificēt.
  • Nosacījums(-i) – Obligāti. Formula ar vērtību true noņemamajam ierakstam vai ierakstiem, kurus vēlaties modificēt. Formulā varat izmantot kolonnu nosaukumus no DataSource.
  • ChangeRecord(s) — Obligāti. Katram atbilstošajam nosacījumam jaunu rekvizīta vērtību izmaiņu ieraksts, kuru piemērot tiem DataSource ierakstiem, kuri atbilst nosacījumam. Ja nodrošināt ierakstu, izmantojot figūriekavas, esošā ieraksta rekvizīta vērtības var izmantot rekvizītu formulās.

Piemēri

Šajos piemēros tiks aizstāti vai pārveidots ieraksts vai ieraksti datu avotā ar nosaukumu IceCream, kurš sākas ar šīs tabulas datiem:

Piemērs ar saldējumu.

Formula Apraksts Rezultāts
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Noņem ierakstu no datu avota. Aizstāt ierakstu.

Datu avots IceCream ticis modificēts.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Modificē ierakstus, kuriem Daudzums ir lielāks par 175. Lauks Daudzums pieaug par 10, bet citi lauki netiek modificēti. Modificējiet ierakstus.

Datu avots IceCream ticis modificēts.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Noņem ierakstu no datu avota. Quantity rekvizīts netiek piegādāts aizstāšanas ierakstā, tāpēc šis rekvizīts rezultātos būs tukšs. Aizstāt ierakstu, ja daudzums nav piegādāts.

Datu avots IceCream ticis modificēts.
UpdateIf( IceCream, true, { Daudzums: 0 } ) Iestata rekvizīta Daudzums vērtību visiem datu avota ierakstiem uz 0. Iestatiet daudzumu visiem uz 0.

Datu avots IceCream ticis modificēts.

Pakāpeniskas darbības

  1. Importējiet vai izveidojiet kolekciju ar nosaukumu Krājums un rādiet to galerijā, kā aprakstīts Rādīt datus galerijā.

  2. Piešķiriet galerijai nosaukumu ProductGallery.

  3. Pievienojiet slīdni ar nosaukumu UnitsSold un iestatiet tā rekvizītu Max uz šādu izteiksmi:
    ProductGallery.Selected.UnitsInStock

  4. Pievienojiet pogu un iestatiet tās rekvizītu OnSelect uz tālāk norādīto formulu:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Nospiediet taustiņu F5, atlasiet kādu preci galerijā, norādiet vērtību ar slīdni un pēc tam atlasiet pogu.

    Noliktavā esošo vienību skaits precei, kuru norādījāt, pieaug par jūsu norādīto apjomu.