Funkcie Update a UpdateIf v Power Apps

Aktualizuje záznamy v zdroji údajov.

Popis

Funkcia Update

Použite funkciu Update na výmenu celého záznamu v zdroji údajov. V kontraste funkcie UpdateIf a Záplata upravte jednu alebo viaceré hodnoty v zázname, pričom ostatné hodnoty ostanú samé.

V prípade kolekcie sa musí zhodovať celý záznam. Kolekcie povoľujú duplicitné záznamy, zhodovať sa preto môže viacero záznamov. Pomocou argumentu All môžete aktualizovať všetky kópie záznamu; v opačnom prípade sa aktualizuje iba jedna kópia záznamu.

Ak zdroj údajov generuje hodnotu stĺpca automaticky, musí byť hodnota tohto stĺpca znova potvrdená.

Funkcia UpdateIf

Pomocou funkcie UpdateIf môžete zmeniť jednu alebo viacero hodnôt v jednom alebo viacerých záznamoch, ktoré spĺňajú jednu alebo viacero podmienok. Podmienka môže byť ľubovoľný vzorec, ktorého výsledkom je true alebo false, a môže pomocou názvu odkazovať na stĺpce zdroja údajov. Funkcia vyhodnocuje podmienku pre každý záznam a zmení každý záznam, pre ktorý má výsledok hodnotu true.

Na špecifikáciu zmeny použite záznam zmeny, ktorý obsahuje nové hodnoty vlastnosti. Ak tento záznam zmeny zadáte ako vložený so zloženými zátvorkami, môžu na vlastnosti záznamu, ktorý sa má zmeniť, odkazovať vzorce s vlastnosťami. Toto správanie je možné využiť na zmenu záznamov na základe vzorca.

Na zmenu konkrétnych stĺpcov záznamu bez vplyvu na ostatné stĺpce môžete okrem funkcie UpdateIf použiť tiež funkciu Patch.

Funkcie Update a UpdateIf vracajú zmenený zdroj údajov ako tabuľku. Tieto funkcie sa musia použiť vo vzorci správania.

Delegovanie

Tieto funkcie nemožno delegovať, keď sa používajú so zdrojom údajov. Načíta sa iba prvá časť zdroja údajov a potom sa použije príslušná funkcia. Výsledok nemusí predstavovať úplný obsah. V čase vytvárania sa môže zobraziť upozornenie, ktoré vám pripomenie toto obmedzenie a navrhne vám prepnúť na alternatívy, ktoré možno delegovať (ak je to možné). Ďalšie informácie nájdete v prehľade delegovania.

Syntax

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

  • DataSource – povinné. Zdroj údajov obsahujúci záznam, ktorý chcete nahradiť.
  • OldRecord – povinné. Záznam, ktorý sa má nahradiť.
  • NewRecord – povinné. Náhradný záznam. Nie je to záznam zmeny. Nahradí sa celý záznam, chýbajúce vlastnosti budú obsahovať prázdnu hodnotu.
  • All – voliteľné. V kolekcii sa rovnaký záznam môže vyskytovať viackrát. Uvedením argumentu All odstránite všetky kópie záznamu.

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

  • DataSource – povinné. Zdroj údajov obsahujúci záznam alebo záznamy, ktoré chcete zmeniť.
  • Condition(s) – Povinné. Vzorec s hodnotou true pre záznam alebo záznamy, ktoré chcete zmeniť. Vo vzorci môžete použiť názvy stĺpcov z poľa DataSource.
  • ChangeRecord(s) – povinné. Pre každú zodpovedajúcu podmienku – záznam zmeny s novou hodnotou vlastnosti, ktorá sa má použiť pri záznamoch DataSource spĺňajúcich túto podmienku. Ak tento záznam zmeny zadáte ako vložený pomocou zložených zátvoriek, môžu byť hodnoty vlastností existujúceho záznamu použité vo vzorcoch s vlastnosťami.

Príklady

V týchto príkladoch budete nahradzovať alebo meniť záznamy v zdroji údajov, ktorý má názov IceCream a na začiatku má údaje uvedené v tejto tabuľke:

Vzorec Popis Výsledok
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Nahradí záznam v zdroji údajov.

Zdroj údajov IceCream bol zmenený.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Zmení záznamy, ktorých hodnota v poli Množstvo je väčšia ako 175. Pole Množstvo sa zväčší o 10, ale žiadne ďalšie polia sa nezmenia.

Zdroj údajov IceCream bol zmenený.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Nahradí záznam v zdroji údajov. Vlastnosť Množstvo nebola v náhradnom zázname zadaná, takže táto vlastnosť bude vo výsledku obsahovať prázdnu hodnotu.

Zdroj údajov IceCream bol zmenený.
UpdateIf( IceCream, true, { Quantity: 0 } ) Nastaví hodnotu vlastnosti Množstvo vo všetkých záznamoch v zdroji údajov na 0.

Zdroj údajov IceCream bol zmenený.

Podrobne

  1. Importujte alebo vytvorte kolekciu s názvom Inventár a podľa popisu v časti Zobrazenie údajov v galérii ju zobrazte v galérii.

  2. Dajte galérii názov ProductGallery.

  3. Pridajte jazdec s názvom UnitsSold a nastavte jeho vlastnosť Max na tento výraz:
    ProductGallery.Selected.UnitsInStock

  4. Pridajte tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Stlačte kláves F5, vyberte niektorý produkt v galérii, určte hodnotu pomocou jazdca a potom stlačte tlačidlo.

    Počet jednotiek na sklade (UnitsInStock) pre zadaný produkt sa zmenší o množstvo, ktoré ste určili.