Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Vzťahuje sa na: Aplikácie
plátna Modelom riadené aplikácie
Aktualizuje záznamy v zdroji údajov.
Description
Funkcia Update
Update Pomocou funkcie môžete nahradiť celý záznam v zdroji údajov. Funkcie Patch oproti UpdateIf tomu menia jednu alebo viacero hodnôt v zázname a ostatné hodnoty nechávaujú byť.
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
UpdateIf Pomocou funkcie môžete upraviť 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.
Podobne ako UpdateIfmôžete funkciu Patch použiť aj na zmenu konkrétnych stĺpcov záznamu bez vplyvu na ostatné stĺpce.
UpdateIf A vráťte Update upravený zdroj údajov ako tabuľku. Tieto funkcie sa musia použiť vo vzorci správania.
Delegovanie
Tieto funkcie nedelegujú na zdroj údajov. Funkcie RemoveIf však UpdateIf fungujú lokálne pri simulácii delegovania až do limitu 500/2000 záznamov. Postupne prekročia limit počtu 500/2000 záznamov, ktoré nie sú delegované. Zhromažďujú sa záznamy, ktoré spĺňajú podmienku If . Vo všeobecnosti sa maximálne 500/2000 záznamov zhromažďuje samostatne a potom sa upraví podľa spustenia. Ak je však existujúca lokálna vyrovnávacia pamäť údajov veľká, môže sa aktualizovať viac záznamov, pretože funkcia môže mať prístup k viacerým záznamom na vyhodnotenie. Načíta sa iba počiatočná časť zdroja údajov a potom sa použije funkcia. Nemusí to predstavovať úplný obrázok. Počas vytváranie obsahu sa môže zobraziť upozornenie, ktoré vás na toto obmedzenie upozorní.
Syntax
Update(DataSource_, OldRecord, NewRecord [, 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 a chýbajúce vlastnosti obsahujú 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ť.
- Conditions – 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. V prípade, že sa odovzdajú viaceré podmienky , použije sa len záznam ChangeRecord súvisiaci s prvou podmienkou , ktorá sa vyhodnotí ako true .
- ChangeRecords – 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 | Description | Výsledok |
|---|---|---|
|
Update( Zmrzlina, LookUp( 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( Zmrzlina, LookUp( 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
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.
Dajte galérii názov ProductGallery.
Pridajte jazdec s názvom UnitsSold a nastavte jeho vlastnosť Max na tento výraz:
ProductGallery.Selected.UnitsInStockPridajte tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:
UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})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.