Update- ja UpdateIf-funktio
Koskee seuraavia: 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.
Määritystuki (kokeellinen)
Funktioiden UpdateIf ja RemoveIf määritystuki on nyt kokeellisessa esiversiossa (oletusarvoisesti pois käytöstä) sellaisten tietolähteiden osalta, jotka sitä tukevat. 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 ])
- Tietolähde – 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(Tietolähde,Ehto1,ChangeRecord1 [, Ehto2,ChangeRecord2 , ... ] )
- Tietolähde – Pakollinen. Tietolähde, joka sisältää muokattavan tietueen tai tietueet.
- Ehdot – Pakollinen. Kaava, joka palauttaa tuloksen tosi muokattavalle tietueelle tai tietueille. Voit käyttää DataSource-sarakkeiden nimiä kaavassa.
- ChangeRecords - 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:
Kaava | Kuvaus | Tulos |
---|---|---|
Päivitys( Jäätelö, First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } ) |
Korvaa tietolähteen tietueen. | IceCream-tietolähdettä on muokattu. |
UpdateIf( Jäätelö, Määrä > 175, { Määrä: Määrä + 10 } ) | Muokkaa tietueita, joiden Quantity on suurempi kuin 175. Quantity-kentän arvoon lisätään 10. Muita kenttiä ei muokata. | IceCream-tietolähdettä on muokattu. |
Päivitys( Jäätelö, 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ä. | IceCream-tietolähdettä on muokattu. |
UpdateIf( Jäätelö, tosi,Määrä { : 0 } ) | Määrittää tietolähteen jokaisen tietueen Quantity-ominaisuuden arvoksi 0. | IceCream-tietolähdettä on muokattu. |
Vaihe vaiheelta
Tuo tai luo kokoelma, jonka nimi on Luettelo, ja näytä se valikoimassa artikkelin Tietojen näyttäminen valikoimassa mukaan.
Anna valikoiman nimeksi ProductGallery.
Lisää liukusäädin, jonka nimi on UnitsSold, ja määritä sen Max-ominaisuudeksi tämä lauseke:
ProductGallery.Selected.UnitsInStockLisää painike ja määritä sen OnSelect-ominaisuudeksi seuraava kaava:
UpdateIf(Varasto, Tuotenimi = Tuotegalleria.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})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ä.