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:
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. | 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. | 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. | 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. | Datu avots IceCream ticis modificēts. |
Pakāpeniskas darbības
Importējiet vai izveidojiet kolekciju ar nosaukumu Krājums un rādiet to galerijā, kā aprakstīts Rādīt datus galerijā.
Piešķiriet galerijai nosaukumu ProductGallery.
Pievienojiet slīdni ar nosaukumu UnitsSold un iestatiet tā rekvizītu Max uz šādu izteiksmi:
ProductGallery.Selected.UnitsInStockPievienojiet 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})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.