Del via


Update og UpdateIf funksjoner

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:

Eksempel med IceCream.

Formel Description Resultat
Update( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Erstatter en post fra datakilden. Erstatt en oppføring.

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. Endre poster.

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. Erstatt post når antall ikke er angitt.

Datakilden IceCream har blitt endret.
UpdateIf( IceCream, true, { Quantity: 0 } ) Angir verdien 0 for Quantity-egenskapen til alle postene i datakilden. Sett antall for alle til 0.

Datakilden IceCream har blitt endret.

Trinnvis

  1. Importer eller opprett en samling med navnet Inventory, og vis den i et galleri, som beskrevet i Vis data i et galleri.

  2. Gi galleriet navnet ProductGallery.

  3. Legg til en glidebryter med navnet UnitsSold, og angi glidebryterens Max-egenskap som dette uttrykket:
    ProductGallery.Selected.UnitsInStock

  4. Legg til en knapp, og sett knappens OnSelect-egenskap til denne formelen:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. 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.