Opetus
Moduuli
Author a basic formula that uses tables and records in a Power Apps canvas app - Training
Learn how to author a basic formula that uses tables and records in a Power Apps canvas app.
Tätä selainta ei enää tueta.
Päivitä Microsoft Edgeen, jotta voit hyödyntää uusimpia ominaisuuksia, suojauspäivityksiä ja teknistä tukea.
Huomautus
Microsoft Power Fx on pohjaan perustuvien sovellusten kaavakieli. Nämä artikkelit ovat keskeneräisiä, koska pohjaan perustuvista sovelluksista poimitaan kieli, integroidaan se muiden Microsoft Power Platform -tuotteiden kanssa ja määritetään käytettäväksi avoimen lähdekoodin tuotteena. Aloita kielen esittelyn Microsoft Power Fx:n yleiskatsaus.
Jos olet joskus käyttänyt jotakin toista ohjelmointityökalua, kuten Visual Basicia tai JavaScriptiä, ihmettelet ehkä, missä muuttujat ovat. Microsoft Power Fx on hieman erilainen ja edellyttää erilaista käyttötapaa. Kun kirjoitat kaavaa, kannattaa miettiä, mitä laskentataulukossa tehtäisiin.
Muissa työkaluissa olet ehkä eksplisiittisesti suorittanut laskutoimituksen ja tallentanut tuloksen muuttujaan. Power Fx ja Excel laskevat kuitenkin kaavat automaattisesti uudelleen syötetietojen muuttuessa, joten muuttujia ei yleensä tarvitse luoda ja päivittää. Noudattamalla tätä lähestymistapaa aina kun mahdollista, voit helpommin luoda, ymmärtää ja ylläpitää sovelluksia.
Joudut joissakin tapauksissa käyttämään muuttujia Power Fxissa, joka laajentaa Excelin mallia lisäämällä toimintakaavioita. Nämä kaavat suoritetaan esimerkiksi silloin, kun käyttäjä valitsee painikkeen. Toimintakaaviossa kannattaa usein määrittää muuttuja, jota käytetään muissa kaavoissa.
Yleensä kannattaa välttää muuttujien käyttämistä. Toisinaan kuitenkin vain muuttuja pystyy mahdollistamaan halutun ominaisuuden. Muuttujat luodaan ja tyypitetään implisiittisesti, kun ne näkyvät funktioissa, jotka määrittävät niiden arvot.
Muistellaan, miten Excel toimii. Solu voi sisältää arvon, kuten luvun tai merkkijonon, tai kaavan, joka perustuu muiden solujen arvoihin. Sen jälkeen, kun käyttäjä on lisännyt eri arvon soluun, Excel laskee automaattisesti uudestaan kaavat, jotka ovat riippuvaisia uudesta arvosta. Tätä varten ei tarvitse tehdä mitään ohjelmointia.
Seuraavassa esimerkissä soluun A3 on määritetty kaava A1+A2. Jos A1 tai A2 muuttuu, A3 lasketaan automaattisesti uudelleen muutosta vastaavaksi. Tämä toiminta ei edellytä koodausta kaavan ulkopuolella.
Excelissä ei ole muuttujia. Kaavan sisältävän solun arvo muuttuu siihen syötettyjen tietojen mukaan, mutta kaavan tulosta ei voi muistaa eikä tallentaa soluun tai minnekään muualle. Jos muutat solun arvoa, koko laskentataulukko saattaa muuttua, jolloin aiemmin lasketut arvot menetetään. Excel-käyttäjä voi kopioida ja liittää soluja, mutta tämä on käyttäjän manuaalisessa hallinnassa, eikä sitä ole mahdollista tehdä kaavoilla.
Power Fx:ssä luomasi logiikka toimii hyvin samalla tavalla kuin Excel. Sen sijaan, että päivität solut, voit lisätä ohjausobjekteja mihin tahansa näytön kohtaan ja nimetä ne kaavoissa käyttämistä varten.
Power Appsissa voi esimerkiksi replikoida Excelin toiminnan sovelluksessa lisäämällä Selite-ohjausobjekti, jonka nimi on Label1, ja kaksi Tekstisyöte-ohjausobjektit, joiden nimi on TextInput1 ja TextInput2. Jos sitten määrität Label1-ohjausobjektin Text-ominaisuudeksi TextInput1.Text + TextInput2.Text, se näyttää aina automaattisesti ohjausobjekteissa TextInput1 ja TextInput2 olevien numeroiden summan.
Huomaa, että kun Label1-ohjausobjekti on valittuna, sen Teksti-kaava näkyy kaavarivillä näytön yläreunassa. Tässä on kaava TextInput1.Text + TextInput2.Text. Tämä kaava luo riippuvuussuhteen näiden ohjausobjektien välille, samalla tavalla kuin riippuvuuksia luodaan Excel-työkirjan solujen välille. Muutetaan TextInput1-arvoa:
Label1-kaava on laskettu automaattisesti uudelleen, ja näemme uuden arvon.
Power Fxissa voidaan käyttää kaavoja määrittämään ohjausobjektin ensisijaisen arvon lisäksi myös ominaisuuksia, kuten muotoilun. Seuraavassa esimerkissä kaava nimen Väri-ominaisuudelle näyttää negatiiviset arvot automaattisesti punaisella. If-funktio näyttää tutulta Excelistä:
If( Value(Label1.Text) < 0, Color.Red, Color.Black )
Voit käyttää kaavoja moniin erilaisiin skenaarioihin:
Sovellusten tekemisellä kaavojen avulla on monia etuja:
Yleisesti ottaen, jos voit saavuttaa tehosteen käyttämällä kaavaa, se kannattaa. Anna Power Fx -kaavamoduulin tehdä työt puolestasi.
Muutetaan yksinkertainen lisäystoiminto siten, että se toimii kuin perinteinen laskin, joka näyttää juoksevan summan. Jos valitset Lisää-painikkeen, lisäät luvun juoksevaan summaan. Jos valitset Tyhjennä-painikkeen, palautat juoksevan summan nollaksi.
Näytä | Kuvaus |
---|---|
Kun sovellus käynnistyy, juokseva summa on 0. Punainen piste tarkoittaa käyttäjän sormea tekstinsyöttöruudussa, jossa käyttäjä kirjoittaa 77. |
|
Käyttäjä valitsee Lisää-painikkeen. | |
77 lisätään juoksevaan kokonaissummaan. Käyttäjä valitsee Lisää-painikkeen jälleen. |
|
77 on taas lisätty juoksevaan kokonaissummaan, jolloin tuloksena on 154. Käyttäjä valitsee Tyhjennä-painikkeen. |
|
Juoksevaksi kokonaissummaksi palautetaan 0. |
Laskurimme käyttää jotain, mikä puuttuu Excelistä: painiketta. Tässä sovelluksessa ei voi käyttää vain kaavoja juoksevan summan laskemiseen, koska sen arvo vaihtelee useiden käyttäjän valitsemien toimintojen mukaan. Juokseva summa on sen sijaan tallennettava ja päivitettävä manuaalisesti. Useimmat ohjelmointityökalut tallentavat nämä tiedot muuttujaan.
Joskus tarvitset muuttujan sovellukseen, jotta se toimisi haluamallasi tavalla. Tehtävä ei ole helppo:
Jotta voimme luoda laskimen, tarvitsemme muuttujan, joka sisältää juoksevan summan. Power Fx-muuttujat, joiden kanssa on helpointa toimia, ovat yleisiä muuttujia.
Näin yleiset muuttujat toimivat:
Rakennetaan laskuri uudelleen käyttämällä yleistä muuttujaa:
Lisää tekstisyötteen ohjausobjekti nimeltä TextInput1 ja kaksi painiketta nimeltä Button1 ja Button2.
Määritä Button1-painikkeen Teksti-ominaisuudeksi Lisää ja Button2-painikkeen Teksti-ominaisuudeksi Tyhjennä.
Jotta juokseva summa päivittyisi aina, kun käyttäjä valitsee Lisää-painikkeen, määritä sen OnSelect-ominaisuudeksi seuraava kaava:
Set( RunningTotal, RunningTotal + TextInput1.Text )
Pelkkä tämän kaavan olemassaolo määrittää RunningTotal:n yleiseksi muuttujaksi, jossa on numero, koska sillä on +-operaattori. Voit viitata RunningTotal:iin missä tahansa sovelluksen sisällä. Kun käyttäjä avaa tämän sovelluksen, RunningTotalsisältää alkuarvon, joka on tyhjä.
Kun käyttäjä valitsee Lisää-painikkeen ja Set, suoritetaan, RunningTotal-arvoksi määritetään RunningTotal + TextInput1.
Jotta juokseva summa määritettäisiin 0 aina, kun käyttäjä valitsee Tyhjennä-painikkeen, määritä sen OnSelect-ominaisuudeksi seuraava kaava:
Set( RunningTotal, 0 )
Lisää Selite-ohjausobjekti ja määritä sen Teksti-ominaisuudeksi RunningTotal.
Tämä kaava lasketaan automaattisesti uudelleen, ja se näyttää käyttäjälle RunningTotal-arvon sen muuttuessa sen mukaan, mitä painikkeita käyttäjä valitsee.
Esikatsele sovellusta, ja edellä kuvaamamme laskuri on valmis. Kirjoita numero tekstiruutuun ja paina Lisää-painiketta muutaman kerran. Kun olet valmis, palaa muokkausominaisuuteen Esc-näppäimellä.
Jos haluat nähdä yleisen muuttujan arvon, valitse Tiedosto-valikko ja sitten Muuttujat vasemmanpuoleisesta ruudusta.
Jos haluat näyttää kaikki paikat, joissa muuttuja on määritetty ja sitä käytetään, valitse se.
Power Fx sisältää kahdenlaisia muuttujia:
Muuttujan tyyppi | Käyttöalue | Description | Funktiot, jotka määrittävät |
---|---|---|---|
Yleiset muuttujat | Sovellus | Helpoin käyttää. Sisältää esimerkiksi luvun, tekstimerkkijonon, totuusarvon, tietueen tai taulukon, johon voidaan viitata missä tahansa sovelluksen kohdassa. | Joukko |
Kokoelmat | Sovellus | Sisältää taulukon, johon voidaan viitata mistä tahansa sovelluksen kohdasta. Sallii taulukon sisällön muokkaamisen sen sijaan, että se määritettäisiin kokonaisena. Voidaan tallentaa paikalliseen laitteeseen myöhempää käyttöä varten. | Kerätä ClearCollect |
Power Appsissa käytössä on kolmas muuttujatyyppi:
Muuttujan tyyppi | Laajuus | Kuvaus | Funktiot, jotka määrittävät |
---|---|---|---|
Kontekstimuuttujat | Näyttö | Sopii hyvin arvojen välittämiseen näyttöön, kuten parametrit toimintosarjassa muissa kielissä. Voidaan viitata vain yhdestä näytöstä. | UpdateContext Navigoida |
Kaikki muuttujat luodaan implisiittisesti, kun ne näkyvät funktiossa Set, UpdateContext, Navigate, Collect tai ClearCollect. Jos haluat määrittää muuttujan ja sen tyypin, sinun täytyy lisätä se johonkin näistä toiminnoista missä tahansa sovelluksessa. Mikään näistä toiminnoista ei luo muuttujia, ne vain täyttävät muuttujat arvoilla. Muuttujia ei koskaan ilmoiteta erikseen samalla tavalla kuin jossakin toisessa ohjelmointityökalussa, ja kaikki tyypitys on implisiittistä toimintaa.
Sinulla voi olla esimerkiksi painikeohjausobjekti, jonka OnSelect-kaava obn Set( X, 1 ). Tämän kaavan avulla määritetään X muuttujaksi, jonka tyyppi on numero. Voit käyttää X:ää kaavoissa numerona, ja muuttujan arvo on tyhjä, kun sovellus avataan, mutta ennen painikkeen valitsemista. Kun valitset-painikkeen, annat X:lle arvo 1.
Jos lisäsit toisen painikkeen ja määrität sen OnSelect-ominaisuudeksi Set(X, "Hello"), virhe ilmenee, koska tyyppi (tekstimerkkijono) ei vastaa edellisen Set-suorituksen tyyppiä (numero). Kaikkien muuttujan implisiittisten määritysten on oltava yhdenmukaisia tyypin suhteen. Kaikki tämä tapahtui jälleen siksi , että X mainittiin kaavoissa, ei siksi, että mitään näistä kaavoista olisi todellisuudessa suoritettu.
Voit poistaa muuttujan poistamalla kaikki Set-, UpdateContext-, Navigate-, Collect- ja ClearCollect-funktiot, jotka implisiittisesti määrittävät muuttujan. Jos näitä toimintoja ei ole, muuttujaa ei ole. Sinun täytyy myös poistaa viittaukset muuttujaan, koska ne aiheuttavat virheen.
Kaikki muuttujat säilytetään muistissa, kun sovellusta suoritetaan. Kun sovellus sulkeutuu, muuttujien sisältämät arvot menetetään.
Voit tallentaa muuttujan sisällön tietolähteessä käyttämällä Patch- tai Collect-funktioita. Voit myös tallentaa arvoja kokoelmiin paikallisessa laitteessa käyttämällä SaveData-toimintoa.
Kun käyttäjä avaa sovelluksen, kaikkien muuttujien alkuarvo on tyhjä.
Muuttujan arvo luetaan sen nimen avulla. Voit esimerkiksi määrittää muuttujan seuraavalla kaavalla:
Set( Radius, 12 )
Sen jälkeen voit käyttää sanaa Radius missä tahansa, missä voit käyttää numeroa, ja sen tilalle tulee 12:
Pi() * Power( Radius, 2 )
Jos annat kontekstimuuttujalle saman nimen kuin yleisellä muuttujalla tai kokoelmalla, kontekstimuuttuja on etusijalla. Voit kuitenkin edelleen viitata yleiseen muuttujaan tai kokoelmaan käyttämällä selvitysoperaattoria[@Radius].
Katsotaan seuraavaksi, miten laskin luodaan käyttäen kontekstimuuttujaa yleisen muuttujan sijasta.
Näin kontekstimuuttujat toimivat:
Rakennetaan laskuri uudelleen käyttämällä kontekstimuuttujaa:
Lisää tekstisyötteen ohjausobjekti nimeltä TextInput1 ja kaksi painiketta nimeltä Button1 ja Button2.
Määritä Button1-painikkeen Teksti-ominaisuudeksi Lisää ja Button2-painikkeen Teksti-ominaisuudeksi Tyhjennä.
Jotta juokseva summa päivittyisi aina, kun käyttäjä valitsee Lisää-painikkeen, määritä sen OnSelect-ominaisuudeksi seuraava kaava:
UpdateContext( { RunningTotal: RunningTotal + TextInput1.Text } )
Pelkkä tämän kaavan olemassaolo määrittää RunningTotal:n kontekstimuuttujaksi, jossa on numero, koska sillä on +-operaattori. Voit viitata RunningTotal:iin missä tahansa tässä näytössä. Kun käyttäjä avaa tämän sovelluksen, RunningTotalsisältää alkuarvon, joka on tyhjä.
Kun käyttäjä valitsee Lisää-painikkeen ja UpdateContext suoritetaan, RunningTotal-arvoksi määritetään RunningTotal + TextInput1.
Jotta juokseva summa määritettäisiin 0 aina, kun käyttäjä valitsee Tyhjennä-painikkeen, määritä sen OnSelect-ominaisuudeksi seuraava kaava:
UpdateContext( { RunningTotal: 0 } )
UpdateContext-funktiota käytetään kaavan UpdateContext( { RunningTotal: 0 } ) kanssa.
Lisää Selite-ohjausobjekti ja määritä sen Teksti-ominaisuudeksi RunningTotal.
Tämä kaava lasketaan automaattisesti uudelleen, ja se näyttää käyttäjälle RunningTotal-arvon sen muuttuessa sen mukaan, mitä painikkeita käyttäjä valitsee.
Esikatsele sovellusta, ja edellä kuvaamamme laskuri on valmis. Kirjoita numero tekstiruutuun ja paina Lisää-painiketta muutaman kerran. Kun olet valmis, palaa muokkausominaisuuteen Esc-näppäimellä.
Voit määrittää kontekstimuuttujan arvon siirtyessäsi näyttöön. Tästä on hyötyä välitettäessä kontekstia tai parametreja näytöstä toiseen. Tätä tekniikkaa voidaan esitellä lisäämällä näyttö, lisäämällä painike ja määrittämällä sen OnSelect-ominaisuudeksi tämä kaava:
Navigoi( Näyttö1, Ei mitään, { RunningTotal: -1000 } )
Pidä Alt-näppäintä painettuna samalla, kun valitset tämän painikkeen, niin näkyviin tulee Screen1 ja määritä kontekstimuuttujan RunningTotal arvoksi -1000.
Jos haluat nähdä kontekstimuuttujan arvon, valitse Tiedosto-valikko ja sitten Muuttujat vasemmanpuoleisesta ruudusta.
Jos haluat näyttää, missä kontekstimuuttuja määritetään ja missä sitä käytetään, valitse se.
Tutustutaan lopuksi lisäyslaskimen luontiin kokoelman avulla. Koska kokoelma sisältää taulukon, jota on helppo muokata, teemme tästä laskimesta sellaisen, että se säilyttää ”paperinauhan” kustakin annetusta arvosta.
Näin kokoelmat toimivat:
Luodaan seuraavaksi laskin uudelleen kokoelman avulla:
Lisää Tekstisyöte-ohjausobjekti TextInput1 ja kaksi painiketta Button1 ja Button2.
Määritä Button1-painikkeen Teksti-ominaisuudeksi Lisää ja Button2-painikkeen Teksti-ominaisuudeksi Tyhjennä.
Jotta juokseva summa päivittyisi aina, kun käyttäjä valitsee Lisää-painikkeen, määritä sen OnSelect-ominaisuudeksi seuraava kaava:
Collect( PaperTape, TextInput1.Text )
Pelkkä tämän kaavan olemassaolo määrittää PaperTape:n kokoelmaksi, joka sisältää yksisarakkeisen tekstimerkkijonotaulukon. Voit viitata PaperTape:en missä tahansa tämän sovelluksen sisällä. Kun käyttäjä avaa tämän sovelluksen, PaperTape on tyhjä taulukko.
Tämä kaava suoritetaan, se lisää uuden arvon kokoelman loppuun. Koska lisäämme yksittäisen arvon, Collect sijoittaa sen automaattisesti yhden sarakkeen taulukkoon, jossa on sarake nimeltä Value, jota käytämme myöhemmin.
Jotta paperinauha tyhjenee käyttäjän valitessa Tyhjennä-painikkeen, määritä sen OnSelect-ominaisuudeksi tämä kaava:
Tyhjennä( PaperTape )
Näytä juokseva summa lisäämällä nimi, ja määritä sen Teksti-ominaisuudeksi tämä kaava:
Summa( PaperTape, arvo )
Suorita laskin painamalla F5-näppäintä, mikä avaa esikatselun, lisää lukuja tekstisyötteen ohjausobjektiin ja valitse painikkeet.
Palaa oletustyötilaan painamalla Esc-näppäintä.
Näytä paperinauha lisäämällä Arvotaulukko-ohjausobjekti ja määritä sen Kohteet-ominaisuudeksi tämä kaava:
PaperTape
Valitse oikeanpuoleisesta ruudusta Muokkaa kenttiä ja valitse sitten Lisää kenttä, valitse Arvo-sarake ja valitse sitten Lisää, jotta kenttä näkyy.
Näytä kokoelman arvot valitsemalla Tiedosto-valikosta Kokoelmat.
Tallenna ja nouda kokoelma lisäämällä kaksi muuta painikeohjausobjektia ja määrittämällä niiden Text-ominaisuuksiksi Lataa ja Tallenna. Määritä Lataa-painikkeen OnSelect-ominaisuudeksi tämä kaava:
Tyhjennä( PaperTape ); LoadData( PaperTape, "StoredPaperTape", tosi)
Joudumme ensin tyhjentämään kokoelman, koska LoadData liittää tallennetut arvot kokoelman loppuun.
Määritä Tallenna-painikkeen OnSelect-ominaisuudeksi seuraava kaava:
SaveData (PaperTape, "StoredPaperTape")
Esikatsele uudelleen painamalla F5-näppäintä, kirjoita luvut tekstisyötteen ohjausobjektiin ja valitse painikkeet. Valitse Tallenna-painike. Sulje ja lataa sovellus uudelleen ja lataa kokoelma uudelleen valitsemalla Lataa-painike.
Opetus
Moduuli
Author a basic formula that uses tables and records in a Power Apps canvas app - Training
Learn how to author a basic formula that uses tables and records in a Power Apps canvas app.