Napomena
Za pristup ovoj stranici potrebna je autorizacija. Možete se pokušati prijaviti ili promijeniti direktorije.
Za pristup ovoj stranici potrebna je autorizacija. Možete pokušati promijeniti direktorije.
Ako ste koristili neki drugi programski alat, poput Visual Basica ili JavaScripta, mogli biste se zapitati: Gdje su varijable? Power Apps funkcionira drugačije i treba drugačiji pristup. Umjesto da posežete za varijablom kada izrađujete aplikaciju radnog područja, zapitajte se: Što bih učinio u Excelu?
U drugim alatima možete eksplicitno izvršiti izračun i pohraniti rezultat u varijablu. Ali Power Apps i Excel automatski ponovno izračunavaju formule kako se ulazni podaci mijenjaju, tako da obično ne morate stvarati ili ažurirati varijable. Korištenjem ovog pristupa lakše stvarate, razumijete i održavate svoju aplikaciju.
Ponekad morate koristiti varijable u Power Apps, što proširuje Excelov model dodavanjem formula ponašanja. Te se formule pokreću kada, na primjer, korisnik odabere gumb. Unutar formule ponašanja često je korisno postaviti varijablu za korištenje u drugim formulama.
Općenito, izbjegavajte upotrebu varijabli. Ali ponekad vam samo varijabla omogućuje stvaranje željenog iskustva. 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 imati vrijednost, kao što je broj ili niz, ili formulu koja se temelji na vrijednostima drugih ćelija. Kada u ćeliju unesete drugu 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 primjeru ćelija A3 koristi formulu A1+A2. Ako se A1 ili A2 promijene, A3 automatski ponovno izračunava da bi prikazao promjenu. Ovo ponašanje ne zahtijeva nikakvo kodiranje izvan same formule.
U Excelu ne postoje varijable. Vrijednost ćelije s formulom mijenja se na temelju unosa, ali ne postoji način da zapamtite rezultat formule i pohranite ga u ćeliju ili bilo gdje drugdje. Ako promijenite vrijednost ćelije, može se promijeniti cijeli tablični dokument i izgubiti sve prethodno izračunate vrijednosti. Možete kopirati i zalijepiti ćelije, ali to je ručno i nije moguće s formulama.
Power Apps
Aplikacije koje stvorite u Power Apps funkcioniraju slično kao Excel. Umjesto ažuriranja ćelija, dodajete kontrole bilo gdje na zaslonu i imenujete ih za korištenje u formulama.
Na primjer, možete kopirati ponašanje programa Excel u aplikaciji dodavanjem kontrole Oznaka pod nazivom Oznaka1 i dvije kontrole za unos teksta pod nazivom TextInput1 i TextInput2. Ako svojstvo Text postavite za Label1 na TextInput1 + TextInput2, uvijek će automatski prikazati zbroj brojeva u TextInput1 i TextInput2 .
Primijetite da je odabrana kontrola Label1 koja prikazuje njezinu formulu Tekst u traci formule pri vrhu zaslona. Formula TextInput1 + TextInput2 stvara ovisnost između tih kontrola, baš kao i ovisnosti između ćelija u radnoj knjizi programa Excel. Promijenimo vrijednost kontrole TextInput1:
Formula za oznaku1 automatski ponovno izračunava i prikazuje novu vrijednost.
U Power Apps koristite formule za postavljanje ne samo glavne vrijednosti kontrole, već i svojstava kao što je oblikovanje. U sljedećem primjeru formula za svojstvo Boja oznake automatski prikazuje negativne vrijednosti crvenom bojom. Funkcija If izgleda poznato iz programa Excel:
If( Value(Label1.Text) < 0, Red, Black )
Formule koristite za mnoge scenarije:
- Kada je GPS vašeg uređaja uključen, kontrola karte prikazuje vašu trenutnu lokaciju s formulom koja koristi Location.Latitude i Location.Longitude. Dok se krećete, karta automatski prati vašu lokaciju.
- Drugi korisnici ažuriraju izvore podataka. Na primjer, drugi korisnici u vašem timu mogu ažurirati stavke na popisu. Kada osvježite izvor podataka, sve ovisne formule automatski se ponovno izračunavaju da bi se prikazali ažurirani podaci. Možete, primjerice, postaviti svojstvo Stavke galerije na formulu Filtar( SharePointList ), koja automatski prikazuje 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 koristili druge alate za programiranje, razmislite o tome koliko bi vam koda trebalo za ove primjere. U Visual Basicu napisali biste rukovatelj događajem za događaj promjene na svakoj kontroli unosa teksta. Kôd za izračun u svakom od njih je suvišan i može biti nesinkroniziran ili biste trebali napisati zajednički potprogram. U usluzi Power Apps sve to radite pomoću formule s jednim redom.
- Da biste vidjeli odakle dolazi tekst oznake1, točno znate gdje trebate tražiti: formulu u svojstvu Tekst . Ne postoji drugi način za promjenu teksta ove kontrole. U tradicionalnom alatu za programiranje, bilo koji rukovatelj događajima ili potprogram može promijeniti vrijednost oznake, s bilo kojeg mjesta u programu. Zbog toga je teško pratiti kada i gdje se varijabla promijenila.
- Ako promijenite kontrolu klizača, a zatim se predomislite, možete vratiti klizač na izvornu vrijednost. Kao da se ništa nije promijenilo: aplikacija prikazuje iste kontrolne vrijednosti kao i prije. Nema posljedica za eksperimentiranje i pitanje "što ako", baš kao u Excelu.
Općenito, ako možete učiniti nešto s formulom, bolje vam je. Neka motor formule u servisu Power Apps radi umjesto vas.
Kada upotrebljavati varijable
Promijenimo naš jednostavan zbrajač da se ponaša kao staromodni stroj za zbrajanje s tekućim ukupnim brojem. Kada odaberete gumb Dodaj , dodajete broj tekućem ukupnom broju. Kada odaberete gumb Očisti, vraćate ukupni zbroj na nulu.
| 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, ručno bilježite i ažurirate tekući zbroj. Većina alata za programiranje te podatke pohranjuje u varijablu.
Ponekad vam je potrebna varijabla da bi se vaša aplikacija ponašala onako kako želite, ali ovaj pristup dolazi s upozorenjima:
- Ručno ažurirate tekući zbroj. Automatski ponovni izračun to ne radi umjesto vas.
- Ukupni zbroj ne izračunava se na temelju vrijednosti drugih kontrola. Ovisi o tome koliko puta korisnik svaki put odabere gumb Dodaj i koja je vrijednost u kontroli unosa teksta. Je li korisnik unio 77 i dvaput odabrao Dodaj ili je unio 24 i 130 za svaki dodatak? Ne možete uočiti razliku nakon što ukupan broj dosegne 154.
- Promjene ukupnog iznosa mogu proizaći iz različitih radnji. U ovom primjeru i gumbi Dodaj i Očisti ažuriraju ukupni iznos. Ako se aplikacija ne ponaša onako kako očekujete, koji gumb uzrokuje problem?
Upotreba globalne varijable
Da biste stvorili stroj za zbrajanje, potrebna vam je varijabla za zadržavanje tekućeg zbroja. Najjednostavnije varijable za korištenje u Power Apps su globalne varijable.
Način funkcioniranja globalnih varijabli:
- Postavite vrijednost globalne varijable pomoću funkcije Set . Set( MyVar, 1 ) postavlja globalnu varijablu MyVar na vrijednost 1.
- Koristite globalnu varijablu pozivajući se na naziv koji se koristi s funkcijom Set . U tom slučaju MyVar vraća 1.
- Globalne varijable mogu sadržavati bilo koju vrijednost, uključujući nizove, brojeve, zapise i tablice.
Ponovno izgradite stroj za dodavanje pomoću globalne varijable:
Dodajte kontrolu za unos teksta pod nazivom TextInput1 i dva gumba pod nazivom Gumb1 i Gumb2.
Postavite svojstvo Tekst za Button1 na "Dodaj", a svojstvo Text za Button2 na "Clear".
Da biste ažurirali tekući ukupni zbroj kada korisnik odabere gumb Dodaj , postavite njegovo svojstvo OnSelect na ovu formulu:
Set( RunningTotal, RunningTotal + TextInput1 )
Ova formula stvara RunningTotal kao globalnu varijablu koja sadrži broj zbog operatora + . Referenca RunningTotal bilo gdje u aplikaciji. Kada korisnik otvori aplikaciju, RunningTotal ima početnu vrijednost prazno.
Kada korisnik prvi put odabere gumb Dodaj i postavi se pokreće, RunningTotal postavlja se na vrijednost RunningTotal + TextInput1.
Da biste postavili ukupni zbroj na 0 kada korisnik odabere gumb Očisti, postavite njegovo svojstvo OnSelect na ovu formulu:
Set( Ukupno, 0 )
Dodajte kontrolu Oznaka ... i postavite njezino svojstvo Tekst na RunningTotal.
Ova formula automatski ponovno izračunava i prikazuje korisniku vrijednost RunningTotal kako se mijenja na temelju gumba koje korisnik odabere.
Pregledajte aplikaciju. Unesite broj u tekstni okvir i odaberite gumb Dodaj nekoliko puta. Kada budete spremni, vratite se na autorsko iskustvo pomoću tipke Esc .
Da biste prikazali vrijednost globalne varijable, odaberite Varijable na izborniku za stvaranje aplikacije.
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:
| Vrsta varijable | Scope | Opis | Funkcije koje uspostavljaju |
|---|---|---|---|
| Globalne varijable | Aplikacija | Koristite globalne varijable za držanje broja, tekstualnog niza, logične vrijednosti, zapisa, tablice ili druge vrijednosti na koju se pozivate bilo gdje u aplikaciji. | Skup |
| Varijable konteksta | Zaslon | Koristite kontekstne varijable za prosljeđivanje vrijednosti na zaslon, kao što su parametri na drugim jezicima. Pozivate se na njih samo s jednog zaslona. |
UpdateContext Ploviti |
| Zbirke | Aplikacija | Koristite zbirke za držanje tablice na koju se pozivate bilo gdje u aplikaciji. Možete promijeniti sadržaj tablice i spremiti je na lokalni uređaj za kasniju upotrebu. |
Skupljati ClearCollect |
Stvaranje i uklanjanje varijabli
Varijable se stvaraju implicitno kada se pojave u funkciji Set, UpdateContext, Navigate, Collect ili ClearCollect . Da biste deklarirali varijablu i njezinu vrstu, samo je uključite u bilo koju od ovih funkcija bilo gdje u aplikaciji. Ove funkcije ne stvaraju varijable; oni samo ispunjavaju varijable vrijednostima. Nikada ne deklarirate varijable eksplicitno kao što biste mogli u drugom programskom alatu, a svo tipkanje je implicitno iz upotrebe.
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 koristite u formulama kao broj, a ta varijabla ima vrijednost prazno nakon otvaranja aplikacije, ali prije nego što odaberete gumb. Odabirom gumba, vrijednosti X dajete vrijednost 1.
Ako dodate još jedan gumb i postavite njegovo svojstvo OnSelect na Set( X, "Hello" ), dolazi do pogreške jer se vrsta (tekstni niz) ne podudara s vrstom u prethodnom skupu (broj). Sve implicitne definicije varijable moraju odgovarati vrsti. Opet, sve se to događa zato što spominjete X u formulama, a ne zato što se bilo koja od tih formula zapravo pokreće.
Uklonite varijablu uklanjanjem svih funkcija Set, UpdateContext, Navigate, Collect ili ClearCollect koje implicitno uspostavljaju varijablu. Bez ovih funkcija varijabla ne postoji. Također uklonite sve reference na varijablu jer uzrokuju pogrešku.
Vijek trajanja i početna vrijednost varijable
Varijable ostaju u memoriji dok je aplikacija pokrenuta. Kada se aplikacija zatvori, vrijednosti u varijablama se gube.
Pohranite sadržaj varijable u izvor podataka pomoću funkcija Patch ili Collect . Pohranite vrijednosti u zbirke na lokalnom uređaju pomoću funkcije SaveData .
Kada korisnik otvori aplikaciju, sve varijable počinju s početnom vrijednošću prazno.
Čitanje varijabli
Upotrijebite naziv varijable da biste pročitali njezinu vrijednost. Na primjer, definirajte varijablu s ovom formulom:
Set( Radius, 12 )
Zatim koristite Radijus gdje god koristite broj, a on se zamjenjuje s 12:
Pi() * Power( Radius, 2 )
Ako kontekstnoj varijabli dodijelite isti naziv kao i globalnoj varijabli ili zbirci, prednost će imati kontekstna varijabla. Možete se pozvati na globalnu varijablu ili zbirku pomoću operatora razdvajanja[@Radius].
Rezervirani nazivi varijabli
Nemojte koristiti nijedan od sljedećih naziva varijabli. Ti su nazivi svojstva aplikacije i njihovo korištenje može uzrokovati sukobe naziva varijabli koji rezultiraju neočekivanim ponašanjem aplikacije.
- Aktivni zaslon
- DizajnVisina
- Širina dizajna
- Visina
- MinVisinaZaslona
- MinŠirina zaslona
- Prijelomne točke veličine
- Studijska verzija
- TestCaseId
- Testiranje
- TestSuiteId
- Tema
- Širina
Upotreba kontekstne varijable
Pogledajmo kako stvarate stroj za zbrajanje pomoću kontekstne varijable umjesto globalne varijable.
Kako funkcioniraju varijable konteksta
- Implicitno uspostavljate i postavljate kontekstne varijable pomoću funkcije UpdateContext ili Navigate . Kada se aplikacija pokrene, početna vrijednost svake kontekstne varijable je prazna.
- Kontekstne varijable ažurirate zapisima. U drugim programskim alatima obično koristite "=" za dodjelu, poput "x = 1". Za kontekstne varijable umjesto toga upotrijebite { x: 1 }. Kada upotrebljavate kontekstnu varijablu, njezin naziv koristite izravno bez sintakse zapisa.
- Također možete postaviti kontekstnu varijablu kada koristite funkciju Navigate za prikaz zaslona. Ako o zaslonu razmišljate kao o nekoj vrsti postupka ili potprograma, ovaj pristup je poput prosljeđivanja parametara u drugim programskim alatima.
- Osim za Navigate, kontekstne varijable ograničene su na kontekst jednog zaslona, gdje su i dobile ime. Ne možete ih koristiti ili postaviti izvan ovog konteksta.
- Kontekstne varijable mogu sadržavati bilo koju vrijednost, uključujući nizove, brojeve, zapise i tablice.
Ponovno izgradite stroj za dodavanje pomoću kontekstne varijable:
Dodajte kontrolu unosa teksta pod nazivom UnosTeksta1 i dva gumba pod nazivom Gumb1 i Gumb2.
Postavite svojstvo Tekst za Button1 na "Dodaj", a svojstvo Text za Button2 na "Clear".
Da biste ažurirali tekući zbroj svaki put kada korisnik odabere gumb Dodaj , postavite njegovo svojstvo OnSelect na ovu formulu:
UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )
Ova formula uspostavlja RunningTotal kao kontekstnu varijablu koja sadrži broj zbog operatora + . RunningTotal se pozivate bilo gdje na ovom zaslonu. Kada korisnik otvori aplikaciju, RunningTotal ima početnu vrijednost prazno.
Kada korisnik prvi put odabere gumb Dodaj i pokrene se UpdateContext , RunningTotal postavlja se na vrijednost RunningTotal + TextInput1.
Da biste postavili tekući zbroj na 0 svaki put kada korisnik odabere gumb Očisti , postavite njegovo svojstvo OnSelect na ovu formulu:
UpdateContext( { RunTotal: 0 } )
Ponovno upotrijebite UpdateContext s formulom UpdateContext( { RunningTotal: 0 } ).
Dodajte kontrolu Oznaka ... i postavite njezino svojstvo Tekst na 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.
Pregledajte aplikaciju. Unesite broj u tekstni okvir i odaberite gumb Dodaj nekoliko puta. Kada budete spremni, vratite se na autorsko iskustvo pomoću tipke Esc .
Postavite vrijednost kontekstne varijable dok se krećete do zaslona za prijenos "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:
Navigacija( Zaslon 1, Ništa, { Ukupno u pokretanju: -1000 } )
Držite pritisnutu tipku Alt dok odabirete ovaj gumb za prikaz Screen1 i postavite 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, odaberite Varijable u izborniku za stvaranje aplikacije.
Ako koristite klasičnu verziju Power Apps Studio, odaberite izbornik Datoteka , a zatim odaberite Varijable u lijevom oknu.
Da biste pokazali gdje je kontekstna varijabla definirana i korištena, odaberite je u odjeljku Kontekstne varijable.
Upotreba zbirke
Stvorimo stroj za zbrajanje pomoću zbirke. Budući da zbirka sadrži tablicu koju je lako mijenjati, ovaj stroj za zbrajanje čuva "papirnatu vrpcu" svake vrijednosti dok je unosite.
Kako funkcioniraju zbirke
- Stvorite i postavite zbirke pomoću funkcije ClearCollect . Umjesto toga možete koristiti funkciju Collect , ali ona zahtijeva drugu varijablu umjesto zamjene stare.
- Zbirka je vrsta izvora podataka i tablice. Da biste dobili jednu vrijednost u zbirci, upotrijebite funkciju First i dohvatite jedno polje iz rezultirajućeg zapisa. Ako koristite jednu vrijednost s ClearCollect, to je polje Vrijednost , kao u ovom primjeru:
First(VariableName). Vrijednost
Stvorite stroj za dodavanje pomoću zbirke:
Dodajte kontrolu za unos teksta pod nazivom TextInput1 i dva gumba pod nazivomButton1 i Button2 .
Postavite svojstvo Tekst za Button1 na "Dodaj", a svojstvo Text za Button2 na "Clear".
Da biste ažurirali tekući zbroj 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 papirnatu traku kada korisnik odabere gumb Očisti , postavite njegovo svojstvo OnSelect na ovu formulu:
Clear (PaperTape)
! [Svojstvo OnSelect Clear but1. Da biste pokrenuli stroj za dodavanje, odaberite F5 da biste otvorili Pretpregled, unesite brojeve u kontrolu za unos teksta i odaberite gumbe.
oznaka.](mediji/rad s varijablama/papertape-3.png)Da biste pokrenuli stroj za dodavanje, pritisnite tipku F5 kako biste otvorili pretpregled, unesite brojeve u kontrolu unosa teksta i odaberite gumbe.
Da biste se vratili na zadani radni prostor, odaberite Esc.
Za prikaz papirnate vrpce umetnite kontrolu Tablica podataka i postavite njezine **[Stavke](kontrole/svojstva1. Da biste vidjeli vrijednosti u svojoj kolekciji, učinite nešto od sljedećeg:
Ako koristite verziju pretpregleda Power Apps Studio, odaberite Varijable na izborniku za izradu aplikacija, a zatim odaberite Zbirke.
Ako koristite klasičnu verziju Power Apps Studio, odaberite Zbirke na izborniku Datoteka . Da biste vidjeli vrijednosti u svojoj kolekciji, učinite nešto od sljedećeg:
Ako koristite verziju Power Apps Studio pretpregleda, odaberite Varijable na izborniku za stvaranje aplikacije, a zatim odaberite Zbirke.
Ako koristite klasičnu verziju, odaberite Zbirke Power Apps Studiona izborniku Datoteka .
Da biste pohranili i preuzeli svoju kolekciju, dodajte još dvije kontrole gumba i postavite njihova svojstva teksta na Učitaj i Spremi. 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 pregledajte tako da odaberete 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 rade na mobilnom uređaju, ali ne i na web-playeru Power Apps . Power Apps Studio Power Apps