Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Gjelder for: Modelldrevne apper for lerretsapper
Oppdaterer poster i en datakilde.
Description
Update (funksjon)
Update Bruk funksjonen til å erstatte en hel post i en datakilde. Patch-funksjonene endrer derimot én UpdateIf eller flere verdier i en post, slik at de andre verdiene er alene.
Hvis du vil oppdatere en samling, må hele posten gi treff. Samlinger tillater dupliserte poster, slik at flere poster kan gi treff. Du kan bruke RemoveFlags.All-argumentet for å oppdatere alle kopiene av en post. Ellers oppdateres bare en kopi av posten.
Hvis datakilden genererer en kolonnes verdi automatisk, må verdien til denne kolonnen bekreftes.
UpdateIf (funksjon)
Bruk funksjonen til å endre én eller flere verdier i én UpdateIf eller flere poster som samsvarer med én eller flere betingelser. Betingelsen kan være enhver formel som gir sann eller usann som resultat og kan referere til kolonner i datakilden etter navn. Funksjonen evaluerer betingelsene for hver post og endrer alle poster hvor resultatet er sann.
Bruk en endringspost som inneholder nye egenskapsverdier, til å angi en endring. Hvis du angir denne endringsposten innebygd i klammeparenteser, kan egenskapsformlene referere til egenskaper til posten som blir endret. Du kan bruke denne virkemåten til å endre poster basert på en formel.
På samme måte kan du også bruke Patch-funksjonen til å endre bestemte kolonner i en post uten å UpdateIfpåvirke andre kolonner.
Både Update og UpdateIf returner den endrede datakilden som en tabell. Du må bruke en av funksjonene i en formel for virkemåte.
Delegering
Disse funksjonene delegerer ikke til en datakilde. UpdateIf RemoveIf fungerer imidlertid lokalt for å simulere delegering opp til en grense på 500/2000 poster. De bringer gradvis ned poster utover grensen for ikke-delegering på 500/2000 poster. Poster som oppfyller If-betingelsen , samles inn. Vanligvis samles maksimalt 500/2000 poster separat og endres deretter per kjøring. Flere poster kan imidlertid oppdateres hvis den eksisterende lokale datahurtigbufferen er stor, da funksjonen kan ha tilgang til flere poster for evaluering. Bare den første delen av datakilden hentes, og deretter brukes funksjonen. Dette representerer kanskje ikke hele bildet. En advarsel kan vises under redigering for å minne deg på denne begrensningen.
Syntaks
Update(DataSource_, OldRecord, NewRecord [, RemoveFlags.All ] )
- DataSource – obligatorisk. Datakilden som inneholder posten du vil erstatte.
- OldRecord – obligatorisk. Posten som du vil erstatte.
- NewRecord – obligatorisk. Posten som du vil erstatte den med. Dette er ikke en endringspost. Hele posten erstattes, og manglende egenskaper inneholder tomme.
- RemoveFlags.All – valgfritt. I en samling kan den samme posten forekomme mer enn én gang. Angi argumentet RemoveFlags.All for å oppdatere alle kopier av posten.
UpdateIf(DataSource_, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )
- DataSource – obligatorisk. Datakilden som inneholder posten eller postene som du vil endre.
- Betingelser – obligatorisk. En formel som gir resultatet sann for posten eller postene som du vil endre. Du kan bruke kolonnenavnene fra DataSource i formelen. I tilfelle flere betingelser sendes, brukes bare ChangeRecord som er relatert til den første betingelsen som evalueres til sann .
- ChangeRecord(s) – obligatorisk. Angi en endringspost med nye egenskapsverdier som skal anvendes på postene i DataSource som oppfyller hver tilhørende betingelse. Hvis du angir posten innebygd i klammeparenteser, kan du bruke egenskapsverdiene til den eksisterende posten i egenskapsformlene.
Eksempler
I disse eksemplene erstatter eller endrer du poster i en datakilde som heter IceCream og som starter med dataene i denne tabellen:
| Formel | Description | Resultat |
|---|---|---|
|
Update( IceCream, LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } ) |
Erstatter en post fra datakilden. |
Datakilden IceCream har blitt endret. |
| UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) | Endrer poster hvor Quantity er større enn 175. Quantity-feltet økes med 10, og ingen andre felter blir endret. |
Datakilden IceCream har blitt endret. |
|
Update( IceCream, LookUp( IceCream, Flavor="Strawberry" ), { ID: 3, Flavor: "Strawberry Swirl"} ) |
Erstatter en post fra datakilden. Egenskapen Quantity er ikke angitt i erstatningsposten. Denne egenskapen vil derfor være tom i resultatet. |
Datakilden IceCream har blitt endret. |
| UpdateIf( IceCream, true, { Quantity: 0 } ) | Angir verdien 0 for Quantity-egenskapen til alle postene i datakilden. |
Datakilden IceCream har blitt endret. |
Trinnvis
Importer eller opprett en samling med navnet Inventory, og vis den i et galleri, som beskrevet i Vis data i et galleri.
Gi galleriet navnet ProductGallery.
Legg til en glidebryter med navnet UnitsSold, og angi glidebryterens Max-egenskap som dette uttrykket:
ProductGallery.Selected.UnitsInStockLegg til en knapp, og sett knappens OnSelect-egenskap til denne formelen:
UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})Trykk på F5, velg et produkt i galleriet, angi en verdi med glidebryteren, og velg deretter knappen.
Antall enheter på lager for produktet du anga, reduseres med beløpet du anga.