Deli putem


Ažuriraj i ažurirajIf funkcije

Važi za: Canvas aplikacije Model-driven aplikacije

Ažurira zapise u izvoru podataka.

Opis

Funkcija Update

Koristite funkciju Update za zamenu celog zapisa u izvoru podataka. Suprotno tome, funkcije UpdateIf i Patch menjaju jednu ili više vrednosti u zapisu, a ostale vrednosti ostavljaju same.

Za zbirku, celokupni zapis se mora podudarati. Zbirke omogućavaju duplirane zapise pa se može podudarati više zapisa. Argument RemoveFlags.All možete da koristite da biste ažurirali sve kopije zapisa; u suprotnom, ažurira se samo jedna kopija zapisa.

Ako izvor podataka automatski generiše vrednost kolone, vrednost te kolone mora ponovo biti potvrđena.

Funkcija UpdateIf

Koristite funkciju UpdateIf za izmenu jedne ili više vrednosti u jednom ili više zapisa koji odgovaraju jednom ili više uslova. Uslov može biti bilo koja formula koja daje rezultat tačno ili pogrešno i može da se referencira na kolone izvora podataka po imenu. Funkcija izračunava stanje za svaki zapis i menja bilo koji zapis za koji je rezultat tačno.

Da biste naveli izmenu, koristite zapis o promeni koji sadrži nove vrednosti svojstava. Ako ovaj zapis o promeni obezbedite umetnuto sa vitičastim zagradama, formule svojstava se mogu referencirati na svojstva zapisa koji se menja. Ovo ponašanje možete koristiti za izmenu zapisa na osnovu formule.

Kao funkciju UpdateIf, možete koristiti i funkciju Patch za promenu određenih kolona zapisa bez uticaja na druge kolone.

Obe funkcije, Update i UpdateIf, vraćaju izmenjeni izvor podataka kao tabelu. Morate koristiti bilo koju funkciju u formuli ponašanja.

Delegiranje

Kada se koriste sa izvor podataka, ove funkcije se ne mogu delegirati. Samo prvi deo izvora podataka će biti preuzet, a zatim primenjena funkcija. Ovo možda ne predstavlja celu priču. Upozorenje se može pojaviti u vreme autorizacije da bi vas podsetilo na ovo ograničenje.

Podrška delegacije (eksperimentalna)

Podrška delegacije za UpdateIf i RemoveIf sada se nalazi u eksperimentalnom pregledu (default OFF) za izvore podataka koji to podržavaju. Ako izvor podataka ne podržava ovu funkciju, Power Apps sada će poslati upit serveru i preuzeti sve podatke koji se podudaraju sa izrazom filtera do maksimuma od 500, 2000 ili veličine stranice sa podacima. Zatim će ažurirati te zapise i sve poslati nazad na server da bi bili ažurirani.

Sintaksa

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

  • DataSource – Obavezno. Izvor podataka koji sadrži zapis koji želite zameniti.
  • OldRecord – Obavezno. Zapisa za zamenu.
  • NewRecord – Obavezno. Zapis zamene. Ovo nije zapis promene. Čitav zapis je zamenjen, a svojstva koja nedostaju će sadržati prazno.
  • RemoveFlags.All – Opcionalno. U zbirci se isti zapis može pojaviti više puta. Navedite argument RemoveFlags.All da biste ažurirali sve kopije zapisa.

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

  • DataSource – Obavezno. Izvor podataka koji sadrži zapis ili zapise koje želite izmeniti.
  • Condition(s) – Obavezno. Formula koja se izračunava na tačno za zapis ili zapise koje želite da izmenite. Možete koristiti imena kolona u DataSource u formuli.
  • ChangeRecord(s) – Obavezno. Za svaki odgovarajući uslov, promena zapisa novih vrednosti svojstava koja će se primeniti na zapise DataSource koji zadovoljavaju uslov. Ako obezbedite umetnuti zapis koristeći vitičaste zagrade, vrednosti svojstava postojećeg zapisa mogu se koristiti u formulama svojstava.

Primeri

U ovim primerima ćete zameniti ili izmeniti zapise u izvoru podataka po imenu IceCream i započinje podacima iz ove tabele:

IceCream primer.

Formula Opis rezultat
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Menja zapis iz izvora podataka. Zamenite zapis.

Izvor podataka IceCream je izmenjen.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Menja zapise koji imaju Quantity koja je veće od 175. Polje Quantity se inkrementalno povećava za 10, a nijedno drugo polje se ne menja. Izmenite zapise.

Izvor podataka IceCream je izmenjen.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Menja zapis iz izvora podataka. Svojstvo Quantity nije dato u zapisu o zameni, tako da će svojstvo biti prazno u rezultatu. Zameni zapis kada količina nije isporučena.

Izvor podataka IceCream je izmenjen.
UpdateIf( IceCream, true, { Quantity: 0 } ) Postavlja vrednost svojstva Quantity za sve zapise u izvoru podataka na 0. Postavite količinu za sve na 0.

Izvor podataka IceCream je izmenjen.

Korak po korak

  1. Uvozite ili kreirate kolekciju pod nazivom Inventar i prikazujete je u galeriji kao Prikaz podataka u galeriji.

  2. Nazovite galeriju ProductGallery.

  3. Dodajte klizač po imenu UnitsSold, i postavite njegovo svojstvo Max na ovaj izraz:
    ProductGallery.Selected.UnitsInStock

  4. Dodajte dugme i podesite njegovo svojstvo OnSelect prema ovoj formuli:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Pritisnite F5, izaberite proizvod u galeriji, odredite vrednost klizačem, a zatim izaberite dugme.

    Broj jedinica na skladištu za proizvod koji ste naveli smanjuje se za iznos koji ste naveli.