Dijeli putem


Updatei funkcije UpdateIf

Odnosi se na: Aplikacije platna – aplikacije utemeljene na modelu

Ažurira zapise u nekom izvoru podataka.

Opis

Update funkcija

Pomoću funkcije Update zamijenite cijeli zapis u izvoru podataka. Za razliku od toga UpdateIf , funkcije i zakrpe mijenjaju jednu ili više vrijednosti u zapisu, pa ostale vrijednosti nisu 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 RemoveFlags.All da biste ažurirali sve kopije zapisa, a u suprotnom se ažurira samo jedna kopija zapisa.

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

UpdateIf funkcija

Pomoću funkcije UpdateIf izmijenite 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 UpdateIfPatch možete koristiti i da biste promijenili određene stupce zapisa bez utjecaja na druge stupce.

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

Delegacija

Te funkcije ne delegirati izvoru podataka. No i UpdateIfUkloniAko radite lokalno da biste simulirali delegiranje do ograničenja od 500/2000 zapisa. Oni progresivno smanjuju zapise izvan ograničenja ne delegiranja od 500/2000 zapisa. Prikupljaju se zapisi koji zadovoljavaju uvjet If. Obično se najviše 500/2000 zapisa prikuplja zasebno, a zatim se mijenja po izvršenju. Međutim, više zapisa može se ažurirati ako je postojeća lokalna predmemorija podataka velika jer funkcija možda ima pristup više zapisa za procjenu. Dohvatiti će se samo početni dio izvora podataka, a zatim će se primijeniti funkcija. To možda ne predstavlja cijelu sliku. Tijekom stvaranja može se pojaviti upozorenje koje će vas podsjetiti na to ograničenje.

Sintaksa

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

  • Izvor podataka– obavezno. Izvor podataka koji sadrži zapis koji želite zamijeniti.
  • OldRecord – Obavezno. Zapis koji treba zamijeniti.
  • NewRecord – Obavezno. Zamjenski zapis. Ovo nije zapis promjene. Cijeli će se zapis zamijeniti, a svojstva koja nedostaju sadrže praznu vrijednost.
  • RemoveFlags.All – Nije obavezno. U nekoj zbirci se isti zapis može pojaviti više puta. Navedite argument RemoveFlags.All da biste ažurirali sve kopije zapisa.

UpdateIf(DataSource_, Uvjet1, PromijeniZapis1 [, Uvjet2, PromijeniZapis2, ... ] )

  • Izvor podataka– obavezno. Izvor podataka koji sadrži zapis ili zapise koje želite izmijeniti.
  • Uvjeti – obavezno. Formula koja daje rezultat true za zapis ili zapise koje želite izmijeniti. Možete koristiti nazive stupaca iz DataSource u toj formuli. U slučaju da je prošlo više uvjeta, primjenjuje se samo ChangeRecord povezan s prvim uvjetom za koji se procjenjuje da je true.
  • ChangeRecords - Obavezno. 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,
LookUp( IceCream, Flavor="Čokolada" ), { ID: 1, Okus: "Čokolada mente", Količina:150 } )
Zamjenjuje zapis iz tog izvora podataka. Zamijenite zapis.

Izvor podataka IceCream također je izmijenjen.
UpdateIf( IceCream, Količina > 175, { Količina: Količina + 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. Izmjena zapisa.

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

Izvor podataka IceCream također je izmijenjen.
UpdateIf( IceCream, true, { Količina: 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(Inventar, NazivProizvoda = 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.