Funkcijos Update and UpdateIf

Taikoma: drobės programoms Modeliu pagrįstoms programoms

Atnaujina įrašus duomenų šaltinyje.

Aprašą

Atnaujinimo funkcija

Naudokite Update funkciją, kad pakeistumėte visą įrašą duomenų šaltinyje. Kita vertus, UpdateIf ir Patchfunkcijos modifikuoja vieną ar kelias įrašo vertes, nekeisdamos kitų verčių.

Rinkinyjevisas įrašas turi atitikti. Rinkiniuose gali būti įrašų kopijos, todėl keli duomenys gali atitikti. Galite naudoti argumentą RemoveFlags.All , kad atnaujintumėte visas įrašo kopijas; kitu atveju atnaujinama tik viena įrašo kopija.

Jei duomenų šaltinis automatiškai generuoja stulpelio vertę, stulpelio vertė turi būti iš naujo patvirtinta.

AtnaujintiJei funkcija

Naudokite UpdateIf funkciją, kad pakeistumėte vieną ar kelias vertes viename arba daugiau įrašuose, atitinkančių vieną ar daugiau sąlygų. Sąlyga gali būti formulė, kuri yra true arba false ir gali nurodyti duomenų šaltinio stulpelius pagal pavadinimą. Funkcija įvertina kiekvieno įrašo sąlygą ir modifikuoja bet kurį įrašą, kurio rezultatas yra true.

Norėdami nurodyti modifikavimą, naudokite keitimo įrašą, kuriame yra naujos ypatybių vertės. Jei pateikiate šį keitimo įrašą, įdėtą į riestinius skliaustuose, ypatybių formulės gali nurodyti modifikuojamo įrašo savybes. Galite pasinaudoti šiuo veikimu, kad pakeistumėte įrašus, remdamasi formule.

Panašai į UpdateIf taip pat galite naudoti Patchfunkciją, kad pakeistumėte konkrečius įrašo stulpelius.

Tiek Update, tiek ir Updatelf grąžina modifikuotą duomenų šaltinį kaip lentelę. Turite naudoti arba funkciją veikimo formulėje.

Perdavimas

Naudojant su duomenų šaltinis, šių funkcijų perduoti negalima. Bus gauta tik pirmoji duomenų šaltinio dalis, o tada bus taikoma funkcija. Tai gali neatspindėti visos istorijos. Kūrimo metu gali pasirodyti įspėjimas, primenantis apie šį apribojimą.

Delegacijos parama (eksperimentinė)

"UpdateIf" ir "RemoveIf" perdavimo palaikymas dabar yra eksperimentinėje peržiūroje (numatytoji išjungta) duomenų šaltiniams, kurie jį palaiko. Jei duomenų šaltinis nepalaiko šios funkcijos, dabar nusiųs užklausą į serverį ir nuskaitys visus duomenis, kurie atitinka filtro išraišką iki maksimumo 500, Power Apps 2000 arba duomenų puslapio dydžio. Tada jis atnaujins tuos įrašus ir išsiųs kiekvieną atgal į serverį, kad būtų atnaujintas.

Sintaksė

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

  • DataSource – Būtinas. Duomenų šaltinis, kuriame yra įrašas, kurį norite pakeisti.
  • OldRecord – Būtinas. Įrašas, kurį norite pakeisti.
  • NewRecord – Būtinas. Pakeitimo įrašas. Tai ne pakeitimo įrašas. Visas įrašas pakeičiamas, o trūkstamos ypatybės bus blank.
  • RemoveFlags.All – neprivaloma. Rinkinyje tas pats įrašas gali būti rodomas daugiau nei kartą. Nurodykite argumentą RemoveFlags.All , kad atnaujintumėte visas įrašo kopijas.

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

  • DataSource – Būtinas. Duomenų šaltinis, kuriame yra įrašas arba įrašai, kuriuos norite modifikuoti.
  • Condition(s) – Būtinas. Formulė, kuri įvertinama kaip true įrašui arba įrašams, kuriuos norite modifikuoti. Galite naudoti DataSource stulpelio pavadinimus formulėje.
  • ChangeRecord(s) - Būtinas. Kiekvienai atitinkamai sąlygai skirtas naujų ypatybių įrašas, taikytinas DataSource įrašams, atitinkantiems sąlygą. Jei įrašą įdėsite į riestinius skliaustus, esamo įrašo ypatybių vertės gali būti naudojamos ypatybių formulėse.

Pavyzdžiai

Šiuose pavyzdžiuose pakeisite ar modifikuosite IceCream duomenų šaltinio įrašus, kuris prasideda šiais duomenimis lentelėje:

Ledų pavyzdys.

Formulė Aprašymas Rezultatas
Naujinti( Ledai,
Pirmasis( Filtras( Ledai, Skonis="Šokoladiniai" ) ), { ID: 1, Skonis: "Mėtiniai šokoladiniai", Kiekis:150 } )
Pakeičia įrašą iš duomenų šaltinio. Pakeiskite įrašą.

IceCream duomenų šaltinis modifikuotas.
UpdateIf( Ledai, Kiekis > 175, { Kiekis: Kiekis + 10 } ) Pakeičia įrašus, turinčius Quantity, didesnę vertę nei 175. Quantitylaukas yra padidintas 10, o jokie kiti laukai nekeičiami. Modifikuokite įrašus.

IceCream duomenų šaltinis modifikuotas.
Naujinti( Ledai,
Pirmasis( Filtras( Ledai, Skonis="Braškiniai" ) ),
{ ID: 3, Skonis: "Braškiniai sūkūriniai"} )
Pakeičia įrašą iš duomenų šaltinio. Quantityypatybė nebuvo pateikta pakaitiniame įraše, todėl ypatybė bus blank rezultate. Pakeisti įrašą, kai kiekis nepateikiamas.

IceCream duomenų šaltinis modifikuotas.
UpdateIf( Ledai, teisinga, { Kiekis: 0 } ) Nustato Quantity ypatybės vertę į 0 visiems įrašams duomenų šaltinyje. Nustatykite visų kiekį į 0.

IceCream duomenų šaltinis modifikuotas.

Nuoseklūs veiksmai

  1. Importuokite arba kurkite rinkinį, pavadintą Inventory ir rodykite jį galerijoje kaip Rodyti duomenis galerijoje aprašyta.

  2. Pavadinkite galeriją ProductGallery.

  3. Pridėkite slankiklį, pavadintą UnitsSold, ir nustatykite jo Max ypatybę pagal šią išraišką:
    ProductGallery.Selected.UnitsInStock

  4. Įtraukite mygtuką ir nustatykite joOnSelect ypatybę pagal šią formulę:
    UpdateIf(Inventory, Produkto pavadinimas = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Paspauskite F5, pažymėkite produktą galerijoje, nurodykite vertę su slankikliu, tada pažymėkite mygtuką.

    Jūsų nurodyto produkto vienetų sandėlyje skaičius sumažėja jūsų nurodytu kiekiu.