Share via


Funkciji Update in UpdateIf

Velja za: Aplikacije Canvas Aplikacije, ki temeljijo na modelu

Posodobi zapise v viru podatkov.

Description

Funkcija »Update«

S funkcijo Update lahko zamenjate celoten zapis v viru podatkov. Nasprotno pa funkciji UpdateIf in Patch spremenita eno ali več vrednosti v zapisu, ostale vrednosti pa pustita nedotaknjene.

Pri zbirki se mora ujemati celoten zapis. Zbirke omogočajo podvojene zapise, zato se lahko ujema več zapisov. Za posodobitev vseh kopij zapisa lahko uporabite argument RemoveFlags.All ; drugače se posodobi le ena kopija zapisa.

Če vir podatkov samodejno ustvari vrednost stolpca, je treba vrednost tega stolpca znova potrditi.

Funkcija »UpdateIf«

Uporabite funkcijo UpdateIf in spremenite eno ali več vrednosti v enem ali več zapisih, ki ustrezajo enemu ali več pogojem. Pogoj je lahko katera koli formula, ki vrne vrednost true ali false in se lahko sklicuje na stolpce vira podatkov po imenu. Funkcija ovrednoti pogoj za vsak zapis in spremeni vse zapise, pri katerih je rezultat true.

Če želite določiti spremembo, uporabite zapis spremembe, ki vsebuje nove vrednosti lastnosti. Če navedete ta zapis spremembe v vrstici z zavitimi oklepaji, se lahko formule lastnosti sklicujejo na lastnosti zapisa, ki se spreminja. To delovanje lahko uporabite za spreminjanje zapisov na podlagi formule.

Podobno kot pri funkciji UpdateIf, lahko uporabite tudi funkcijo Patch in spremenite določene stolpce zapisa, ne da bi to vplivalo na druge stolpce.

Funkciji Update in UpdateIf vrneta spremenjeni vir podatkov kot tabelo. V formuli za delovanje morate uporabiti eno od funkcij.

Pooblastitev

Pri uporabi z vir podatkov teh funkcij ni mogoče delegirati. Pridobljen bo samo prvi del vira podatkov, nato bo uporabljena funkcija. To morda ne predstavlja celotne zgodbe. Med avtorskim delom se lahko pojavi opozorilo, ki vas opomni na to omejitev.

Podpora za delegiranje (eksperimentalno)

Podpora za delegiranje za UpdateIf in RemoveIf je zdaj v poskusnem predogledu (privzeto IZKLOPLJENO) za vire podatkov, ki to podpirajo. Če vir podatkov ne podpira te funkcije, Power Apps zdaj pošlje poizvedbo strežniku in pridobi vse podatke, ki se ujemajo z izrazom filtra do največ 500, 2000 ali velikosti podatkovne strani. Nato bo te zapise posodobil in vsakega poslal nazaj na strežnik, da se posodobi.

Sintaksa

Posodobitev( Vir podatkov, Stari zapis, Nov zapis [, Odstrani zastavice.Vse ] )

  • DataSource – obvezno. Vir podatkov, ki vsebuje zapis, ki ga želite zamenjati.
  • OldRecord – obvezno. Zapis, ki bo zamenjan.
  • NewRecord – obvezno. Nadomestni zapis. To ni zapis spremembe. Zamenja se celoten zapis, manjkajoče lastnosti pa vsebujejo prazno vrednost.
  • RemoveFlags.All – Izbirno. V zbirki se lahko isti zapis prikaže večkrat. Podajte argument RemoveFlags.All , da posodobite vse kopije zapisa.

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

  • DataSource – obvezno. Vir podatkov, ki vsebuje zapis ali zapise, ki jih želite spremeniti.
  • Condition(s) – obvezno. Formula, ki vrne vrednost true za zapis ali zapise, ki jih želite spremeniti. V formuli lahko uporabite imena stolpcev vira podatkov DataSource.
  • ChangeRecord(s) – obvezno. Pri vsakem ustreznem pogoju je to zapis sprememb z novimi vrednostmi lastnosti, ki se uporabijo za zapise vira podatkov DataSource, ki izpolnjujejo pogoj. Če navedete zapis v vrstici z zavitimi oklepaji, lahko vrednosti lastnosti obstoječega zapisa uporabite v formulah lastnosti.

Primeri

V teh primerih boste zamenjali ali spremenili zapise v viru podatkov z imenom IceCream, ki se začne s podatki v tej tabeli:

Primer Icecream.

Formula Opis Rezultat
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Zamenja zapis iz vira podatkov. Zamenjajte zapis.

Vir podatkov IceCream je bil spremenjen.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Spremeni zapise, pri katerih je količina večja od 175. Polje Quantity se povečuje za 10 in nobena druga polja niso spremenjena. Spremenite zapise.

Vir podatkov IceCream je bil spremenjen.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Zamenja zapis iz vira podatkov. Lastnost Quantity ni bila navedena v nadomestnem zapisu, zato bo imela ta lastnost prazno vrednost v rezultatu. Zamenjajte zapis, ko količina ni dobavljena.

Vir podatkov IceCream je bil spremenjen.
UpdateIf( IceCream, true, { Quantity: 0 } ) Nastavi vrednost lastnosti Quantity za vse zapise v viru podatkov na 0. Nastavite količino za vse na 0.

Vir podatkov IceCream je bil spremenjen.

Korak za korakom

  1. Uvozite ali ustvarite zbirko Zaloga in jo prikažete v galerij, kot je opisano v temi Prikaz podatkov v galeriji.

  2. Galerijo poimenujte ProductGallery.

  3. Dodajte drsnik UnitsSold in nastavite njegovo lastnost Max na ta izraz:
    ProductGallery.Selected.UnitsInStock

  4. Dodajte gumb in nastavite njegovo lastnost OnSelect na to formulo:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Pritisnite F5, izberite izdelek v galeriji, z drsnikom določite vrednost in nato izberite gumb.

    Število enot na zalogi za izdelek, ki ste ga določili, se zmanjša za količino, ki ste jo določili.