Ažuriranje i UpdateIf funkcije
Odnosi se na: Canvas aplikacije Aplikacije zasnovane na modelu
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. Možete koristiti argument RemoveFlags.All da uskladite sve kopije zapisa; u suprotnom, samo jedna kopija zapisa je ažurirana.
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 izvorom podataka, ove funkcije se ne mogu delegirati. Samo prvi deo izvora podataka će biti preuzet, a zatim primenjena funkcija. Ovo možda ne predstavlja kompletnu priču. Upozorenje se može pojaviti u vreme autorizacije da vas podseti na ovo ograničenje.
Podrška delegacije
Samo neki izvori podataka podržavaju UpdateIf. Ako izvor podataka ne podržava ovu funkciju, Power Apps sada će poslati upit na server i preuzeti sve podatke koji odgovaraju izrazu filtera do maksimuma od 500 ili 2000, ili veličine stranice podataka. Zatim će ažurirati te zapise i poslati ih nazad na server da se ažurira.
Sintaksa
Ažuriranje ( DataSource, OldRecord, NevRecord [, 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 – Opciono. 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.
- Uslovi – 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.
- ChangeRecords - 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:
Formula | Opis | rezultat |
---|---|---|
Ažuriranje( Sladoled, First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } ) |
Menja zapis iz izvora podataka. | Izvor podataka IceCream je izmenjen. |
UpdateIf (IceCream, količina > 175, { količina: količina + 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. | Izvor podataka IceCream je izmenjen. |
Ažuriranje( Sladoled, 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. | Izvor podataka IceCream je izmenjen. |
UpdateIf (IceCream, true, { količina: 0 } ) | Postavlja vrednost svojstva Quantity za sve zapise u izvoru podataka na 0. | Izvor podataka IceCream je izmenjen. |
Korak po korak
Uvozite ili kreirate kolekciju pod nazivom Inventar i prikazujete je u galeriji kao Prikaz podataka u galeriji.
Nazovite galeriju ProductGallery.
Dodajte klizač po imenu UnitsSold, i postavite njegovo svojstvo Max na ovaj izraz:
ProductGallery.Selected.UnitsInStockDodajte dugme i podesite njegovo svojstvo OnSelect prema ovoj formuli:
UpdateIf (Inventar, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})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.