Jagamisviis:


Update ja UpdateIf funktsioonid

Kehtib järgmise kohta: Lõuendirakendused Mudelipõhised rakendused

Värskendab kirjeidandmeallikas.

Kirjeldus

Update funktsioon

Kasutage seda Update funktsiooni andmeallika terve kirje asendamiseks. Seevastu UpdateIf ja paigafunktsioonid muudavad kirje ühte või mitut väärtust, jättes ülejäänud väärtused samaks.

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.

UpdateIf funktsioon

Selle UpdateIf funktsiooni abil saate muuta ühe või mitme kirje ühte või mitut väärtust, 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 funktsiooniga UpdateIfPatch saate muuta ka kirje kindlaid veerge, mõjutamata muid veerge.

Mõlemad Update ja UpdateIf tagastavad muudetud andmeallika tabelina. Peate käitumise valemis ühte neist funktsioonidest kasutama.

Delegeerimine

Need funktsioonid ei delegeeri andmeallikat. UpdateIf Siiski ja RemoveIf töötavad kohalikult, et simuleerida delegeerimist kuni 500/2000 kirjeni. Need vähendavad järk-järgult kirjeid, mis ületavad delegeerimata kirjete piirmäära 500/2000. Kogutakse kirjeid , mis vastavad if-tingimusele. Üldiselt kogutakse maksimaalselt 500/2000 kirjet eraldi ja seejärel muudetakse neid iga täitmise kohta. Siiski saab värskendada rohkem kirjeid, kui olemasolev kohaliku andmevahemälu on suur, kuna funktsioonil võib olla hindamiseks juurdepääs rohkematele kirjetele. Tuuakse ainult andmeallika algne osa ja seejärel rakendatakse funktsioon. See ei pruugi esindada täielikku pilti. Selle piirangu meelde tuletamiseks võidakse sisuloome ajal kuvada hoiatus.

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 tühja.
  • 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.
  • Tingimused – nõutav. Valem, mis hindab muudetava(te) kirje või kirjete väärtuseks true. Saate valemis kasutada väärtuses DataSource olevaid veergude nimesid. Kui edastatakse mitu tingimust, rakendatakse ainult esimese tingimusega seotud muutuste_kirje, mille väärtus on tõene.
  • ChangeRecords - 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
Update( IceCream,
LookUp( IceCream, Flavor="Chocolate" ), { ID: 1, maitse: "Piparmündi šokolaad", Kogus:150 } )
Asendab kirje andmeallikas. Kirje asendamine.

Andmeallikat IceCream on muudetud.
UpdateIf( IceCream, 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.
Update( IceCream,
LookUp( IceCream, Flavor="Strawberry" ),
{ 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( IceCream, true, { Quantity: 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.