Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Modelem řízené aplikace
plátna
Aktualizují záznamy ve zdroji dat.
Description
Update Funkce
Update Funkce slouží k nahrazení celého záznamu ve zdroji dat. Naproti tomu UpdateIf funkce a funkce Patch upravují jednu nebo více hodnot v záznamu a ostatní hodnoty ponechají samotné.
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 RemoveFlags.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.
UpdateIf Funkce
UpdateIf Pomocí funkce můžete upravit 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.
UpdateIfPodobně jako můžete funkci Patch použít také ke změně konkrétních sloupců záznamu, aniž by to mělo vliv na jiné sloupce.
Změněný Update zdroj dat a UpdateIf vrátit ho jako tabulku. Tyto funkce se musí použít ve vzorci chování.
Delegování
Tyto funkce nelegují na zdroj dat. UpdateIf Funkce RemoveIf ale místně simuluje delegování až do limitu 500/2000 záznamů. Postupně vyřaďují záznamy nad rámec limitu nelegování 500/2000 záznamů. Jsou shromažďovány záznamy, které splňují podmínku If . Obecně platí, že se shromažďuje maximálně 500/2000 záznamů samostatně a pak se mění podle provedení. Pokud je však existující místní mezipaměť dat velká, může být aktualizováno více záznamů, protože funkce může mít přístup k více záznamům pro vyhodnocení. Načte se pouze počáteční část zdroje dat a funkce se použije. Nemusí to představovat úplný obrázek. Během vytváření se může zobrazit upozornění, které vám připomene toto omezení.
Syntaxe
Update(DataSource_, StarýZáznam, NovýZáznam [, RemoveFlags.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. Celý záznam se nahradí a chybějící vlastnosti obsahují prázdné.
- RemoveFlags.All – volitelné. V kolekci se stejný záznam může vyskytovat vícekrát. Uvedením argumentu RemoveFlags.All aktualizujete všechny kopie záznamu.
UpdateIf(DataSource_, Podmínka1, ZměnitZáznam1 [, Podmínka2, ZměnitZáznam2, ... ] )
- 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. V případě předání více podmínek se použije pouze záznam ChangeRecord související s první podmínkou , která se vyhodnotí jako true .
- 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 | Description | Výsledek |
|---|---|---|
|
Update( IceCream, LookUp( 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, LookUp( 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.