Update-ja UpdateIf-Funktiot Power AppsissaUpdate and UpdateIf functions in Power Apps

Päivittää tietolähteentietueet.Updates records in a data source.

DescriptionDescription

Update-funktioUpdate function

Käytä Update-funktiota tietolähteen koko tietueen korvaamiseen.Use the Update function to replace an entire record in a data source. UpdateIf- ja Patch -funktiot muokkaavat yhtä tai useampaa tietueen arvoa muokkaamatta muita arvoja.In contrast, the UpdateIf and the Patch functions modify one or more values in a record, leaving the other values alone.

Kokoelmaa varten koko tietueen on oltava funktion mukainen.For a collection, the entire record must match. Kokoelmissa sallitaan tietueiden kaksoiskappaleet, joten useat tietueet voivat vastata.Collections allow duplicate records, so multiple records might match. Voit käyttää All-argumenttia tietueen kaikkien kopioiden päivittämiseen. Muuten vain yksi tietueen kopio päivitetään.You can use the All argument to update all copies of a record; otherwise, only one copy of the record is updated.

Jos tietolähde luo sarakkeen arvon automaattisesti, tämän sarakkeen arvo pitää vahvistaa uudelleen.If the data source generates a column's value automatically, the value of that column must be reaffirmed.

UpdateIf-funktioUpdateIf function

Käyttämällä UpdateIf-funktiota voit muokata yhtä tai useampaa ehtoa vastaavan yhden tai useamman tietueen yhtä tai useampaa arvoa.Use the UpdateIf function to modify one or more values in one or more records that match one or more conditions. Ehto voi olla mikä tahansa kaava, jonka tulos on tosi tai epätosi, ja se voi viitata tietolähteen sarakkeisiin nimen mukaan.The condition can be any formula that results in a true or false and can reference columns of the data source by name. Funktio arvioi jokaisen tietueen ehtoa ja muokkaa kaikkia tietueita, joiden tulos on tosi.The function evaluates the condition for each record and modifies any record for which the result is true.

Määritä muokkaus käyttämällä uudet ominaisuusarvot sisältävää muutostietuetta.To specify a modification, use a change record that contains new property values. Jos lisäät tämän muutostietueen sisäisesti kaarisulkeilla, ominaisuuskaavat voivat viitata muokattavan tietueen ominaisuuksiin.If you provide this change record inline with curly braces, property formulas can reference properties of the record that's being modified. Tämän toiminnan avulla voit muokata tietueita kaavan perusteella.You can use this behavior to modify records based on a formula.

Voit myös käyttääPatch -funktiota UpdateIf-funktion tavoin tietueen tiettyjen sarakkeiden muuttamiseen muita sarakkeita muuttamatta.Similar to UpdateIf, you can also use the Patch function to change specific columns of a record without affecting other columns.

Sekä Update että UpdateIf palauttavat muokatun tietolähteen taulukkona.Both Update and UpdateIf return the modified data source as a table. Käytä toista näistä funktioista toimintakaavassa.You must use either function in a behavior formula.

DelegointiDelegation

Näitä toimintoja ei voi delegoida tietolähdettä käytettäessä.When used with a data source, these functions can't be delegated. Vain tietolähteen ensimmäinen osa noudetaan ja sitten suoritetaan toiminto.Only the first portion of the data source will be retrieved and then the function applied. Tulos ei ehkä vastaa kokonaisuutta.The result may not represent the complete story. Laatimisvaiheessa saatetaan näyttää varoitus, joka muistuttaa tästä rajoituksesta ja kehottaa vaihtamaan delegoitaviin vaihtoehtoihin, jos mahdollista.A warning may appear at authoring time to remind you of this limitation and to suggest switching to delegable alternatives where possible. Lisätietoja on delegoinnin yleiskatsauksessa.For more information, see the delegation overview.

SyntaksiSyntax

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

  • DataSource – Pakollinen.DataSource – Required. Tietolähde, joka sisältää korvattavan tietueen.The data source that contains the record that you want to replace.
  • OldRecord – Pakollinen.OldRecord – Required. Korvattava tietue.The record to replace.
  • NewRecord – Pakollinen.NewRecord – Required. Korvaava tietue.The replacement record. Tämä ei ole muutostietue.This isn't a change record. Koko tietue korvataan, ja puuttuvat ominaisuudet sisältävät arvon tyhjä.The entire record is replaced, and missing properties will contain blank.
  • All – Valinnainen.All – Optional. Sama tietue voi näkyä kokoelmassa useamman kerran.In a collection, the same record may appear more than once. Määritä All-argumentti tietueen kaikkien kopioiden poistamiseksi.Specify the All argument to remove all copies of the record.

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

  • DataSource – Pakollinen.DataSource – Required. Tietolähde, joka sisältää muokattavan tietueen tai tietueet.The data source that contains the record or records that you want to modify.
  • Condition(s) – Pakollinen.Condition(s) – Required. Kaava, joka palauttaa tuloksen tosi muokattavalle tietueelle tai tietueille.A formula that evaluates to true for the record or records that you want to modify. Voit käyttää DataSource-sarakkeiden nimiä kaavassa.You can use column names of DataSource in the formula.
  • ChangeRecord(s) – Pakollinen.ChangeRecord(s) - Required. Muutostietue uusista ominaisuusarvoista jokaista vastaavaa ehtoa varten. Käytetään ehtoa vastaavan DataSourcen tietueissa.For each corresponding condition, a change record of new property values to apply to records of DataSource that satisfy the condition. Jos lisäät tietueen sisäisesti käyttämällä kaarisulkeita, olemassa olevan tietueen ominaisuusarvoja voidaan käyttää ominaisuuskaavoissa.If you provide the record inline using curly braces, property values of the existing record can be used in the property formulas.

EsimerkkejäExamples

Näissä esimerkeissä korvataan tai muokataan tietueita tietolähteessä, jonka nimi on IceCream ja joka alkaa seuraavan taulukon tiedoilla: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:

FormulaFormula DescriptionDescription TulosResult
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 } )
Korvaa tietolähteen tietueen.Replaces a record from the data source.

IceCream-tietolähdettä on muokattu.The IceCream data source has been modified.
UpdateIf( IceCream; Quantity > 175; { Quantity: Quantity + 10 } )UpdateIf( IceCream; Quantity > 175; { Quantity: Quantity + 10 } ) Muokkaa tietueita, joiden määrä on suurempi kuin 175.Modifies records that have a Quantity that is greater than 175. Quantity-kentän arvoon lisätään 10. Muita kenttiä ei muokata.The Quantity field is incremented by 10, and no other fields are modified.

IceCream-tietolähdettä on muokattu.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"} )
Korvaa tietolähteen tietueen.Replaces a record from the data source. Quantity-ominaisuutta ei ole lisätty korvaavaan tietueeseen, joten tämä ominaisuus on tuloksessa tyhjä.The Quantity property hasn't been supplied in the replacement record, so that property will be blank in the result.

IceCream-tietolähdettä on muokattu.The IceCream data source has been modified.
UpdateIf( IceCream; true; { Quantity: 0 } )UpdateIf( IceCream; true; { Quantity: 0 } ) Määrittää tietolähteen jokaisen tietueen Quantity-ominaisuuden arvoksi 0.Sets the value of the Quantity property for all records in the data source to 0.

IceCream-tietolähdettä on muokattu.The IceCream data source has been modified.

Ohjeet vaihe vaiheeltaStep by step

  1. Tuo tai luo kokoelma, jonka nimi on Luettelo, ja näytä se valikoimassa artikkelin Tietojen näyttäminen valikoimassa mukaan.Import or create a collection named Inventory, and show it in a gallery as Show data in a gallery describes.

  2. Anna valikoiman nimeksi Tuotevalikoima.Name the gallery ProductGallery.

  3. Lisää liukusäädin, jonka nimi on UnitsSold, ja määritä sen Max-ominaisuudeksi tämä lauseke:Add a slider named UnitsSold, and set its Max property to this expression:
    ProductGallery.Selected.UnitsInStockProductGallery.Selected.UnitsInStock

  4. Lisää painike ja määritä sen OnSelect -ominaisuudeksi tämä kaava: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. Paina F5-näppäintä, valitse tuote valikoimasta, määritä arvo liukusäätimellä ja valitse painike.Press F5, select a product in the gallery, specify a value with the slider, and then select the button.

    Määrittämäsi tuotteen varastossa olevien kappaleiden lukumäärästä vähennetään määrittämäsi määrä.The number of units in stock for the product you specified decreases by the amount that you specified.