Funkcie Update a UpdateIf

Vzťahuje sa na: aplikácie plátna aplikácie s podporou modelov

Aktualizuje záznamy v zdroji údajov.

Description

Funkcia Update

Použite funkciu Update na výmenu celého záznamu v zdroji údajov. V kontraste funkcie UpdateIf a Patch 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. Na aktualizáciu všetkých kópií záznamu môžete použiť argument RemoveFlags.All ; 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

Pri použití s ​​zdroj údajov tieto funkcie nemožno delegovať. Načíta sa iba prvá časť zdroja údajov a potom sa použije príslušná funkcia. Toto nemusí predstavovať úplný príbeh. V čase tvorby sa môže zobraziť varovanie, ktoré vám toto obmedzenie pripomenie.

Podpora delegácie (experimentálna)

Podpora delegovania pre UpdateIf a RemoveIf je teraz v experimentálnej ukážke (predvolene VYPNUTÉ) pre zdroje údajov, ktoré ju podporujú. Ak zdroj údajov nepodporuje túto funkciu, Power Apps teraz odošle dotaz na server a získa všetky údaje, ktoré zodpovedajú výrazu filtra až do maximálnej hodnoty 500, 2000 alebo veľkosti dátovej stránky. Potom tieto záznamy aktualizuje a každý odošle späť na server na aktualizáciu.

Syntax

Aktualizácia( Zdroj údajov, Starý záznam, Nový záznam [, RemoveFlags.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.
  • RemoveFlags.All – Voliteľné. V kolekcii sa rovnaký záznam môže vyskytovať viackrát. Ak chcete aktualizovať všetky kópie záznamu, zadajte argument RemoveFlags.All .

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

  • DataSource – povinné. Zdroj údajov obsahujúci záznam alebo záznamy, ktoré chcete zmeniť.
  • Condition1, Condition1, … – 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.
  • ChangeRecord1, ChangeRecord2, … – 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:

Príklad Zmrzlina.

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

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. Upravte záznamy.

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. Vymeňte záznam, keď nie je dodané množstvo.

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. Nastavte množstvo pre všetkých 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.