Funktsioonid Update ja UpdateIf

Kehtib: lõuendirakendused Mudelipõhised rakendused

Värskendab kirjeidandmeallikas.

Kirjeldus

Funktsioon Update

Kasutage funktsiooni Update, et asendada andmeallikas terve kirje. Võrdluseks, UpdateIf ja funktsioonid Partii muudavad kirje ühe või mitu väärtust, ülejäänud väärtuseid mitte puutudes.

Kogu puhul peab kogu kirje ühtima. Kogud lubavad duplikaate, seega võivad mitu kirjet ühtida. Saate kasutada argumenti RemoveFlags.All kirje kõigi koopiate värskendamiseks; vastasel juhul värskendatakse ainult ühte kirje koopiat.

Kui andmeallikas loob veeru väärtuse automaatselt, tuleb selle veeru väärtus uuesti kinnitada.

Funktsioon UpdateIf

Kasutage funktsiooni UpdateIf, et muuta ühe või mitme sellise väärtusega kirjet, mis vastavad ühele või mitmele tingimusele. Tingimus võib olla mis tahes valem, mille tulemuseks on true või false, ja mis võib viidata andmeallika veergudele nime järgi. Funktsioon hindab iga kirje tingimust ja muudab iga kirjet, mille väärtus on true.

Muudatuse määramiseks kasutage muudatuste kirjet, mis sisaldab uusi atribuudi väärtusi. Kui esitate selle muudatuse kirje tekstisiseselt looksulgudes, võivad atribuutide valemid viidatud kirjele atribuute lisada. Selle käitumise abil saate muuta valemil põhinevaid kirjeid.

Sarnaselt funktsioonile UpdateIf saate kasutada ka funktsiooni Partii, et muuta kirje kindlaid veerge ilma teisi veerge mõjutamata.

Nii funktsioon Update kui ka UpdateIf tagastavad muudetud andmeallika tabelina. Peate käitumise valemis ühte neist funktsioonidest kasutama.

Delegeerimine

Kui neid funktsioone kasutatakse koos andmeallikas, ei saa neid delegeerida. Tuuakse ainult andmeallika esimene osa ja seejärel rakendatakse funktsioon. See ei pruugi esindada kogu lugu. Loomise ajal võidakse kuvada hoiatus, mis tuletab teile seda piirangut meelde.

Delegatsioonide toetus (eksperimentaalne)

Funktsioonide UpdateIf ja RemoveIf delegeerimise tugi on nüüd seda toetavate andmeallikate eksperimentaalses eelvaates (vaikimisi VÄLJAS). Kui andmeallikas seda funktsiooni ei toeta, saadab nüüd serverile päringu ja toob kõik andmed, mis vastavad filtriavaldisele kuni maksimaalse 500, Power Apps 2000 või andmelehe suuruseni. Seejärel värskendab see neid kirjeid ja saadab kõik tagasi värskendatavasse serverisse.

Süntaks

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

  • DataSource – Nõutav. Andmeallikas, mis sisaldab kirjet, mida soovite asendada.
  • OldRecord – Nõutav. Asendatav kirje.
  • NewRecord – Nõutav. Asenduskirje. See ei ole muudatuste kirje. Kogu kirje asendatakse ja puuduvad atribuudid sisaldavad väärtust blank.
  • RemoveFlags.All – valikuline. Kogumis võib sama kirjet kuvada mitu korda. Määrake argument RemoveFlags.All , et värskendada kirje kõiki koopiaid.

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

  • DataSource – Nõutav. Andmeallikas, mis sisaldab kirjet või kirjeid, mida soovite muuta.
  • Tingimus(ed) – Nõutav. Valem, mis hindab muudetava(te) kirje või kirjete väärtuseks true. Saate valemis kasutada väärtuses DataSource olevaid veergude nimesid.
  • ChangeRecord(s) - Nõutav. Iga vastava tingimuse korral muutke uue atribuudi väärtuste kirjet, et see kehtiks tingimuse täitmiseks kasutatava väärtuse DataSource kirjetele. ui esitate selle muudatuse kirje tekstisiseselt looksulgudes, saab olemasoleva kirje atribuudi väärtusi kasutada atribuutide valemis.

Näited

Nendes näidetes asendatakse või muudetakse kirjed andmeallikas, mille nimi on IceCream ja mis algab järgmise tabeli andmetega.

IceCream näide.

Valem Kirjeldus Tulemus
Värskendus( Jäätis,
Esimene( Filter( Jäätis, Maitse=„Šokolaad” ) ), { ID: 1, Maitse: „Piparmündi šokolaad”, Kogus:150 } )
Asendab kirje andmeallikas. Kirje asendamine.

Andmeallikat IceCream on muudetud.
UpdateIf( Jäätis, Kogus > 175, { Kogus: kogus + 10 } ) Muudab kirjed, mille väärtus Quantity on suurem kui 175. Välja Quantity väärtus on 10 ja muid välju ei muudeta. Kirjete muutmine.

Andmeallikat IceCream on muudetud.
Värskendus( Jäätis,
Esimene( filter( jäätis, maitse = „maasikas” ) )
{ ID: 3, matse: „Maasika keeris”} )
Asendab kirje andmeallikas. Atribuut Quantity ei ole asendatava kirjega kaasas, nii et atribuudi tulemuseks on väärtus blank. Kui kogust ei ole tarnitud, asendatakse kirje.

Andmeallikat IceCream on muudetud.
UpdateIf( jäätis, tõsi, { Kogus: 0 } ) Määrab andmeallika kõigi kirjete atribuudi Quantity väärtueks 0. Määrake kõigi jaoks koguseks 0.

Andmeallikat IceCream on muudetud.

Samm-sammult

  1. Importige või looge kogum nimega Varud ja kuvage see galeriis, nagu kirjeldatud jaotises Andmete kuvamine galeriis.

  2. Nimetage galerii ProductGallery.

  3. Lisage liugur nimega UnitsSold ja määrake sellele avaldisele atribuut Max.
    ProductGallery.Selected.UnitsInStock

  4. Lisage nupp ja määrake selle atribuudi OnSelect väärtus järgmisele valemile:
    UpdateIf(Varud, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Vajutage klahvi F5, valige galeriist toode, määrake liuguriga väärtus ja seejärel klõpsake nuppu.

    Teie määratud toote jaoks laos olevate ühikute arv väheneb teie määratud summa võrra.