Înțelegeți variabile din aplicațiile proiectate pe pânză
Dacă ați folosit un alt instrument de programare, cum ar fi Visual Basic sau JavaScript, este posibil să vă întrebați: Unde sunt variabilele? Power Apps este puțin diferit și necesită o abordare diferită. În loc să căutați o variabilă atunci când creați o aplicație canvas, întrebați-vă: Ce aș face în Excel?
În alte instrumente, este posibil să fi efectuat explicit un calcul și să fi stocat rezultatul într-o variabilă. In orice caz, Power Apps și Excel, recalculează ambele automat formule pe măsură ce datele de intrare se schimbă, astfel încât, de obicei, nu este necesar să creați și să actualizați variabile. Prin această abordare ori de câte ori este posibil, puteți crea, înțelege și întreține mai ușor aplicația.
În unele cazuri, va trebui să utilizați variabile în Power Apps, care extinde modelul Excel adăugând formule de comportament. Aceste formule rulează atunci când, de exemplu, un utilizator selectează un buton. În cadrul unei formule comportamentale, este adesea util să setați o variabilă care să fie utilizată în alte formule.
În general, evitați să utilizați variabile. Dar uneori doar o variabilă poate activa experiența dorită. Variabilele sunt implicit create și tastate atunci când apar în funcții care își stabilesc valorile.
Translatați Excel în Power Apps
Excel
Să trecem în revistă modul în care funcționează Excel. O celulă poate conține o valoare, cum ar fi un număr sau un șir, sau o formulă care se bazează pe valorile altor celule. După ce utilizatorul introduce o valoare diferită într-o celulă, Excel recalculează automat orice formule care depind de noua valoare. Nu trebuie să faceți nicio programare pentru a activa acest comportament.
În exemplul următor, celula A3 este setată la formulă A1+A2. Dacă A1 sau A2 se modifică, A3 se recalculează automat pentru a reflecta schimbarea. Acest comportament nu necesită codare în afara formulei în sine.
Excel nu are variabile. Valoarea unei celule care conține o formulă se schimbă în funcție de intrarea sa, dar nu există nicio modalitate de a vă aminti rezultatul unei formule și de a o depozita într-o celulă sau oriunde altundeva. Dacă schimbați valoarea unei celule, întreaga foaie de calcul se poate modifica și toate valorile calculate anterior se pierd. Un utilizator Excel poate copia și lipi celule, dar această operațiune este sub controlul manual al utilizatorului și nu este posibilă cu formule.
Power Apps
Aplicațiile pe care le creați în Power Apps se comportă foarte similar cu Excel. În loc să actualizați celulele, puteți adăuga controale oriunde doriți pe un ecran și să le numiți pentru a fi utilizate în formule.
De exemplu, puteți replica comportamentul Excel într-o aplicație adăugând un control Label , denumit Label1 și două controale de introducere a textului , numit TextInput1 și TextInput2. Dacă apoi setați Text proprietatea Label1 la TextInput1 + TextInput2, va afișa întotdeauna suma oricăror numere. în TextInput1 și TextInput2 în mod automat.
Observați că este selectat controlul Label1 , afișând formula Text în bara de formule din partea de sus a ecranului. Aici găsim formula TextInput1 + TextInput2. Această formulă creează o dependență între aceste controale, la fel cum sunt create dependențe între celule dintr-un registru de lucru Excel. Să schimbăm valoarea TextInput1:
Formula pentru Label1 a fost recalculată automat, arătând noua valoare.
În Power Apps, puteți utiliza formule pentru a determina nu numai valoarea primară a unui control, ci și proprietăți, cum ar fi formatarea. În exemplul următor, o formulă pentru proprietatea Color a etichetei va afișa automat valori negative în roșu. Funcția If ar trebui să pară familiară din Excel:
If( Value(Label1.Text) < 0, Red, Black )
Puteți utiliza formule pentru o mare varietate de scenarii:
- Utilizând GPS-ul dispozitivului dvs., un control de hartă vă poate afișa locația curentă cu o formulă care folosește Location.Latitude și Location.Longitude. Pe măsură ce vă deplasați, harta vă va urmări automat locația.
- Alți utilizatori pot actualiza sursele de date. De exemplu, alții din echipa ta ar putea actualiza articole într-o listă. Când actualizați un sursă de date, orice formule dependente sunt recalculate automat pentru a reflecta datele actualizate. În continuare, puteți seta proprietatea Articole a unei galerii la formula Filter( SharePointList ), care va afișa automat noul set filtrat de înregistrări2>.
Beneficii
Utilizarea de formule pentru a crea aplicații are multe avantaje:
- Dacă știți Excel, știți Power Apps. Modelul și limbajul formulelor sunt aceleași.
- Dacă ați utilizat alte instrumente de programare, gândiți-vă la cât de mult cod ar fi necesar pentru a realiza aceste exemple. În Visual Basic, ar trebui să scrieți o rutină de tratare a evenimentelor pentru evenimentul de modificare pe fiecare control de introducere text. Codul pentru a efectua calculul în fiecare dintre acestea este redundant și ar putea ieși din sincronizare, sau ar trebui să scrieți o subrutină comună. În Power Apps, ați realizat toate acestea printr-o singură formulă de o singură linie.
- Pentru a înțelege de unde provine textul Label1, știți exact unde să căutați: formula din proprietatea Text . Nu există altă modalitate de a afecta textul acestui control. Într-un instrument de programare tradițional, orice rutină de tratare a evenimentelor sau subrutină ar putea modifica valoarea etichetei, de oriunde în program. Acest lucru poate face dificil de urmărit când și unde a fost modificată o variabilă.
- Dacă utilizatorul își schimbă un control al glisorului și apoi se răzgândește, poate modifica glisorul înapoi la valoarea sa originală. Și este ca și cum nimic nu s-ar fi schimbat vreodată: aplicația arată aceleași valori de control ca și înainte. Nu există ramificări pentru experimentarea și întrebarea „și dacă”, așa cum nu există în Excel.
În general, dacă puteți obține un efect folosind o formulă, vă veți descurca mai bine. Lăsați generatorul de formule din Power Apps să muncească pentru dvs.
Cum să știți când să folosiți variabilele
Să schimbăm elementul nostru simplu de adăugare pentru a acționa ca o mașină de adăugare de modă veche, cu un total de rulare. Dacă selectați un buton Adăugare, veți adăuga un număr la totalul de rulare. Dacă selectați un buton Golire, veți reseta totalul de rulare la zero.
Afișare | Descriere |
---|---|
![]() |
Când aplicația pornește, numărul total de rulare este 0. Punctul roșu reprezintă degetul utilizatorului în caseta de introducere a textului, în care utilizatorul introduce 77. |
![]() |
Utilizatorul selectează butonul Adăugare. |
![]() |
77 se adaugă la numărul total de rulare. Utilizatorul selectează butonul Adăugare din nou. |
![]() |
77 se adaugă din nou la totalul de rulare, rezultând 154. Utilizatorul selectează butonul Golire. |
![]() |
Totalul de rulare este resetat la 0. |
Mașina noastră de adăugare folosește ceva care nu există în Excel: un buton. În această aplicație, nu puteți utiliza doar formule pentru a calcula totalul de rulare, deoarece valoarea acesteia depinde de o serie de acțiuni întreprinse de utilizator. În schimb, totalul nostru de rulare trebuie să fie înregistrat și actualizat manual. Majoritatea instrumentelor de programare stochează aceste informații într-o variabilă.
Uneori veți avea nevoie de o variabilă pentru ca aplicația dvs. să se comporte așa cum doriți. Dar abordarea vine cu avertismente:
- Trebuie să actualizați manual totalul de rulare. Recalcularea automată nu o va face pentru dvs.
- Totalul de rulare nu mai poate fi calculat pe baza valorilor altor comenzi. Depinde de câte ori a selectat utilizatorul butonul Adăugare și ce valoare a fost în controlul de introducere text de fiecare dată. Utilizatorul a introdus 77 și a selectat Adăugare de două ori, sau au specificat 24 și 130 pentru fiecare completare? Nu puteți spune diferența după ce totalul a ajuns la 154.
- Modificări ale totalului pot veni pe diferite căi. În acest exemplu, ambele butoane Adăugare și Golire pot actualiza totalul. Dacă aplicația nu se comportă așa cum vă așteptați, ce buton cauzează problema?
Utilizați o variabilă globală
Pentru a crea mașina noastră de adăugare, avem nevoie de o variabilă pentru a reține totalul de rulare. Cele mai simple variabile în care se poate lucra Power Apps sunt variabilele globale.
Cum funcționează variabilele globale:
- Setați valoarea variabilei globale cu funcția Setare . Set( MyVar, 1 ) setează variabila globală MyVar la o valoare de 1.
- Utilizați variabila globală făcând referire la numele folosit cu funcţia Setare. În acest caz, MyVar va returna 1.
- Variabilele globale pot conține orice valoare, inclusiv șiruri, numere, înregistrări și tabele.
Să ne reconstruim mașina de adăugare folosind o variabilă globală:
Adăugați un control de introducere text, numit TextInput1 și două butoane, denumite Button1 și Button2.
Setați proprietatea Text a Button1 la „Adăugați” și setați proprietatea Text de Buton2 la „Șterge”.
Pentru a actualiza totalul cumulat ori de câte ori un utilizator selectează butonul Adăugați , setați-i proprietatea OnSelect la această formulă:
Set(RunningTotal, RunningTotal + TextInput1)
Simpla existență a acestei formule stabilește RunningTotal ca o variabilă globală care deține un număr din cauza operatorului +. Puteți face referire la RunningTotal oriunde în aplicație. Ori de câte ori utilizatorul deschide această aplicație, RunningTotal are o valoare inițială de gol.
Prima dată când un utilizator selectează butonul Add și rulează Set , RunningTotal este setat la valoarea RunningTotal + TextInput.
Pentru a seta totalul curent la 0 ori de câte ori utilizatorul selectează butonul Clear , setați-i proprietatea OnSelect la această formulă:
Set(RunningTotal, 0)
Adăugați un control Etichetă și setați-i proprietatea Text la RunningTotal.
Această formulă va fi automat recalculată și va arăta utilizatorului valoarea RunningTotal întrucât se schimbă pe baza butoanelor selectate de utilizator.
Previzualizați aplicația și avem mașina noastră de adăugare așa cum este descris mai sus. Introduceți un număr în caseta de text și apăsați butonul Adăugare de câteva ori. Când este gata, reveniți la experiența de creare cu ajutorul tastei Esc.
Pentru a afișa valoarea variabilei globale, selectați Variabile din meniul de creare a aplicației.
Pentru a afișa toate locurile în care variabila este definită și utilizată, selectați-o sub Variabile globale.
Tipuri de variabile
Power Apps are trei tipuri de variabile:
Tip variabile | Scope | Descriere | Funcții care stabilesc |
---|---|---|---|
Variabile globale | Aplicație | Cel mai simplu de utilizat. Reține un număr, șir de text, Boolean, înregistrare, tabel etc. la care se poate face referire de oriunde din aplicație. | Set |
Variabile de context | Ecran | Excelent pentru trecerea valorilor pe un ecran, la fel ca parametrii la o procedură în alte limbi. Poate fi făcută referire de pe un singur ecran. |
UpdateContext Navigați |
Colecții | Aplicație | Deține un tabel la care se poate face referire din orice parte a aplicației. Permite modificarea conținutului tabelului, mai degrabă decât setarea ca întreg. Poate fi salvat pe dispozitivul local pentru utilizare ulterioară. |
Colecta ClearCollect |
Creați și eliminați variabile
Toate variabilele sunt create implicit atunci când apar într-o funcție Setare, UpdateContext, Navigare, Colectare, sau ClearCollect. Pentru a declara o variabilă și tipul acesteia, trebuie doar să o includeți în oricare dintre aceste funcții, oriunde în aplicația dvs. Niciuna dintre aceste funcții nu creează variabile; ele doar completează variabilele cu valori. Nu declarați niciodată variabile în mod explicit așa cum este posibil într-un alt instrument de programare și tastarea este implicită de la utilizare.
De exemplu, este posibil să aveți un control buton cu o formulă OnSelect egala cu Set (X, 1). Această formulă stabilește X ca variabilă cu un tip de număr. Puteți folosi X în formule ca număr, iar variabila respectivă are o valoare de gol după ce deschideți aplicația, dar înainte de a selecta butonul. Când selectați butonul, dați X valoarea a 1.
Dacă ați adăugat un alt buton și ați setat proprietatea sa OnSelect la Set (X, „Bună ziua”), s-ar produce o eroare deoarece tipul (șirul de text) nu se potrivește cu cel precedent Setat (număr). Toate definițiile implicite ale variabilei trebuie să fie de acord asupra tipului. Din nou, toate acestea s-au întâmplat pentru că ați menționat X în formule, nu pentru că oricare dintre aceste formule a rulat efectiv.
Înlăturați o variabilă eliminând toate funcțiile Setare, UpdateContext, Navigare, Colectare sau ClearCollect care stabilesc în mod implicit variabila. Fără aceste funcții, variabila nu există. De asemenea, trebuie să eliminați orice referință la variabilă, deoarece acestea vor cauza o eroare.
Variabila durată de viață și valoarea inițială
Toate variabilele sunt păstrate în memorie în timp ce aplicația rulează. După închiderea aplicației, valorile pe care variabilele le-au deținut se pierd.
Puteți stoca conținutul unei variabile într-un sursă de date folosind funcțiile Patch sau Colectare. De asemenea, puteți stoca valori în colecții pe dispozitivul local utilizând funcția SaveData .
Când utilizatorul deschide aplicația, toate variabilele au o valoare inițială de gol.
Citirea variabilelor
Folosiți numele variabilei pentru a citi valoarea acesteia. De exemplu, puteți defini o variabilă cu această formulă:
Set( Radius, 12 )
Apoi puteți folosi pur și simplu Rază oriunde puteți utiliza un număr și acesta va fi înlocuit cu 12:
Pi() * Power( Radius, 2 )
Dacă dați unei variabile de context același nume ca o variabilă globală sau o colecție, variabila de context are prioritate. Cu toate acestea, puteți face referire la variabila sau colecția globală dacă utilizați operatorul de dezambiguizare[@Radius].
Utilizarea unei variabile de context
Să analizăm cum ar fi creată mașina noastră de adăugare folosind o variabilă de context în loc de o variabilă globală.
Cum funcționează variabilele de context:
- Stabiliți și setați implicit variabile de context utilizând funcția UpdateContext sau Navigate . Când aplicația pornește, valoarea inițială a tuturor variabilelor de context este gol.
- Actualizați variabilele de context cu înregistrări. În alte instrumente de programare, utilizați în mod obișnuit "=" pentru alocare, ca în "x = 1". Pentru variabile de context, utilizați în schimb {x: 1 }. Când utilizați o variabilă de context, folosiți numele acesteia direct fără sintaxa înregistrării.
- De asemenea, puteți seta o variabilă de context atunci când utilizați funcția Navigați pentru a afișa un ecran. Dacă priviți ecranul ca pe un fel de procedură sau subrutină, această abordare seamănă cu parametrii care trec în alte instrumente de programare.
- Cu excepția Navigate, variabilele de context sunt limitate la contextul unui singur ecran, de unde își primesc numele. Nu puteți să le utilizați sau să le setați în afara acestui context.
- Variabilele de context pot conține orice valoare, inclusiv șiruri, numere, înregistrări și tabele.
Să ne reconstruim mașina de adăugare folosind o variabilă de context:
Adăugați un control de introducere text, numit TextInput1 și două butoane, denumite Button1 și Button2.
Setați proprietatea Text a Button1 la „Adăugați” și setați proprietatea Text de Buton2 la „Șterge”.
Pentru a actualiza totalul cumulat ori de câte ori un utilizator selectează butonul Adăugați , setați-i proprietatea OnSelect la această formulă:
UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )
Simpla existență a acestei formule stabilește RunningTotal ca variabilă de context care deține un număr din cauza operatorului +. Puteți face referire la RunningTotal oriunde pe acest ecran. Ori de câte ori utilizatorul deschide această aplicație, RunningTotal are o valoare inițială de gol.
Prima dată când utilizatorul selectează butonul Adăugați și rulează UpdateContext , RunningTotal este setat la valoarea RunningTotal + TextInput1.
Pentru a seta totalul curent la 0 ori de câte ori utilizatorul selectează butonul Clear , setați-i proprietatea OnSelect la această formulă:
UpdateContext( { RunningTotal: 0 } )
Din nou, UpdateContext este folosit cu formula UpdateContext( { RunningTotal: 0 } ).
Adăugați un control Etichetă și setați-i proprietatea Text la RunningTotal.
Această formulă va fi automat recalculată și va arăta utilizatorului valoarea RunningTotal întrucât se schimbă pe baza butoanelor selectate de utilizator.
Previzualizați aplicația și avem mașina noastră de adăugare așa cum este descris mai sus. Introduceți un număr în caseta de text și apăsați butonul Adăugare de câteva ori. Când este gata, reveniți la experiența de creare cu ajutorul tastei Esc.
Puteți seta valoarea unei variabile de context în timp ce navigați pe un ecran. Acest lucru este util pentru trecerea „contextului” sau „parametrilor” de la un ecran la altul. Pentru a demonstra această tehnică, introduceți un ecran, introduceți un buton și setați proprietatea OnSelect la această formulă:
Navigați( Screen1, None, { RunningTotal: -1000 } )
Țineți apăsată tasta Alt în timp ce selectați acest buton pentru a fi afișat Screen1 și a se seta variabila de context RunningTotal la -1000.
Pentru a afișa valoarea variabilei de context, efectuați una dintre următoarele:
Dacă utilizați versiunea de previzualizare a Power Apps Studio, selectați Variabile în meniul de creare a aplicației.
Dacă utilizați versiunea clasică a Power Apps Studio, selectați meniul Fișier și apoi selectați Variabile în panoul din stânga.
Pentru a arăta unde este definită și utilizată variabila de context, selectați-o sub Variabile de context.
Folosiți o colecție
În cele din urmă, să ne uităm la crearea mașinii noastre de adăugare cu o colecție. Întrucât o colecție deține un tabel ușor de modificat, vom face ca această mașină de adăugare să păstreze o „bandă de hârtie” a fiecărei valoare pe măsură ce sunt introduse.
Cum funcționează colecțiile:
- Creați și setați colecții utilizând funcția ClearCollect . Puteți utiliza în schimb funcția Collect , dar va necesita efectiv o altă variabilă în loc să o înlocuiască pe cea veche.
- O colecție este un fel de sursă de date și, prin urmare, un tabel. Pentru a accesa o singură valoare dintr-o colecție, utilizați funcția First și extrageți un câmp din înregistrarea rezultată. Dacă ați folosit o singură valoare cu ClearCollect, acesta va fi câmpul Valoare , ca în acest exemplu:
First(VariableName).Valoare
Haideți să ne recreăm mașina noastră de adăugare folosind o colecție:
Adăugați un control Text input denumit TextInput1 și două butoane, denumite Button1 și Button.
Setați proprietatea Text a Button1 la „Adăugați” și setați proprietatea Text de Buton2 la „Șterge”.
Pentru a actualiza totalul cumulat ori de câte ori un utilizator selectează butonul Adăugați , setați-i proprietatea OnSelect la această formulă:
Colectați( PaperTape, TextInput1.Text )
Simpla existență a acestei formule stabilește Banda de hârtie ca o colecție care deține un tabel cu o singură coloană de șiruri de text. Puteți face referire la Banda de hârtie oriunde în această aplicație. Ori de câte ori un utilizator deschide această aplicație, Banda de hârtie este un tabel gol.
Când rulează această formulă, aceasta adaugă noua valoare la sfârșitul colecției. Pentru că adăugăm o singură valoare, Colectare o plasează automat într-un tabel cu o singură coloană, iar numele coloanei este Valoare, pe care îl veți folosi mai târziu.
Pentru a șterge banda de hârtie atunci când utilizatorul selectează butonul Clear , setați-i proprietatea OnSelect la această formulă:
Șterge (bandă de hârtie)
Pentru a afișa totalul cumulat, adăugați o etichetă și setați-i proprietatea Text la această formulă:
Sumă( PaperTape, Value )
Pentru a rula mașina de adăugat, apăsați F5 pentru a deschide Previzualizare, introduceți numere în controlul de introducere text și selectați butoanele.
Pentru a reveni la spațiul de lucru implicit, apăsați tasta Esc.
Pentru a afișa banda de hârtie, inserați un control Tabel de date și setați-i proprietatea Articole la această formulă:
Bandă de hârtie
În panoul din dreapta, selectați Editare câmpuri și apoi selectați Adăugare câmp, selectați coloana Valoare și apoi selectați Adăugare pentru a o afișa.
Pentru a vedea valorile din colecția dvs., efectuați una dintre următoarele:
Dacă utilizați versiunea de previzualizare a Power Apps Studio, selectați Variabile în meniul de creare a aplicației, apoi selectați Colecții.
Dacă utilizați versiunea clasică a Power Apps Studio, selectați Colecții din meniul Fișier .
Pentru a stoca și recupera colectia, adăugați două controale buton suplimentare și setați-le proprietățile Text la Încărcare și Salvare. Setați proprietatea OnSelect a butonului Încărcare pentru această formulă:
Clear( PaperTape ); LoadData( PaperTape, „StoredPaperTape”, true )
Trebuie să goliți mai întâi colecția, deoarece LoadData va adăuga valorile stocate la sfârșitul colecției.
Setați proprietatea OnSelect a butonului Salvare pentru această formulă:
SaveData( PaperTape, „StoredPaperTape”)
Previzualizați din nou apăsând tasta F5, introduceți numerele în controlul de introducere text și selectați butoanele. Selectați butonul Salvare. Închideți și reîncărcați aplicația și selectați butonul Sarcină pentru reîncărcarea colecției.
Notă
Funcțiile SaveData și LoadData funcționează în Power Apps Mobile, dar nu Power Apps Studio sau playerul web pentru Power Apps.