Î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ă accesați o variabilă atunci când creați o aplicație proiectată pe pânză, î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 prin adăugarea de formule comportamentale. 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 reproduce comportamentul Excel într-o aplicație adăugând un control Etichetă, numit Label1, și două controale Introducere text, numite TextInput1 și TextInput2. Dacă apoi setați proprietatea Text a Label1 la TextInput1 + TextInput2, va arăta întotdeauna automat suma oricăror numere sunt TextInput1 și TextInput2.
Observați că controlul Label1 se selectează , afișând formula sa Text din 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 următorul exemplu, o formulă pentru proprietatea Culoare a etichetei va afișa automat valorile 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 surse 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. Continuând exemplul, puteți seta proprietatea galeriei Elemente la formula Filtrare (SharePointList), care va afișa automat setul nou filtrat de înregistrări.
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ă cauț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 care funcționează în cadrul Power Apps sunt variabile 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 aButton1 la "Adăugare" și setați proprietatea Text a Button2 la "Golire".
Pentru a actualiza totalul de rulare de fiecare dată când un utilizator selectează butonul Adăugare, setați proprietatea acestuia OnSelect pentru 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 Adăugare și Setare rulează, RunningTotal este setat la valoarea RunningTotal + TextInput1.
Pentru a seta totalul de rulare la 0 de fiecare dată când utilizatorul selectează butonul Golire, setați proprietatea acestuia OnSelect pentru această formulă:
Set (RunningTotal, 0)
Adăugați un control Etichetă și setați proprietatea acestuia 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, efectuați una dintre următoarele:
Dacă utilizați versiunea de previzualizare a Power Apps Studio, selectați Variabile din meniul de creare a aplicației.
Dacă utilizați versiunea clasică a Power Apps Studio, selectați meniul Fișier și selectați Variabile în panoul din stânga.
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. | Setați |
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 Navigare |
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ă. | Collect 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țiile de pe dispozitivul local, folosind 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 folosind funcţia UpdateContext sau Navigare. 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.
- Puteți seta, de asemenea, o variabilă de context atunci când utilizați funcția Navigare pentru afișarea unui 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.
- În afară de Navigare, variabilele de context sunt limitate la contextul unui singur ecran, care este locul în care îș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 aButton1 la "Adăugare" și setați proprietatea Text a Button2 la "Golire".
Pentru a actualiza totalul de rulare de fiecare dată când un utilizator selectează butonul Adăugare, setați proprietatea acestuia OnSelect pentru 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ăugare și UpdateContext rulează, RunningTotal este setat la valoare RunningTotal + TextInput1.
Pentru a seta totalul de rulare la 0 de fiecare dată când utilizatorul selectează butonul Golire, setați proprietatea acestuia OnSelect pentru această formulă:
UpdateContext( { RunningTotal: 0 } )
Din nou, UpdateContext se folosește cu formula UpdateContext ( {RunningTotal: 0 }).
Adăugați un control Etichetă și setați proprietatea acestuia 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ă:
Navigate( 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 folosind funcţia ClearCollect. Puteți utiliza funcția Colectare în schimb, dar va necesita în mod 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 ).Value
Haideți să ne recreăm mașina noastră de adăugare folosind o colecție:
Adăugați un control Introducere text, denumit TextInput1, și două butoane denumite Button1 și Button2.
Setați proprietatea Text a Button1 la "Adăugare" și setați proprietatea Text a Button2 la "Golire".
Pentru a actualiza totalul de rulare de fiecare dată când un utilizator selectează butonul Adăugare, setați proprietatea acestuia OnSelect pentru această formulă:
Collect( 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 când utilizatorul selectează butonul Golire, setați proprietatea OnSelect pentru această formulă:
Clear( PaperTape )
Pentru a afișa totalul de rulare, adăugați o etichetă și setați proprietatea sa 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, introduceți un control Tabel de date și setați proprietatea Elemente pentru această formulă:
PaperTape
Î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 în Power Apps Studio sau playerul web pentru Power Apps.
Notă
Ne puteți spune care preferințele dvs. lingvistice pentru documentație? Răspundeți la un chestionar scurt. (rețineți că acest chestionar este în limba engleză)
Chestionarul va dura aproximativ șapte minute. Nu sunt colectate date personale (angajament de respectare a confidențialității).