Muutujate mõistmine lõuendirakendustes
Kui olete kasutanud mõnda muud programmeerimise tööriista (nt Visual Basic või JavaScript), võite küsida: Kus on muutujad? Power Apps on veidi teistsugune ja nõuab teistsugust lähenemist. Selle asemel, et püüelda lõuendirakendust ehitades muutuja poole, küsige endalt: Mida ma peaksin tegema Excelis?
Muudes tööriistades võisite teostada täpse arvutuse ja salvestada selle tulemuse muutujasse. Kuid Power Apps ja Excel arvutavad mõlemad valemid ümber, kui sisendi andmed muutuvad, seega pole teil tavaliselt vaja muutujaid luua ja värskendada. Kasutades võimaluse korral sellist lähenemist saate lihtsamini oma rakendust luua, mõista ja hallata.
Mõnel juhul peate Power Appsis kasutama muutujaid, mis laiendab Exceli mudelit, lisades käitumise valemeid. Need valemid käivitatakse näiteks siis, kui kasutaja valib nupu. Käitumise valemi raames on sageli kasulik määrata muutuja teistes valemites kasutamiseks.
Üldiselt hoiduge muutujate kasutamisest. Kuid vahel saab ainult muutuja soovitud kogemuse võimaldada. Muutujad luuakse ja sisestatakse kaudselt, kui need esinevad funktsioonides, mis määravad nende väärtused.
Exceli tõlkimine Power Appsi
Excel
Vaatame, kuidas Excel töötab. Lahter võib sisaldada väärtust (nt arvu või stringi) või valemit, mis põhineb teiste lahtrite väärtustel. Pärast seda, kui kasutaja sisestab lahtrisse teistsuguse väärtuse, arvutab Excel automaatselt ümber kõik valemid, mis sellest uuest väärtusest sõltuvad. Selle käitumise lubamiseks ei pea te programmeerima.
Järgmises näites on lahter A3 seatud valemile A1+A2. Kui A1 või A2 muutub, siis arvutatakse A3 automaatselt muudatuste kajastamiseks ümber. See käitumine ei vaja kodeerimist väljaspool seda valemit.
Excelis pole muutujaid. Selle lahtri väärtus, mis sisaldab valemit, muutub vastavalt selle sisendile, kuid pole võimalik tulemust meelde jätta ning seda ei saa talletada lahtris ega mujal. Kui muudate lahtri väärtust, võib kogu arvutustabel muutuda ja kõik varasemad arvutatud väärtused lähevad kaotsi. Exceli kasutaja saab lahtreid kopeerida ja kleepida, kuid see on kasutaja käsitsi juhtimise all ja seda ei saa teha valemitega.
Power Apps
Power Appsis loodud rakendused käituvad väga sarnaselt Excelile. Lahtrite värskendamise asemel saate juhtelemente lisada nii, et need oleksid ekraanil ja saaksite neile valemites kasutamiseks nime anda.
Näiteks saate rakendused reprodutseerida Exceli käitumist, lisades juhtelemendi Silt, nimega Silt1 ja kaks juhtelementi Tekstisisend, nimega TextInput1 ja TextInput2. Kui seejärel määrate Silt1 atribuudi Tekst väärtusele TextInput1 + TextInput2, kuvab see alati nende arvude summat, mida lahtrid TextInput1 ja TextInput2 sisaldavad automaatselt.
Pange tähele, et juhtelement Label1 on valitud, mis näitab selle valemit Tekst ekraani ülaosas olevas valemiribal. Siit leiame valemi TextInput1 + TextInput2. See valem loob sõltuvuse nende juhtelementide vahel, nagu ka sõltuvus luuakse Exceli töövihiku lahtrite vahel. Muudame lahtri TextInput1 väärtust.
Silt1 valem on automaatselt ümber arvutatud, kuvades uue väärtuse.
Rakenduses Power Apps saate kasutada valemeid, et määratleda mitte ainult juhtelemendi esmane väärtus, vaid ka atribuudid (nt vorming). Järgmises näites kuvab sildi atribuudi Värv valem automaatselt negatiivsed väärtused punases kirjas. Funktsioon IF peaks tunduma Excelist tuttavana:
If( Value(Label1.Text) < 0, Red, Black )
Valemeid saate kasutada mitmesuguste stsenaariumide jaoks.
- Kasutades oma seadme GPS-i, võib kaardi juhtelementi näidata teie praegust asukohta valemiga, mis kasutab väärtusi Location.Latitude ja Location.Longitude. Liikudes jälgib kaart teie asukohta automaatselt.
- Teised kasutajad saavad andmeallikaid värskendada. Näiteks võivad teised teie meeskonnaliikmed loendi üksusi värskendada. Andmeallikas värskendamisel arvutatakse kõik sõltuvad valemid automaatselt ümber, et need kajastaksid värskendatud andmeid. Näitega edasi minnes, võite seadistada galerii atribuudi Üksused valemile Filter( SharePointList ), mis kuvab automaatselt värskelt filtreeritud kirjete kogumit.
Eelised
Rakenduste loomiseks valemite kasutamisel on palju eeliseid.
- Kui teate Excelit, siis teate Power Appsi. Mudel ja valemi keel on samad.
- Kui olete kasutanud muid programmeerimise vahendeid, mõelge, kui palju koodi on nende näidete täitmiseks vaja. Rakenduses Visual Basic peate muudatuse sündmuse jaoks kirjutama sündmuseohjuri igasse tekstisisestuse juhtelementi. Nende kõigi arvutuste teostamise kood on ülearune ja võib sünkroonist välja tulle, või on teil vajadus kirjutada lihtne alamrutiin. Power Appsis saavutasite selle kõik ühe üherealise valemiga.
- Kui soovite aru kust Silt1 tekst pärit on, siis teate täpselt, kus otsida - atribuudi Tekst valemist. Selle juhtelemendi teksti ei saa muul viisil mõjutada. Traditsioonilises programmeerimise tööriistas võib mis tahes sündmuseohjur või allrutiin muuta sildi väärtust kõikjalt programmis. Nii on raske jälgida, millal ja kus muutujaid muudeti.
- Kui kasutaja muudab liuguri juhtelementi ja seejärel muudab meelt, saab ta liugurit tagasi algsele väärtusele muuta. Ja justkui miski poleks muutunud. rakendus näitab samu väärtusi, nagu see enne seda tegi. Eksperimenteerimisel ja küsimustel "mis siis, kui" pole tagajärgi, just naga ei ole ka Excelis.
Üldiselt, kui saate valemi abil efekti saavutada, on teil parem. Laske Power Appsi valemimootoril enda heaks tööd teha.
Tea, millal kasutada muutujaid
Muudame meie lihtset liitjat, et see toimiks nagu vanamoodne liitmise masin, jooksva summaga. Kui valite nupu Lisa, siis lisatakse number jooksvasse kogusummasse. Kui valite nupu Tühjenda, siis lähtestatakse jooksva summa nulli peale.
Kuvamine | Kirjeldus |
---|---|
Kui rakendus käivitub, on jooksev summa 0. Punane täpp tähistab kasutaja sõrme tekstisisendi väljal, kuhu kasutaja sisestab 77. |
|
Kasutaja valib nupu Liida. | |
Kogusummale lisatakse 77. Kasutaja valib taas nupu Liida. |
|
Kogusummale lisatakse taas 77 ja tulemuseks saadakse 154. Kasutaja valib nupu Kustuta. |
|
Kogusumma lähtestatakse väärtusele 0. |
Meie liitmismasin kasutab midagi sellist, mida Excelis ei eksisteeri: nuppu. Selles rakenduses ei saa jooksva kogusumma arvutamiseks kasutada ainult valemeid, kuna selle väärtus sõltub mitmest toimingust, mida kasutaja võtab. Selle asemel tuleb meie kogusumma salvestada ja värskendada käsitsi. Enamik programmeerimiskeeli salvestab sellist infot muutujas.
Vahel on teil vaja muutujat, et teie rakendus käituks soovitud viisil. Kuid see lähenemine on seotud piirangutega.
- Peate jooksvat summat käsitsi värskendama. Automaatne ümberarvutus ei tee seda teie eest.
- Jooksvat summat ei saa enam teiste juhtelementide väärtuste põhjal arvutada. See sõltub sellest, mitu korda kasutaja valis nupu Liida, ja milline väärtus oli iga kord tekstisisendi juhtelemendil. Kas kasutaja sisestas 77 ja valis suvandi Liida kaks korda või määratles ta kummagi liidetavana 24 ja 130? Pärast kogusumma 154-ni jõudmist ei saa seda eristada.
- Kogusumma muudatused võivad pärineda erinevatest teedest. Selles näites saavad mõlemad nupud, Lisa ja Kustuta kogusummat värskendada. Kui rakendus ei käitu teie eeldatud viisil, siis milline nupp probleemi põhjustab?
Kasutage globaalset muutujat.
Meie liitmismasina loomiseks vajame muutujad, mis hoiaks jooksvat summat. Lihtsaimad muutujad töötamiseks Power Apps on globaalsed muutujad.
Kuidas globaalsed muutujad toimivad.
- Seadistage globaalse muutuja väärtus funktsiooniga Seadista. Set( MyVar, 1 ) seadistab globaalse muutuja MyVar väärtusele 1.
- Kasutate globaalsed muutujat viidates funktsiooniga Seadista kasutatud nime. Sel juhul tagastab MyVar väärtuse 1.
- Globaalsetel muutujatel võib olla mis tahes väärtus (sh stringid, arvud, kirjed ja tabelid).
Ehitame oma liitmismasina uuesti üles, kasutades globaalset muutujat.
Lisage tekstisisestuse juhtelement nimega TextInput1 ja kaks nuppu nimega Nupp1 ja Nupp2.
Seadke Nupu1 atribuudi Tekst väärtuseks "Liida" ja seadke Nupu2 atribuudi Tekst väärtuseks "Kustuta".
Jooksva kogusumma värskendamiseks iga kord, kui kasutaja valib nupu Liida, määrake selle atribuut OnSelect järgmisele valemile.
Set( RunningTotal, RunningTotal + TextInput1 )
Ainult selle valemi olemasolu korral luuakse globaalne muutuja Kogusumma, mis omab tehtemärgi + tõttu arvu. Saate viidata Kogusummale kõikjal rakenduses. Iga kord, kui kasutaja avab selle rakenduse, on Kogusumma algväärtus tühi.
Esimesel korral, kui kasutaja valib nupu Liida ja Määra, seatakse Kogusumma väärtusele RunningTotal + TextInput1.
Kogusumma määramiseks summale 0 iga kord kui kasutaja valib nupu Kustuta, seadistage selle atribuut OnSelect sellele valemile.
Set( RunningTotal, 0 )
Lisage juhtelement Silt ja seadistage selle atribuut Tekst atribuudile Kogusumma.
See valem arvutatakse automaatselt ümber ja see kuvab kasutajale Kogusumma väärtust, kuna see muutub vastavalt nuppudele, mille kasutajad valivad.
Tutvuge rakenduse eelvaatega ja me saame oma liitmismasina, nagu eespool kirjeldatud. Sisestage tekstiväljale arv ja vajutage nuppu Liida mitu korda. Kui olete valmis, naaske Esc-klahvi abil koostamise kogemusse.
Globaalse muutuja väärtuse kuvamiseks tehke ühte järgmistest.
Kui kasutate rakenduse Power Apps Studio eelvaateversiooni, valige rakenduse loomise menüüst Muutujad .
Kui kasutate selle Power Apps Studio klassikalist versiooni, valige menüü Fail ja vasakpoolsel paanil Muutujad .
Kõigi kohtade kuvamiseks, kus muutuja on määratletud ja kasutatud, valige see jaotises Globaalsed muutujad.
Muutujate tüübid
Power Appsil on kolme tüüpi muutujaid.
Muutuja tüüp | Scope | Kirjeldus | Loovad funktsioonid |
---|---|---|---|
Globaalsed muutujad | Rakendus | Kõige lihtsam kasutada. Sisaldab arvu, tekstistringi, loogikat, kirjet, tabelit jne, mida saab rakenduses kõikjalt viidata. | Seadmine |
Kontekstimuutujad | Kuva | Suurepärane, kui soovite, et ekraanil kuvataks väärtusi, nagu näiteks protseduuride parameetrid mõnes muus keeles. Võib viidata ainult ühest kuvast. | UpdateContext Navigeeri |
Kogumikud | Rakendus | Mahutab tabeli, millele saab rakendusest kõikjalt viidata. Võimaldab muuta tabeli sisu selle asemel, et seda määrataks tervikuna. Saab salvestada hilisemaks kasutuseks kohalikku seadmesse. | Collect ClearCollect |
Muutujate loomine ja eemaldamine
Kõik muutujad luuakse kaudselt juhul, kui nad kuvatakse funktsioonides Määra, UpdateContext, Navigeeri, Kogu või ClearCollect. Muutuja ja selle tüübi deklareerimiseks peate selle vaid lisama ühte neist rakenduse funktsioonidest. Ükski nendest funktsioonidest ei loo muutujaid; nad täidavad ainult muutujaid väärtusega. Te ei saa kunagi deklareerida kindlaid muutujaid, nagu mõnes teises programmeerimistööriistas ning kogu tippimine on kaudsest kasutamisest.
Näiteks võib teil olla nupu juhtelement, millel on OnSelect valem, mis on võrdne funktsiooniga Set( X, 1). See valem määrab väärtuse X muutujana, mille tüüp on arv. Saate kasutada väärtus X valemites arvuna ja sellel muutujal on väärtus pärast rakenduse avamist aga enne nupu valimist tühi. Kui valite nupu, annate atribuudile X väärtuseks 1.
Kui lisate veel ühe nupu ja määrate selle atribuudi OnSelect väärtuseks Set( X, "Hello" ), tekib tõrge, sest tüüp (tekstistring) ei vasta eelmisele Kogumile (arv). Kõik muutuja kaudsed määratlused peavad tüübiga kokku sobima. Jällegi, see kõik juhtus sellepärast, et te mainisite valemites X-i valemites, mitte sellepärast, et mõni nendest valemitest oli tegelikult käivitatud.
Eemaldate muutuja eemaldades kõik funktsioonid Määra, UpdateContext, Navigeeri, Kogu või ClearCollect, mis loovad kaudselt muutuja. Ilma nende funktsioonideta ei eksisteeri muutujat. Samuti tuleb eemaldada kõik viited muutujale, kuna need põhjustavad tõrkeid.
Muutuja eluiga ja algväärtus
Rakenduse käitamisel hoitakse kõiki muutujaid mälus. Pärast rakenduse sulgumist lähevad muutujate väärtused kaotsi.
Muutuja sisu saate talletada andmeallikas kasutades funktsioone Paik või Kogu. Samuti saate talletada väärtusi kohaliku seadme kogudes, kasutades funktsiooni SaveData.
Kui kasutaja avab rakenduse, on kõigil muutujatel algne väärtus tühi.
Muutujate lugemine
Kasutate muutuja nime selle väärtuse lugemiseks. Näiteks saate määratleda muutuja selle valemiga.
Set( Radius, 12 )
Seejärel saate lihtsalt kasutada Raadiust kõikjal, kus saate arvu kasutada, ja see asendatakse 12-ga.
Pi() * Power( Radius, 2 )
Kui te annate kontekstile sama nime, mis on globaalsel muutujal või kogumikul, on konteksti muutuja ülimuslik. Siiski saate siiski viidata globaalsele muutujale või kogumile, kui kasutate täpsustustehtemärki [@Radius].
Kontekstimuutuja kasutamine
Vaatame, kuidas meie liitmismasin oleks loodud, kasutades kontekstimuutujat globaalse muutuja asemel.
Kuidas konteksti muutujad toimivad.
- Konteksti muutujad luuakse kaudselt kasutades funktsiooni UpdateContext või Navigeeri. Kui rakendus käivitub, on kõigi konteksti muutujatel algne väärtus tühi.
- Konteksti muutujaid saate värskendada kirjetega. Muudes programmeerimistööriistades kasutatakse määranguna tavaliselt "=", nagu "x = 1". Konteksti muutujate puhul kasutage selle asemel { x: 1 }. Konteksti muutuja kasutamisel kasutage selle nime otse ilma kirje süntaksita.
- Samuti saate seada konteksti muutuja siis, kui kasutate ekraani kuvamiseks funktsiooni Navigeeri. Kui leiate, et ekraan on mingi protseduur või allrutiin, sarnaneb see lähenemisviis teiste programmeerimistööriistade parameetrite vastuvõtmisega.
- Ainult funktsiooni Navigeeri puhul on konteksti muutujad piiratud ühe ekraani kontekstiga, kust nad saavadki oma nime. Neid ei saa kasutada ega määrata väljaspool seda konteksti.
- Konteksti muutujatel võib olla mis tahes väärtus (sh stringid, arvud, kirjed ja tabelid).
Ehitame oma liitmismasina uuesti üles, kasutades konteksti muutujat.
Lisage tekstisisestuse juhtelement nimega TextInput1 ja kaks nuppu nimega Nupp1 ja Nupp2.
Seadke Nupu1 atribuudi Tekst väärtuseks "Liida" ja seadke Nupu2 atribuudi Tekst väärtuseks "Kustuta".
Jooksva kogusumma värskendamiseks iga kord, kui kasutaja valib nupu Liida, määrake selle atribuut OnSelect järgmisele valemile.
UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )
Ainult selle valemi olemasolu korral luuakse konteksti muutuja Kogusumma, mis omab tehtemärgi + tõttu arvu. Saate viidata Kogusummale kõikjal sellel kuval. Iga kord, kui kasutaja avab selle rakenduse, on Kogusumma algväärtus tühi.
Esimesel korral, kui kasutaja valib nupu Liida ja UpdateContext käivitub, seatakse Kogusumma väärtusele RunningTotal + TextInput1.
Kogusumma määramiseks summale 0 iga kord kui kasutaja valib nupu Kustuta, seadistage selle atribuut OnSelect sellele valemile.
UpdateContext( { RunningTotal: 0 } )
Jällegi funktsiooni UpdateContext kasutatakse valemiga UpdateContext ( { RunningTotal: 0 } ).
Lisage juhtelement Silt ja seadistage selle atribuut Tekst atribuudile Kogusumma.
See valem arvutatakse automaatselt ümber ja see kuvab kasutajale Kogusumma väärtust, kuna see muutub vastavalt nuppudele, mille kasutajad valivad.
Tutvuge rakenduse eelvaatega ja me saame oma liitmismasina, nagu eespool kirjeldatud. Sisestage tekstiväljale arv ja vajutage nuppu Liida mitu korda. Kui olete valmis, naaske Esc-klahvi abil koostamise kogemusse.
Ekraanile navigeerimisel saate seada konteksti muutuja väärtuse. See on kasulik "konteksti" või "parameetrite" ühelt ekraanilt teisele edastamiseks. Selle tehnika demonstreerimiseks lisage ekraan, lisage nupp ja määrake selle atribuut OnSelect sellele valemile.
Navigate( Screen1, None, { RunningTotal: -1000 } )
Hoidke selle nupu valimisel all muuteklahvi (ALT), et kuvada Kuva1 ja seada konteksti muutuja Kogusumma väärtusele -1000.
Kontekstimuutuja väärtuse kuvamiseks tehke ühte järgmistest.
Kui kasutate rakenduse Power Apps Studio eelvaateversiooni, valige rakenduse koostamise menüüst Muutujad .
Kui kasutate selle Power Apps Studio klassikalist versiooni, valige menüü Fail ja seejärel valige vasakpoolsel paanil Muutujad .
Kontekstimuutuja määratlemise ja kasutamise kuvamiseks valige see jaotises Kontekstimuutujad.
Kogumi kasutamine
Lõpuks, vaatame meie liitmismasina loomist kogumiku abil. Kuna kogumik mahutab tabelit, mida on lihtne muuta, paneme selle liitmismasina hoidma iga väärtuse paberlinti, nii nagu need sisestatakse.
Kuidas kogumikud töötavad.
- Looge ja seadistage kogumeid kasutades funktsiooni ClearCollect. Selle asemel saate kasutada funktsiooni Kogumine, kuid selle nõuab teist muutujat, mitte vana asendamist.
- Kogum on andmeallika tüüp ja seega tabel. Kogumi ühe väärtuse juurde pääsemiseks kasutage funktsiooni Esimene ja võtke välja tulemuseks saadud kirje üks väli. Kui kasutasite ühekordset väärtust koos funktsiooniga ClearCollect, saab sellest väli Väärtus, nagu käesolevas näites.
First( VariableName ).Value
Loome uuesti ome liitmismasina kogumi abil.
Lisage juhtelement Tekstisisend nimega TextInput1 ja kaks nuppu nimega Nupp1 ja Nupp2.
Seadke Nupu1 atribuudi Tekst väärtuseks "Liida" ja seadke Nupu2 atribuudi Tekst väärtuseks "Kustuta".
Jooksva kogusumma värskendamiseks iga kord, kui kasutaja valib nupu Liida, määrake selle atribuut OnSelect järgmisele valemile.
Collect( PaperTape, TextInput1.Text )
Ainult selle valemi olemasolu korral luuakse kogumina PaperTape millel on ühe veeruga tekstistringi tabel. Saate viidata funktsioonile PaperTape kõikjalt rakendusest. Kui kasutaja avab selle rakenduse, on PaperTape tühi tabel.
Kui see valem käivitub, lisab see uue väärtuse kollektsiooni lõppu. Kuna lisame ühe väärtuse, siis Kogum paneb selle automaatselt ühe veeruga tabelisse ja veeru nimi on Väärtus, mida saate hiljem kasutada.
Paberteibi kustutamiseks, kui kasutaja valib nupu Kustuta, seadistage selle atribuut OnSelect sellele valemile.
Clear( PaperTape )
Kogusumma kuvamiseks lisage silt ja seadke selle atribuut Tekst sellele valemile.
Sum( PaperTape, Value )
Liitmismasina käivitamiseks vajutage klahvi F5, et avada eelvaade, sisestage numbrid tekstisisendi juhtelemendis ja valige nupud.
Vajutage vaike-tööruumi naasmiseks paoklahvi (ESC).
Paberlindi kuvamiseks sisestage juhtelement Andmetabel ja seadistage selle atribuut Üksused sellele valemile.
PaperTape
Valige parempoolsel paanil Redigeeri väljuja seejärel valige Lisa väli, valige väärtus veerg ja seejärel klõpsake nuppu Lisa, et seda kuvada.
Kogumikus olevate väärtuste vaatamiseks tehke ühte järgmistest.
Kui kasutate rakenduse Power Apps Studio eelvaateversiooni, valige rakenduse koostamise menüüst Muutujad ja seejärel valige Kogud.
Kui kasutate klassikalist versiooni, Power Apps Studio valige menüüst Fail suvand Kogud .
Kogu kollektsiooni talletamiseks ja toomiseks lisage veel kaks nupu juhtelementi ja seadke nende atribuudid Tekst väärtustele Laadi ja Salvesta. Määrake nupu Laadi atribuut OnSelect sellele valemile.
Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )
Esmalt peate kollektsiooni tühjendama, kuna LoadData lisab salvestatud väärtused kogumi lõppu.
Määrake nupu Salvesta atribuut OnSelect sellele valemile.
SaveData( PaperTape, "StoredPaperTape" )
Vaadake uuesti eelvaadet, vajutades F5, sisestage numbrid tekstisisendi juhtelemendis ja valige nupud. Valige nupp Salvesta. Sulgege ja laadige rakendus uuesti ning valige oma kogumi uuesti laadimiseks nupp Laadi.
Märkus
Funktsioonid SaveData ja LoadData töötavad Power Apps Mobile'is kuid mitte Power Apps Studios ega Power Appsi veebiesitajas.
Märkus
Kas saaksite meile dokumentatsiooniga seotud keele-eelistustest teada anda? Osalege lühikeses uuringus. (Uuring on ingliskeelne.)
Uuringus osalemine võtab umbes seitse minutit. Isikuandmeid ei koguta (privaatsusavaldus).