Funkcie Update a UpdateIf v službe PowerAppsUpdate and UpdateIf functions in PowerApps

Aktualizujú záznamy v zdroji údajov.Updates records in a data source.

PopisDescription

Funkcia UpdateUpdate function

Pomocou funkcie Update môžete nahradiť celý záznam v zdroji údajov.Use the Update function to replace an entire record in a data source. Funkcie UpdateIf a Patch oproti tomu menia jednu alebo viacero hodnôt v zázname a ostatné hodnoty nechávajú byť.In contrast, the UpdateIf and the Patch functions modify one or more values in a record, leaving the other values alone.

V prípade kolekcie sa musí zhodovať celý záznam.For a collection, the entire record must match. Kolekcie povoľujú duplicitné záznamy, zhodovať sa preto môže viacero záznamov.Collections allow duplicate records, so multiple records might match. 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.You can use the All argument to update all copies of a record; otherwise, only one copy of the record is updated.

Ak zdroj údajov generuje hodnotu stĺpca automaticky, musí byť hodnota tohto stĺpca znova potvrdená.If the data source generates a column's value automatically, the value of that column must be reaffirmed.

Funkcia UpdateIfUpdateIf function

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.Use the UpdateIf function to modify one or more values in one or more records that match one or more conditions. 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.The condition can be any formula that results in a true or false and can reference columns of the data source by name. Funkcia vyhodnocuje podmienku pre každý záznam a zmení každý záznam, pre ktorý má výsledok hodnotu true.The function evaluates the condition for each record and modifies any record for which the result is true.

Na špecifikáciu zmeny použite záznam zmeny, ktorý obsahuje nové hodnoty vlastnosti.To specify a modification, use a change record that contains new property values. 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.If you provide this change record inline with curly braces, property formulas can reference properties of the record that's being modified. Toto správanie je možné využiť na zmenu záznamov na základe vzorca.You can use this behavior to modify records based on a formula.

Na zmenu konkrétnych stĺpcov záznamu bez vplyvu na ostatné stĺpce môžete okrem funkcie UpdateIf použiť tiež funkciu Patch.Similar to UpdateIf, you can also use the Patch function to change specific columns of a record without affecting other columns.

Funkcie Update a UpdateIf vracajú zmenený zdroj údajov ako tabuľku.Both Update and UpdateIf return the modified data source as a table. Tieto funkcie sa musia použiť vo vzorci správania.You must use either function in a behavior formula.

DelegovanieDelegation

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 zobrazí modrá bodka, 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.

SyntaxSyntax

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

  • DataSource – povinné.DataSource – Required. Zdroj údajov obsahujúci záznam, ktorý chcete nahradiť.The data source that contains the record that you want to replace.
  • OldRecord – povinné.OldRecord – Required. Záznam, ktorý sa má nahradiť.The record to replace.
  • NewRecord – povinné.NewRecord – Required. Náhradný záznam.The replacement record. Nie je to záznam zmeny.This isn't a change record. Nahradí sa celý záznam, chýbajúce vlastnosti budú obsahovať prázdnu hodnotu.The entire record is replaced, and missing properties will contain blank.
  • All – voliteľné.All – Optional. V kolekcii sa rovnaký záznam môže vyskytovať viackrát.In a collection, the same record may appear more than once. Uvedením argumentu All odstránite všetky kópie záznamu.Specify the All argument to remove all copies of the record.

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

  • DataSource – povinné.DataSource – Required. Zdroj údajov obsahujúci záznam alebo záznamy, ktoré chcete zmeniť.The data source that contains the record or records that you want to modify.
  • Condition(s) – povinné.Condition(s) – Required. Vzorec s hodnotou true pre záznam alebo záznamy, ktoré chcete zmeniť.A formula that evaluates to true for the record or records that you want to modify. Vo vzorci môžete použiť názvy stĺpcov z poľa DataSource.You can use column names of DataSource in the formula.
  • ChangeRecord(s) – povinné.ChangeRecord(s) - Required. 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.For each corresponding condition, a change record of new property values to apply to records of DataSource that satisfy the condition. 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.If you provide the record inline using curly braces, property values of the existing record can be used in the property formulas.

PríkladyExamples

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:In these examples, you'll replace or modify records in a data source that's named IceCream and that starts with the data in this table:

VzorecFormula PopisDescription VýsledokResult
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Nahradí záznam v zdroji údajov.Replaces a record from the data source.

Zdroj údajov IceCream bol zmenený.The IceCream data source has been modified.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } )UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Zmení záznamy, ktorých hodnota v poli Quantity je väčšia ako 150.Modifies records that have a Quantity that is greater than 150. Pole Quantity sa zväčší o 10, ale žiadne ďalšie polia sa nezmenia.The Quantity field is incremented by 10, and no other fields are modified.

Zdroj údajov IceCream bol zmenený.The IceCream data source has been modified.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Nahradí záznam v zdroji údajov.Replaces a record from the data source. Vlastnosť Quantity nebola v náhradnom zázname zadaná, takže táto vlastnosť bude vo výsledku obsahovať prázdnu hodnotu.The Quantity property hasn't been supplied in the replacement record, so that property will be blank in the result.

Zdroj údajov IceCream bol zmenený.The IceCream data source has been modified.
UpdateIf( IceCream, true, { Quantity: 0 } )UpdateIf( IceCream, true, { Quantity: 0 } ) Nastaví hodnotu vlastnosti Quantity vo všetkých záznamoch v zdroji údajov na 0.Sets the value of the Quantity property for all records in the data source to 0.

Zdroj údajov Zmrzlina bol zmenený.The IceCream data source has been modified.

Podrobný postupStep by step

  1. Naimportujte alebo vytvorte kolekciu s názvom Inventory a podľa popisu v téme Zobrazenie údajov v galérii ju zobrazte v galérii.Import or create a collection named Inventory, and show it in a gallery as Show data in a gallery describes.

  2. Dajte galérii názov ProductGallery.Name the gallery ProductGallery.

  3. Pridajte jazdec s názvom UnitsSold a nastavte jeho vlastnosť Max na tento výraz:Add a slider named UnitsSold, and set its Max property to this expression:
    ProductGallery.Selected.UnitsInStockProductGallery.Selected.UnitsInStock

  4. Pridajte tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:Add a button, and set its OnSelect property to this formula:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})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 vyberte tlačidlo.Press F5, select a product in the gallery, specify a value with the slider, and then select the button.

    Počet jednotiek na sklade (UnitsInStock) pre zadaný produkt sa zmenší o množstvo, ktoré ste určili.The number of units in stock for the product you specified decreases by the amount that you specified.