Razumijevanje varijabli u aplikacijama od gotovih gradivnih elemenata
Ako ste upotrebljavali drugi alat za programiranje, kao što je Visual Basic ili JavaScript, možda se pitate: Gdje su varijable? Power Apps je malo drugačiji i zahtijeva drugačiji pristup. Umjesto traženja varijable prilikom izrade aplikacije radnog područja, zapitajte se: Što bih napravio u Excelu?
U drugim ste alatima možda eksplicitno izvršili izračun i pohranili rezultat u varijablu. Međutim, Power Apps i Excel automatski vrše ponovni izračun formula kako se ulazni podaci mijenjaju, tako da obično ne morate izrađivati i ažurirati varijable. Primjenjujući ovaj pristup kad god je to moguće, možete lakše izraditi, razumjeti i održavati aplikaciju.
U nekim ćete slučajevima morati upotrebljavati varijable u servisu Power Apps koji dodavanjem formula ponašanja proširuje Excelov model. Te se formule pokreću kada, na primjer, korisnik odabere gumb. Unutar formule ponašanja često je korisno postaviti varijablu koja će se upotrebljavati u drugim formulama.
Općenito, izbjegavajte upotrebu varijabli. No ponekad samo varijabla može omogućiti doživljaj koji želite. Varijable se implicitno stvaraju i upisuju kada se pojave u funkcijama koje postavljaju njihove vrijednosti.
Pretočite Excel u Power Apps
Excel
Pogledajmo kako funkcionira Excel. Ćelija može sadržavati vrijednost, kao što je broj ili niz, ili formulu koja se temelji na vrijednostima drugih ćelija. Nakon što korisnik u ćeliju unese različitu vrijednost, Excel automatski ponovno izračunava sve formule koje ovise o novoj vrijednosti. Ne morate programirati da biste omogućili ovo ponašanje.
U sljedećem je primjeru ćelija A3 postavljena na formulu A1+A2. Ako se ćelije A1 ili A2 promijene, u ćeliji A3 automatski se ponovno izračunava vrijednost koja odražava promjenu. Ovo ponašanje ne zahtijeva kodiranje izvan same formule.
U Excelu ne postoje varijable. Vrijednost ćelije koja sadrži formulu mijenja se na temelju unosa, no ne postoji način da se rezultat formule zapamti i pohrani u ćeliju ili bilo gdje drugdje. Ako promijenite vrijednost ćelije, može se promijeniti cijela proračunska tablica i izgubit će se sve prethodno izračunate vrijednosti. Korisnik u Excelu može kopirati i lijepiti ćelije, no to ovisi o ručnoj kontroli korisnika i ne može se izvršiti pomoću formula.
Power Apps
Aplikacije koje stvarate u servisu Power Apps ponašaju se vrlo slično Excelu. Umjesto ažuriranja ćelija, kontrole možete dodati gdje god želite na zaslonu i dodijeliti im naziv kako biste ih upotrebljavali u formulama.
Na primjer, možete replicirati ponašanje Excela u aplikaciji dodavanjem kontrole Label pod nazivom Label1 i dviju kontrola Text input pod nazivima TextInput1 i TextInput2. Ako zatim postavite svojstvo Text oznake Label1 na TextInput1 + TextInput2, uvijek će automatski prikazati zbroj svih brojeva u kontrolama TextInput1 i TextInput2.
Primijetite da je odabrana kontrola Label1 koja prikazuje svoju formulu Text u traci formule pri vrhu zaslona. Ovdje nalazimo formulu TextInput1 + TextInput2. Ova formula stvara ovisnost između tih kontrola, baš kao što se stvaraju ovisnosti između ćelija u Excelovoj radnoj knjizi. Promijenimo vrijednost kontrole TextInput1:
Formula za Label1 automatski se ponovno izračunava i prikazuje novu vrijednost.
U servisu Power Apps formule možete upotrebljavati kako biste odredili ne samo primarnu vrijednost kontrole, već i svojstva poput oblikovanja. U sljedećem primjeru, formula za svojstvo oznake Color negativne vrijednosti automatski će prikazati crvenom bojom. Funkcija If trebala bi izgledati poznato iz programa Excel:
If( Value(Label1.Text) < 0, Red, Black )
Formule možete upotrebljavati za najrazličitije scenarije:
- Upotrebom sustava GPS na uređaju, kontrola karte može prikazati vašu trenutačnu lokaciju pomoću formule koja upotrebljava zemljopisnu širinu.lokacije i zemljopisnu dužinu.lokacije. Dok se krećete, karta automatski prati vašu lokaciju.
- Ostali korisnici mogu ažurirati izvore podataka. Na primjer, drugi korisnici u vašem timu mogu ažurirati stavke na popisu. Kad osvježite izvor podataka, sve ovisne formule automatski se ponovno izračunavaju kako bi odrazile ažurirane podatke. Slijedom primjera, možete postaviti svojstvo galerije Items na formulu Filter (SharePointList) koja će automatski prikazati novofiltrirani skup zapisa.
Prednosti
Upotreba formula za izradu aplikacija ima brojne prednosti:
- Ako poznajete Excel, poznajete Power Apps. Model i jezik formule jednaki su.
- Ako ste upotrebljavali druge alate za programiranje, razmislite o tome koliko bi koda bilo potrebno za postizanje ovih primjera. U programu Visual Basic morat ćete napisati rukovatelja događajima za događaj promjene na svakoj kontroli unosa teksta. Kôd za izvođenje izračuna u svakoj kontroli je suvišan i možda se neće sinkronizirati, ili ćete morati napisati zajednički potprogram. U servisu Power Apps sve ste to postigli pomoću jedinstvene formule u jednom retku.
- Kako biste razumjeli otkud dolazi tekst stavke Label1, točno znate što morate tražiti: formulu u svojstvu Text. Ne postoji drugi način da se utječe na tekst ove kontrole. U tradicionalnom programskom alatu, svaki rukovatelj događajima ili potprogram može promijeniti vrijednost oznake bilo gdje u programu. To može otežati praćenje vremena i lokacije promjene varijable.
- Ako korisnik promijeni kontrolu klizača i zatim se predomisli, klizač može vratiti na izvornu vrijednost. I sve će biti kao da se nikad ništa nije promijenilo: aplikacija prikazuje iste vrijednosti kontrole kao i prije. Ne postoje grananja za eksperimentiranje i postavljanje pitanja „što ako”, baš kao ni u Excelu.
Općenito, ako postignete učinak pomoću formule, tim bolje za vas. Neka motor formule u servisu Power Apps radi umjesto vas.
Kada upotrebljavati varijable
Pomoću tekućeg ukupnog iznosa promijenimo našeg jednostavnog dodavatelja kako bi djelovao kao staromodni stroj za dodavanje. Ako odaberete gumb Dodaj, tekućem ukupnom iznosu dodat ćete broj. Ako odaberete gumb Očisti, vratit ćete izvornu vrijednost tekućeg ukupnog iznosa.
Prikaži | Opis |
---|---|
Kada se aplikacija pokrene, tekući ukupni iznos iznosi 0. Crvena točka predstavlja prst korisnika u okviru za unos teksta u koji korisnik unosi 77. |
|
Korisnik odabire gumb Dodaj. | |
Tekućem ukupnom iznosu dodaje se 77. Korisnik ponovno odabire gumb Dodaj. |
|
Tekućem ukupnom iznosu ponovno se dodaje 77, čime tekući ukupni iznos iznosi 154. Korisnik odabire gumb Očisti. |
|
Tekući ukupni iznos ponovno je postavljen na 0. |
Naš stroj za dodavanje upotrebljava nešto što ne postoji u Excelu: gumb. U ovoj aplikaciji za izračunavanje tekućeg ukupnog iznosa ne možete upotrebljavati samo formule jer njegova vrijednost ovisi o nizu radnji koje korisnik poduzme. Umjesto toga, naš tekući ukupni iznos mora se zabilježiti i ažurirati ručno. Većina alata za programiranje te podatke pohranjuje u varijablu.
Ponekad će vam trebati varijabla kako bi se vaša aplikacija ponašala onako kako želite. No pristup dolazi s upozorenjima:
- Morate ručno ažurirati tekući ukupni iznos. Automatski ponovni izračun neće to učiniti umjesto vas.
- Tekući ukupni iznos više se ne može izračunati na temelju vrijednosti drugih kontrola. Ovisi o tome koliko je puta korisnik odabrao gumb Dodaj i koja se vrijednost svaki put nalazila u kontroli unosa teksta. Je li korisnik unio 77 i dvaput odabrao gumb Dodaj ili je naveo 24 i 130 za svako dodavanje? Ne možete primijetiti razliku nakon što je ukupan iznos dosegao 154.
- Promjene ukupnog iznosa mogu doći s različitih putova. U ovom primjeru i gumb Dodaj i gumb Očisti mogu ažurirati ukupan iznos. Ako se aplikacija ne ponaša onako kako očekujete, koji gumb uzrokuje problem?
Upotreba globalne varijable
Da bismo stvorili uređaj za dodavanje potrebna nam je varijabla za pohranu tekućeg ukupnog iznosa. Najjednostavnije varijable za rad u servisu Power Apps su globalne varijable.
Način funkcioniranja globalnih varijabli:
- Vrijednost globalne varijable postavljate pomoću funkcije Postavljanje. Vrijednost Set( MyVar, 1) postavlja globalnu varijablu MyVar na vrijednost 1.
- Globalnu varijablu upotrebljavate pozivanjem na naziv koji se upotrebljava s funkcijom Set. U ovom će slučaju varijabla MyVar vratiti 1.
- Globalne varijable mogu sadržavati bilo koju vrijednost, uključujući nizove, brojeve, zapise i tablice.
Ponovno izradimo stroj za dodavanje pomoću globalne varijable:
Dodajte kontrolu unosa teksta pod nazivom UnosTeksta1 i dva gumba pod nazivom Gumb1 i Gumb2.
Postavite svojstvo Text gumba Button1 na „Add” i svojstvo Text gumba Button2 na „Clear”.
Da biste ažurirali tekući ukupni iznos svaki put kada korisnik odabere gumb Dodaj, postavite njegovo svojstvo OnSelect na ovu formulu:
Set( RunningTotal, RunningTotal + TextInput1 )
Samo postojanje ove formule uspostavlja vrijednost RunningTotal kao globalnu varijablu koja sadrži broj zbog + operatora. Možete se pozivati na vrijednost RunningTotal bilo gdje u aplikaciji. Svaki put kada korisnik otvori ovu aplikaciju, RunningTotal će sadržavati početnu vrijednost prazno.
Prvi put kada korisnik odabere gumb Dodaj i postavi pokretanja, vrijednost RunningTotal postavljena je na RunningTotal + TextInput1.
Da biste postavili tekući ukupni iznos na 0 svaki put kada korisnik odabere gumb Očisti, postavite njegovo svojstvo OnSelect na ovu formulu:
Set( RunningTotal, 0 )
Dodajte kontrolu Oznaka i postavite njezino svojstvo Text na vrijednost RunningTotal.
Ova će se formula automatski ponovno izračunati i korisniku će se prikazati vrijednost RunningTotal onako kako se bude mijenjala na temelju gumba koje korisnik odabere.
Pretpregledajte aplikaciju i dobili smo stroj za dodavanje, kako smo prethodno opisali. Unesite broj u tekstni okvir i pritisnite gumb Dodaj nekoliko puta. Kada ste spremni, vratite se na doživljaj stvaranja pomoću tipke Esc.
Da biste prikazali vrijednost globalne varijable, učinite nešto od sljedećeg:
Ako koristite verziju Power Apps Studio pretpregleda, na izborniku za stvaranje aplikacija odaberite Varijable.
Ako koristite klasičnu verziju Power Apps Studio, odaberite izbornik Datoteka i odaberite Varijable u lijevom oknu.
Da biste prikazali sva mjesta na kojima je varijabla definirana i korištena, odaberite je u odjeljku Globalne varijable.
Vrste varijabli
Power Apps sadrži tri vrste varijabli:
Vrste varijabli | Scope | Opis | Funkcije koje uspostavljaju |
---|---|---|---|
Globalne varijable | Aplikacija | Najjednostavnija za upotrebu. Sadržava broj, tekstni niz, Booleovu vrijednost, zapis, tablicu itd. koje je moguće referencirati s bilo kojeg mjesta u aplikaciji. | Postavi |
Varijable konteksta | Zaslon | Sjajan za prenošenje vrijednosti na zaslon, slično parametrima postupka na drugim jezicima. Može se pozivati samo s jednog zaslona. | UpdateContext Navigacija |
Zbirke | Aplikacija | Sadrži tablicu na koju se može pozivati bilo gdje u aplikaciji. Omogućuje izmjenu sadržaja tablice, umjesto njenog postavljanja u cijelosti. Može se spremiti na lokalni uređaj za kasniju upotrebu. | Collect ClearCollect |
Stvaranje i uklanjanje varijabli
Sve se varijable stvaraju implicitno kada se prikažu u funkcijama Postavljanje, AžuriranjeKonteksta, Navigacija, Prikupljanje ili OčistiPrikupljanje. Za deklariranje varijable i njezine vrste, trebate je samo uključiti u bilo koju od ovih funkcija bilo gdje u aplikaciji. Nijedna od ovih funkcija ne stvara varijable; već samo varijable ispunjavaju vrijednostima. Varijable nikada ne deklarirate eksplicitno kao što biste to mogli u drugom programskom alatu, a svako upisivanje podrazumijeva upotrebu.
Na primjer, možda imate kontrolu gumba s kontrolom OnSelect jednakoj vrijednosti Postavljanje( X, 1 ). Ova formula uspostavlja vrijednost X kao varijablu s vrstom broja. X u formulama možete upotrebljavati kao broj, a ta varijabla ima vrijednost prazno nakon otvaranja aplikacije, ali prije odabira gumba. Odabirom gumba, vrijednosti X dajete vrijednost 1.
Ako ste dodali drugi gumb i njegovo svojstvo OnSelect postavili na Postavljanje( X, „Pozdrav” ), došlo bi do pogreške jer vrsta (tekstni niz) ne odgovara vrsti prethodne funkcije Postavljanje (broj). Sve implicitne definicije varijable moraju odgovarati vrsti. Podsjećamo, sve se to dogodilo jer ste u formulama naveli X, a ne zato što se bilo koja od tih formula zapravo izvodila.
Uklonite varijablu tako da uklonite sve funkcije Postavljanje, AžuriranjeKonteksta, Navigacija, Prikupljanje, ili OčistiPrikupljanje koje implicitno uspostavljaju varijablu. Bez ovih funkcija varijabla ne postoji. Morate ukloniti i sve reference na varijablu jer će one uzrokovati pogrešku.
Vijek trajanja i početna vrijednost varijable
Sve se varijable pohranjuju u memoriji dok je aplikacija pokrenuta. Nakon što se aplikacija zatvori, brišu se vrijednosti pohranjenih varijabli.
Sadržaj varijable možete pohraniti u izvor podataka pomoću funkcija Zakrpa ili Prikupljanje. Možete i pohraniti vrijednosti u zbirke na lokalnom uređaju pomoću funkcije SpremiPodatke.
Kada korisnik otvori aplikaciju, sve varijable sadrže početnu vrijednost prazno.
Čitanje varijabli
Naziv varijable upotrebljavate za čitanje njezine vrijednosti. Na primjer, varijablu možete definirati pomoću ove formule:
Set( Radius, 12 )
Zatim jednostavno možete upotrebljavati Polumjer na bilo kojem mjestu na kojem možete upotrijebiti broj, a on će se zamijeniti brojem 12:
Pi() * Power( Radius, 2 )
Ako kontekstnoj varijabli dodijelite isti naziv kao i globalnoj varijabli ili zbirci, prednost će imati kontekstna varijabla. Međutim, i dalje se možete pozivati na globalnu varijablu ili zbirku ako koristite operator razdvojbe[@Radius].
Upotreba kontekstne varijable
Pogledajmo kako bismo izradili naš stroj za dodavanje pomoću kontekstne varijable umjesto globalne varijable.
Način funkcioniranja kontekstnih varijabli:
- Kontekstne varijable implicitno stvarate i postavljate pomoću funkcija UpdateContext ili Navigate. Kada se aplikacija otvori, sve kontekstne varijable sadrže početnu vrijednost prazno.
- Kontekstne varijable ažurirate zapisima. U ostalim alatima za programiranje za dodjelu obično upotrebljavate znak „=”, kao u primjeru „x = 1”. Za kontekstne varijable umjesto toga upotrijebite { x: 1 }. Kada upotrebljavate kontekstnu varijablu, njezin naziv koristite izravno bez sintakse zapisa.
- Kontekstnu varijablu možete postaviti i kada upotrebljavate funkciju Navigate kako biste prikazali zaslon. Ako zaslon zamislite kao neku vrstu postupka ili potprograma, ovaj pristup nalikuje prosljeđivanju parametra u druge alate za programiranje.
- Osim za funkciju Navigate, kontekstne varijable ograničene su na kontekst jednog zaslona, po čemu su i dobile naziv. Ne možete ih upotrebljavati ili postavljati izvan ovog konteksta.
- Kontekstne varijable mogu sadržavati bilo koju vrijednost, uključujući nizove, brojeve, zapise i tablice.
Ponovno izradimo stroj za dodavanje pomoću kontekstne varijable:
Dodajte kontrolu unosa teksta pod nazivom UnosTeksta1 i dva gumba pod nazivom Gumb1 i Gumb2.
Postavite svojstvo Text gumba Button1 na „Add” i svojstvo Text gumba Button2 na „Clear”.
Da biste ažurirali tekući ukupni iznos svaki put kada korisnik odabere gumb Dodaj, postavite njegovo svojstvo OnSelect na ovu formulu:
AžuriranjeKonteksta( { TekućiUkupniIznos: TekućiUkupniIznos + UnosTeskta1 } )
Samo postojanje ove formule uspostavlja vrijednost RunningTotal kao kontekstnu varijablu koja sadrži broj zbog + operatora. Možete se pozivati na vrijednost RunningTotal bilo gdje na ovom zaslonu. Svaki put kada korisnik otvori ovu aplikaciju, RunningTotal će sadržavati početnu vrijednost prazno.
Prvi put kada korisnik odabere gumb Dodaj i pokretanja UpdateContext, vrijednost RunningTotal postavljena je na RunningTotal + TextInput1.
Da biste postavili tekući ukupni iznos na 0 svaki put kada korisnik odabere gumb Očisti, postavite njegovo svojstvo OnSelect na ovu formulu:
UpdateContext( { RunningTotal: 0 } )
Podsjećamo, funkcija UpdateContext upotrebljava se s formulom UpdateContext( { RunningTotal: 0 } ).
Dodajte kontrolu Oznaka i postavite njezino svojstvo Text na vrijednost RunningTotal.
Ova će se formula automatski ponovno izračunati i korisniku će se prikazati vrijednost RunningTotal onako kako se bude mijenjala na temelju gumba koje korisnik odabere.
Pretpregledajte aplikaciju i dobili smo stroj za dodavanje, kako smo prethodno opisali. Unesite broj u tekstni okvir i pritisnite gumb Dodaj nekoliko puta. Kada ste spremni, vratite se na doživljaj stvaranja pomoću tipke Esc.
Vrijednost kontekstne varijable možete postaviti tijekom navigacije do zaslona. To je korisno za prosljeđivanje „konteksta” ili „parametara ”s jednog zaslona na drugi. Da biste demonstrirali ovu tehniku, umetnite zaslon, umetnite gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
Navigate( Screen1, None, { RunningTotal: -1000 } )
Držite tipku Alt prilikom odabira ovog gumba da biste prikazali Zaslon1 i postavili kontekstnu varijablu RunningTotal na -1000.
Da biste prikazali vrijednost kontekstne varijable, učinite nešto od sljedećeg:
Ako koristite verziju Power Apps Studio pretpregleda, na izborniku za stvaranje aplikacija odaberite Varijable.
Ako koristite klasičnu verziju Power Apps Studio, odaberite izbornik Datoteka, a zatim u lijevom oknu odaberite Varijable .
Da biste prikazali gdje je definirana i korištena kontekstna varijabla, odaberite je u odjeljku Kontekstne varijable.
Upotreba zbirke
Naposljetku, pogledajmo kako izraditi naš stroj za dodavanje pomoću zbirke. Budući da zbirka sadrži tablicu koju je lako izmijeniti, pretpostavit ćemo da ovaj stroj za dodavanje tijekom unosa pohranjuje „papirnu vrpcu” svake vrijednosti.
Način funkcioniranja zbirki:
- Stvorite i postavite zbirke pomoću funkcije OčistiPrikupljeno. Umjesto toga možete upotrebljavati funkciju Collect, no bit će potrebno dodati novu varijablu umjesto zamjene stare.
- Zbirka je vrsta izvora podataka i, shodno tome, tablica. Za pristup pojedinačnoj vrijednosti u zbirci upotrijebite funkciju First i iz zapisa rezultat izdvojite jedno polje. Ako ste upotrijebili pojedinačnu vrijednost s funkcijom ClearCollect, to će biti polje Vrijednost, kao u ovom primjeru:
First( VariableName ).Value
Ponovno izradimo naš stroj za dodavanje pomoću zbirke:
Dodajte kontrolu Unos teksta pod nazivom UnosTeksta1 i dva gumba pod nazivom Gumb1 i Gumb2.
Postavite svojstvo Text gumba Button1 na „Add” i svojstvo Text gumba Button2 na „Clear”.
Da biste ažurirali tekući ukupni iznos svaki put kada korisnik odabere gumb Dodaj, postavite njegovo svojstvo OnSelect na ovu formulu:
Collect( PaperTape, TextInput1.Text )
Samo postojanje ove formule uspostavlja vrijednost PaperTape kao zbirku koja sadrži tablicu tekstnih nizova s jednim stupcem. Možete se pozivati na vrijednost PaperTape bilo gdje u aplikaciji. Kad god korisnik otvori ovu aplikaciju, PaperTape će biti prazna tablica.
Kada se ova formula pokrene, dodaje novu vrijednost na kraju zbirke. Budući da dodajemo jedinstvenu vrijednost, funkcija Prikupljanje automatski je postavlja u tablicu s jednim stupcem, a naziv je stupca Vrijednost, koji ćete upotrijebiti kasnije.
Da biste očistili papirnu vrpcu kada korisnik odabere gumb Očisti, postavite njezino svojstvo OnSelect na ovu formulu:
Clear( PaperTape )
Da biste prikazali tekući ukupni iznos, dodajte oznaku i postavite njezino svojstvo Text na ovu formulu:
Sum( PaperTape, Value )
Da biste pokrenuli stroj za dodavanje, pritisnite tipku F5 kako biste otvorili pretpregled, unesite brojeve u kontrolu unosa teksta i odaberite gumbe.
Pritisnite tipku Esc za povratak na zadani radni prostor.
Da biste prikazali papirnu vrpcu, umetnite kontrolu Tablica podataka i postavite njeno svojstvo Items na ovu formulu:
PaperTape
U desnom oknu odaberite Uredi polja, a zatim odaberite Dodaj polje, odaberite stupac Vrijednost, a zatim odaberite Dodaj da se prikaže.
Da biste vidjeli vrijednosti u zbirci, učinite nešto od sljedećeg:
Ako koristite verziju Power Apps Studio pretpregleda, na izborniku za stvaranje aplikacija odaberite Varijable, a zatim odaberite Zbirke.
Ako koristite klasičnu verziju Power Apps Studio, na izborniku "Datoteka " odaberite "Zbirke ".
Za spremanje i dohvaćanje zbirke dodajte dvije dodatne kontrole gumba i postavite njihova svojstva na Tekst, Učitavanje i Spremanje. Postavite svojstvo OnSelect gumba Učitaj na ovu formulu:
Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )
Najprije morate očistiti zbirku jer će funkcija LoadData dodati pohranjene vrijednosti na kraj zbirke.
Postavite svojstvo OnSelect gumba Spremi na ovu formulu:
SaveData( PaperTape, "StoredPaperTape" )
Ponovno pretpregledajte tako da pritisnete tipku F5, unesite brojeve u kontrolu unosa teksta i odaberite gumbe. Odaberite gumb Spremi. Zatvorite i ponovno učitajte aplikaciju i odaberite gumb Učitaj da biste ponovno učitali zbirku.
Napomena
Funkcije SaveData i LoadData funkcioniraju na platformi Power Apps Mobile, ali ne u programu Power Apps Studio ili web-reproduktoru za Power Apps.
Napomena
Možete li nam reći više o željenim jezicima za dokumentaciju? Ispunite kratki upitnik. (imajte na umu da je upitnik na engleskom jeziku)
Ispunjavanje upitnika će trajati otprilike sedam minuta. Osobni podaci se ne prikupljaju (izjava o zaštiti privatnosti).