Funkcije Update i UpdateIf u aplikaciji Power Apps

Ažurira zapise u nekom izvoru podataka.

Opis

Funkcija Update

Upotrijebite funkciju Update kako biste zamijenili cijeli zapis u nekom izvoru podataka. Suprotno tome, funkcije UpdateIf i Patch mijenjaju jednu ili više vrijednosti u nekom zapisu, ostavljajući ostale vrijednosti same.

U slučaju zbirke, mora se podudarati cijeli zapis. Zbirke dopuštaju duplicirane zapise pa se može podudarati više zapisa. Možete koristiti argument All kako biste ažurirali sve kopije zapisa, inače se ažurira samo jedna kopija zapisa.

Ako izvor podataka automatski generira vrijednost nekog stupca, vrijednost toga stupca mora se ponovno potvrditi.

Funkcija UpdateIf

Upotrijebite funkciju UpdateIf kako biste izmjenili jednu ili više vrijednosti u jednom ili više zapisa koji odgovaraju jednom ili više uvjeta. Uvjet može biti bilo koja formula koja rezultira vrijednošću true ili false i može referencirati stupce izvora podataka po imenu. Ova funkcija procjenjuje taj uvjet za svaki zapis i mijenja svaki zapis za koji je rezultat true.

Da biste odredili izmjenu, upotrijebite zapis promjene koji sadrži nove vrijednosti svojstava. Ako ovaj zapis promjene stavite u vitičaste zagrade, formule svojstava mogu upućivati na svojstva zapisa koji se mijenja. To ponašanje možete koristiti za izmjenu zapisa na temelju neke formule.

Slično funkciji UpdateIf, možete koristiti i funkciju Patch kako biste promijenili određene stupce zapisa bez utjecaja na druge stupce.

I Update i UpdateIf vraćaju izmijenjeni izvor podataka kao tablicu. Morate koristiti bilo koju od tih funkcija u formuli ponašanja.

Delegacija

Kad se koristi uz izvor podataka, te se funkcije ne mogu delegirati. Dohvatit će se samo prvi dio izvora podataka, a zatim će se primijeniti funkcija. Rezultat možda neće predstavljati potpunu priču. Upozorenje će se možda pojaviti u vrijeme stvaranja sadržaja da bi vas podsjetilo na to ograničenje i predložilo prebacivanje na rješenja koja je moguće delegirati kad god je to moguće. Dodatne informacije potražite u odjeljku Pregled delegiranja.

Sintaksa

Update( izvor podataka, stari zapis, novi zapis [, All ] )

  • DataSource – Required. Izvor podataka koji sadrži zapis koji želite zamijeniti.
  • OldRecord – Required. Zapis koji treba zamijeniti.
  • NewRecord – Required. Zamjenski zapis. Ovo nije zapis promjene. Cijeli se zapis zamjenjuje, a nedostajuća svojstva sadržat će prazno.
  • All – Neobvezno. U nekoj zbirci se isti zapis može pojaviti više puta. Navedite argument Svi za ažuriranje svih kopija zapisa.

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

  • DataSource – Required. Izvor podataka koji sadrži zapis ili zapise koje želite izmijeniti.
  • Condition(s) – Required. Formula koja daje rezultat true za zapis ili zapise koje želite izmijeniti. Možete koristiti nazive stupaca iz DataSource u toj formuli.
  • ChangeRecord(s) - Required. Za svaki odgovarajući uvjet, zapis promjene nove vrijednosti svojstva koje se primjenjuju na zapise iz izvora podataka koji ispunjavaju taj uvjet. Ako zapis navedete koristeći vitičaste zagrade, vrijednosti svojstava postojećeg zapisa mogu se koristiti u formulama svojstava.

Primjeri

U tim ćete primjerima zamijeniti ili izmijeniti zapise u izvoru podataka koji ima naziv IceCream, a započinje podatcima iz ove tablice:

Primjer za sladoled.

Formula Opis Rezultat
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Zamjenjuje zapis iz tog izvora podataka. Zamijenite zapis.

Izvor podataka IceCream također je izmijenjen.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Mijenja zapise koji imaju polje Quantity koje je veće od 175. Polje Quantity povećava se za 10 i ne mijenja se nijedno drugo polje. Izmijenite zapis.

Izvor podataka IceCream također je izmijenjen.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Zamjenjuje zapis iz tog izvora podataka. Svojstvo Quantity nije dostavljen u zapis promjene, pa će to svojstvo biti prazno u rezultatu. Zamijenite zapisa kada količina nije dostavljena.

Izvor podataka IceCream također je izmijenjen.
UpdateIf( IceCream, true, { Quantity: 0 } ) Postavlja vrijednost svojstva Quantity za sve zapise u tom izvoru podataka na 0. Postavite količinu za sve na 0.

Izvor podataka IceCream također je izmijenjen.

Korak po korak

  1. Uvezite ili stvorite zbirku po imenu Inventory i prikažite je u nekoj galeriji kako je opisano u odjeljku Prikazivanje podataka u galeriji.

  2. Nazovite tu galeriju ProductGallery.

  3. Dodajte klizač s nazivom UnitsSold i postavite svojstvo Max na ovaj izraz:
    ProductGallery.Selected.UnitsInStock

  4. Dodajte gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Pritisnite F5, odaberite neki proizvod u galeriji, navedite vrijednost klizačem i zatim odaberite gumb.

    Broj komada navedenog proizvoda na skladištu smanjuje se za iznos koji ste naveli.