Jaa


Update- ja UpdateIf-funktio

Soveltuu: Pohjaan perustuvat sovellukset Mallipohjaiset sovellukset

Päivittää tietolähteen tietueet.

Description

Update-funktio

Käytä Update-funktiota tietolähteen koko tietueen korvaamiseen. UpdateIf- ja Patch-funktiot muokkaavat yhtä tai useampaa tietueen arvoa muokkaamatta muita arvoja.

Kokoelmaa varten koko tietueen on oltava funktion mukainen. Kokoelmissa sallitaan tietueiden kaksoiskappaleet, joten useat tietueet voivat vastata. Voit käyttää RemoveFlags.All-argumenttia tietueen kaikkien kopioiden päivittämiseen. Muuten vain yksi tietueen kopio päivitetään.

Jos tietolähde luo sarakkeen arvon automaattisesti, tämän sarakkeen arvo pitää vahvistaa uudelleen.

UpdateIf-funktio

Käyttämällä UpdateIf-funktiota voit muokata yhtä tai useampaa ehtoa vastaavan yhden tai useamman tietueen yhtä tai useampaa arvoa. Ehto voi olla mikä tahansa kaava, jonka tulos on tosi tai epätosi, ja se voi viitata tietolähteen sarakkeisiin nimen mukaan. Funktio arvioi jokaisen tietueen ehtoa ja muokkaa kaikkia tietueita, joiden tulos on tosi.

Määritä muokkaus käyttämällä uudet ominaisuusarvot sisältävää muutostietuetta. Jos lisäät tämän muutostietueen sisäisesti kaarisulkeilla, ominaisuuskaavat voivat viitata muokattavan tietueen ominaisuuksiin. Tämän toiminnan avulla voit muokata tietueita kaavan perusteella.

Voit myös käyttää Patch-funktiota UpdateIf-funktion tavoin tietueen tiettyjen sarakkeiden muuttamiseen muita sarakkeita muuttamatta.

Sekä Update että UpdateIf palauttavat muokatun tietolähteen taulukkona. Käytä toista näistä funktioista toimintakaavassa.

Delegointi

Näitä toimintoja ei voi delegoida tietolähdettä käytettäessä. Vain tietolähteen ensimmäinen osa noudetaan ja sitten suoritetaan toiminto. Tämä ei ehkä vastaa kokonaisuutta. Tästä rajoituksesta saatetaan näyttää varoitus laatimisen aikana.

Delegoinnin tuki

Vain jotkin tietolähteet tukevat UpdateIf-toimintoa. Jos tietolähde ei tue tätä ominaisuutta, Power Apps lähettää nyt kyselyn palvelimeen ja noutaa kaikki suodatinlauseketta vastaavat tiedot, enintään 500, 2 000 tai tietosivun koon määrä. Sen jälkeen se päivittää nämä tietueet ja lähettää ne kaikki takaisin palvelimelle päivitettäväksi.

Syntaksi

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

  • DataSource – Pakollinen. Tietolähde, joka sisältää korvattavan tietueen.
  • OldRecord – Pakollinen. Korvattava tietue.
  • NewRecord – Pakollinen. Korvaava tietue. Tämä ei ole muutostietue. Koko tietue korvataan, ja puuttuvat ominaisuudet sisältävät arvon tyhjä.
  • RemoveFlags.All – valinnainen. Sama tietue voi näkyä kokoelmassa useamman kerran. Määritä RemoveFlags.All-argumentti päivittämään kaikki tietueen kopiot.

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

  • DataSource – Pakollinen. Tietolähde, joka sisältää muokattavan tietueen tai tietueet.
  • Condition(s) – Pakollinen. Kaava, joka palauttaa tuloksen tosi muokattavalle tietueelle tai tietueille. Voit käyttää DataSource-sarakkeiden nimiä kaavassa.
  • ChangeRecord(s) – Pakollinen. Muutostietue uusista ominaisuusarvoista jokaista vastaavaa ehtoa varten. Käytetään ehtoa vastaavan DataSourcen tietueissa. Jos lisäät tietueen sisäisesti käyttämällä kaarisulkeita, olemassa olevan tietueen ominaisuusarvoja voidaan käyttää ominaisuuskaavoissa.

Esimerkit

Näissä esimerkeissä korvataan tai muokataan tietueita tietolähteessä, jonka nimi on IceCream ja joka alkaa seuraavan taulukon tiedoilla:

IceCream-esimerkki.

Kaava Kuvaus Tulos
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Korvaa tietolähteen tietueen. Korvaa tietue.

IceCream-tietolähdettä on muokattu.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Muokkaa tietueita, joiden Quantity on suurempi kuin 175. Quantity-kentän arvoon lisätään 10. Muita kenttiä ei muokata. Tietueiden muokkaaminen.

IceCream-tietolähdettä on muokattu.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Korvaa tietolähteen tietueen. Quantity-ominaisuutta ei ole lisätty korvaavaan tietueeseen, joten tämä ominaisuus on tuloksessa tyhjä. Tietueen korvaaminen, kun määrää ei ole annettu.

IceCream-tietolähdettä on muokattu.
UpdateIf( IceCream, true, { Quantity: 0 } ) Määrittää tietolähteen jokaisen tietueen Quantity-ominaisuuden arvoksi 0. Aseta kaikkien määräksi 0.

IceCream-tietolähdettä on muokattu.

Vaihe vaiheelta

  1. Tuo tai luo kokoelma, jonka nimi on Luettelo, ja näytä se valikoimassa artikkelin Tietojen näyttäminen valikoimassa mukaan.

  2. Anna valikoiman nimeksi ProductGallery.

  3. Lisää liukusäädin, jonka nimi on UnitsSold, ja määritä sen Max-ominaisuudeksi tämä lauseke:
    ProductGallery.Selected.UnitsInStock

  4. Lisää painike ja määritä sen OnSelect-ominaisuudeksi seuraava kaava:
    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.

    Määrittämäsi tuotteen varastossa olevien kappaleiden lukumäärästä vähennetään määrittämäsi määrä.