Kopīgot, izmantojot


Update and UpdateIf funkcijas

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

Atjaunina ierakstus datu 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

Tikai daži datu avoti atbalsta UpdateIf. Ja datu avots neatbalsta šo līdzekli, tagad nosūtīs vaicājumu serverim un izgūs visus datus, Power Apps kas atbilst filtra izteiksmei, nepārsniedzot 500 vai 2000, vai datu lappuses lielumu. 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āts. Datu avots, kas satur ierakstu, kuru vēlaties aizstāt.
  • OldRecord - Obligāts. Aizstājamais ieraksts.
  • NewRecord - Obligāts. 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āts. Datu avots, kas satur ierakstu vai ierakstus, kurus vēlaties modificēt.
  • nosacījumi – 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.
  • ChangeRecords - Nepieciešams. 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( Saldējums,
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( Saldējums, daudzums > 175,Daudzums { : Daudzums + 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( Saldējums,
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( Saldējums, taisnība,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(Inventārs, Preces nosaukums = 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.