Funkce Update a UpdateIf v Power Apps
Aktualizují záznamy ve zdroji dat.
Popis
Funkce Update
Pomocí funkce Update můžete nahradit celý záznam ve zdroji dat. Naproti tomu funkce UpdateIf a Patch mění jednu nebo více hodnot v záznamu a ostatní hodnoty nechávají být.
U kolekce se musí být shodovat celý záznam. Kolekce umožňují duplicitní záznamy, shodovat se proto může více záznamů. Pomocí argumentu All můžete aktualizovat všechny kopie záznamu; v opačném případě se aktualizuje jenom jedna kopie záznamu.
Pokud zdroj dat generuje hodnotu sloupce automaticky, musí být hodnota tohoto sloupce znovu potvrzena.
Funkce UpdateIf
Pomocí funkce UpdateIf můžete změnit jednu nebo více hodnot v jednom nebo více záznamech, které splňují jednu nebo více podmínek. Podmínka může být libovolný vzorec, jehož výsledkem je true nebo false, a může pomocí názvu odkazovat na sloupce zdroje dat. Funkce vyhodnocuje podmínku pro každý záznam a změní každý záznam, pro který má výsledek hodnotu true.
Ke specifikaci změny použijte záznam změny, který obsahuje novou hodnotu vlastnosti. Pokud tento záznam změny zadáte jako vložený se složenými závorkami, můžou na vlastnosti záznamu, který se má změnit, odkazovat vzorce s vlastnostmi. Toto chování se dá využít ke změně záznamů na základě vzorce.
Ke změně konkrétních sloupců záznamu bez vlivu na ostatní sloupce můžete kromě funkce UpdateIf použít také funkci Patch.
Funkce Update i UpdateIf vracejí změněný zdroj dat jako tabulku. Tyto funkce se musí použít ve vzorci chování.
Delegování
[!INCLUDE [delegation-no]../../includes/delegation-no.md)]
Syntaxe
Update( ZdrojDat; StarýZáznam; NovýZáznam [; All ] )
- ZdrojDat – povinné. Zdroj dat obsahující záznam, který chcete nahradit.
- StarýZáznam – povinné. Záznam, který se má nahradit.
- NovýZáznam – povinné. Náhradní záznam. Není to záznam změny. Nahradí se celý záznam, chybějící vlastnosti budou obsahovat prázdnou hodnotu.
- All – volitelné. V kolekci se stejný záznam může vyskytovat vícekrát. Uvedením argumentu All aktualizujete všechny kopie záznamu.
UpdateIf( ZdrojDat; Podmínka1; ZáznamZměny1 [; Podmínka2; ZáznamZměny2; ... ] )
- ZdrojDat – povinné. Zdroj dat obsahující záznam nebo záznamy, které chcete změnit.
- Podmínky – povinné. Vzorec s hodnotou true pro záznam nebo záznamy, které chcete změnit. Ve vzorci můžete použít názvy sloupců ze ZdrojeDat.
- ZáznamZměny – povinné. Pro každou odpovídající podmínku – záznam změny s novou hodnotou vlastnosti, která se má použít u záznamů ZdrojeDat splňujících tuto podmínku. Pokud tento záznam změny zadáte jako vložený pomocí složených závorek, můžou být hodnoty vlastností existujícího záznamu použité ve vzorcích s vlastnostmi.
Příklady
V těchto příkladech budete nahrazovat nebo měnit záznamy ve zdroji dat, který má název IceCream a na začátku má data uvedená v této tabulce:

| Vzorec | Popis | Výsledek |
|---|---|---|
| Update( IceCream, First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } ) |
Nahradí záznam ve zdroji dat. | ![]() Zdroj dat IceCream byl změněn. |
| UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) | Změní záznamy, jejichž hodnota v poli Quantity je větší než 175. Pole Quantity se zvětší o 10, ale žádná další pole se nezmění. | ![]() Zdroj dat IceCream byl změněn. |
| Update( IceCream, First( Filter( IceCream, Flavor="Strawberry" ) ), { ID: 3, Flavor: "Strawberry Swirl"} ) |
Nahradí záznam ve zdroji dat. Vlastnost Quantity nebyla v náhradním záznamu zadána, takže tato vlastnost bude ve výsledku obsahovat prázdnou hodnotu. | ![]() Zdroj dat IceCream byl změněn. |
| UpdateIf( IceCream, true, { Quantity: 0 } ) | Nastaví hodnotu vlastnosti Quantity ve všech záznamech ve zdroji dat na 0. | ![]() Zdroj dat IceCream byl změněn. |
Podrobný postup
Naimportujte nebo vytvořte kolekci s názvem Inventory a podle popisu v tématu Zobrazení dat v galerii ji zobrazte v galerii.
Dejte galerii název ProductGallery.
Přidejte posuvník s názvem UnitsSold a nastavte jeho vlastnost Max na tento výraz:
ProductGallery.Selected.UnitsInStockPřidejte tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
UpdateIf (Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})Stiskněte F5, vyberte některý produkt v galerii, určete hodnotu pomocí posuvníku a pak vyberte tlačítko.
Počet jednotek na skladě (UnitsInStock) pro zadaný produkt se zmenší o množství, které jste určili.
Poznámka
Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)
Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).
Váš názor
Odeslat a zobrazit názory pro



