Napomena
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da se prijavite ili da promenite direktorijume.
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da promenite direktorijume.
Odnosi se na: Canvas aplikacije
Aplikacije zasnovane na modelu
Pruža informacije o trenutno pokrenutoj aplikaciji i kontrolu nad njenim ponašanjem.
Opis
Kao kontrola, objekat App pruža svojstva koja identifikuju koji se ekran prikazuje i koji traže od korisnika da sačuva promene tako da se ne izgube. Svaka aplikacija ima objekat App.
Možete da pišete formule za neka svojstva objekta App. Na vrhu okna Prikaz stabla, izaberite objekat App kao što biste izabrali bilo koju drugu kontrolu ili ekran. Prikažite i uredite jedno od svojstava objekta tako što ćete ga odabrati na padajućoj listi na levoj strani trake za formule.
Svojstvo ActiveScreen
Svojstvo ActiveScreen identifikuje ekran koji se prikazuje.
Ova osobina vraća objekat ekrana. Koristite ga za referenciranje osobina trenutno prikazanog ekrana, kao što je ime sa formulom App.ActiveScreen.Name. Takođe možete uporediti ovu osobinu sa drugim objektom ekrana, kao što je formula za poređenje App.ActiveScreen = Screen2 da biste testirali da li je Screen2 trenutno prikazan ekran.
Koristite funkciju Back ili Navigate za promenu ekrana koji se prikazuje.
BackEnabled osobina
Svojstvo BackEnabled menja način na koji aplikacija reaguje na gest unazad uređaja (prevucite ili koristite hardversko dugme za povratak na Android uređajima, prevucite prstom sa leve strane na iOS uređajima) kada se pokreće u mobilnom uređaju Power Apps . Kada je omogućen, gest nazad uređaja se vraća na ekran koji je nedavno prikazan, što je slično formuli za povratak . Kada je onemogućen, gest nazad uređaja vraća korisnika na listu aplikacija.
Svojstva ConfirmExit
Niko ne želi da izgubi nesačuvane promene. Koristite svojstva ConfirmExit i ConfirmExitMessage kako biste upozorili korisnika pre nego što zatvori vašu aplikaciju.
Belešku
- ConfirmEkit ne radi u aplikacijama koje su ugrađene u, na primer, Power BI i SharePoint.
- Sada, ove osobine mogu da upućuju na kontrole samo na prvom ekranu ako je omogućena funkcija pregleda odloženog učitavanja (što je podrazumevano za nove aplikacije). Ako se navode reference, Power Apps Studio ne prikazuje grešku, ali rezultujuća objavljena aplikacija se ne otvara u aplikaciji Power Apps Mobile ili pregledaču. Aktivno radimo na uklanjanju ovog ograničenja. U međuvremenu možete da isključite opciju Odloženo otpremanje u meniju Postavke>Predstojeće funkcije (u okviru stavke Pregled).
ConfirmExit
ConfirmExit je Booleova osobina koja, kada je true, otvara dijalog za potvrdu pre nego što se aplikacija zatvori. Podrazumevana vrednost ovog svojstva je netačno i ne prikazuje se nijedan dijalog.
U situacijama kada korisnik može imati nesačuvane izmene u aplikaciji, koristite ovu osobinu da prikažete dijalog za potvrdu pre nego što izađete iz aplikacije. Koristite formulu koja može da proveri promenljive i kontroliše svojstva (na primer, svojstvo Unsaved kontrole obrazac za uređivanje).
Dijalog za potvrdu pojavljuje se u svakoj situaciji u kojoj se podaci mogu izgubiti, kao u sledećim primerima:
- Pokrenuta je funkcija Exit.
- Ako je aplikacija pokrenuta u pregledaču:
- Zatvaranje pregledača ili kartice pregledača u kojoj je aplikacija pokrenuta.
- Odabir dugmeta za povratak u pregledaču.
- Pokrenite funkciju Launch čije svojstvo LaunchTarget ima vrednost Self.
- Ako je aplikacija pokrenuta u Power Apps Mobile (iOS ili Android):
- Prevlačenje da biste se prebacili na drugu aplikaciju na platformi Power Apps Mobile.
- Odabir dugmeta za povratak na Android uređaju.
- Pokrenite funkciju Launch da biste pokrenuli drugu aplikaciju sa podlogom.
Tačan izgled dijaloga za potvrdu može se razlikovati ovisno o uređajima i verzijama usluge Power Apps.
Dijalog za potvrdu se ne prikazuje u programu Power Apps Studio.
ConfirmExitMessage
Podrazumevano, dijalog za potvrdu prikazuje generičku poruku, kao što je „Možda imate nesačuvane promene.“ na jeziku korisnika.
Koristite ConfirmExitMessage da u dijalogu za potvrdu navedete prilagođenu poruku. Ako je ovo svojstvo prazno, koristi se podrazumevana vrednost. Prilagođene poruke se skraćuju po potrebi da bi se uklopile u dijalog za potvrdu, pa zadržite poruku do najviše nekoliko redova.
U pregledaču se dijalog za potvrdu može prikazati sa generičkom porukom iz pregledača.
Belešku
Objekat aplikacije ima još dva svojstva OnMessage
i BackEnabled
koja su eksperimentalna. Ova svojstva će na kraju biti uklonjena iz objekta aplikacije. Preporučujemo da ne koristite ova svojstva u vašem proizvodnom okruženju.
Primer
Kreirajte aplikaciju koja sadrži dve kontrole obrasca, AccountForm i ContactForm.
Podesite svojstvo ConfirmExit objekta App na ovaj izraz:
AccountForm.Unsaved Or ContactForm.Unsaved
Ovaj dijalog se prikazuje ako korisnik promeni podatke u bilo kom obrascu, a zatim pokušava da zatvori aplikaciju bez čuvanja tih promena.
Podesite svojstvo ConfirmExitMessage objekta App prema ovoj formuli:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
Ovaj dijalog se prikazuje ako korisnik promeni podatke u obrascu Poslovni kontakt, a zatim pokušava da zatvori aplikaciju bez čuvanja tih promena.
Podesite instrumentaciju ključ za Application Insights
Da biste izvozili sistemski generisane dnevnike Application Insights aplikacija, potrebno je da podesite ključ instrumentacije za vašu aplikaciju platna.
- Otvorite aplikaciju za uređivanje Power Apps Studio.
- Izaberite objekat aplikacije u levom prikazu stabla navigacije.
- Unesite ključ instrumentacije u oknu svojstava.
Ako se podaci ne šalju u App Insights, obratite se administratoru Power Platform i proverite da li je App Insights onemogućen na nivou stanara.
Svojstvo „Formulas“
Koristite imenovane formule u svojstvu Formulas da biste definisali formulu koja se može ponovo koristiti u celoj aplikaciji.
U Power Apps, formule određuju vrednost kontrolnih svojstava. Na primer, da biste dosledno podesili boju pozadine u aplikaciji, svojstvo Fill za svaku možete da postavite na uobičajenu formulu:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
Sa toliko mesta na kojima se ova formula može pojaviti, postaje zamorno i podložno greškama da ih sve ažurira ako je potrebna promena. Umesto toga, možete da kreirate globalnu promenljivu u OnStart da biste jednom podesili boju, a zatim ponovo koristili vrednost u celoj aplikaciji:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Iako je ova metoda bolja, ona zavisi i od pokretanja OnStart pre nego što se utvrdi vrednost za BGColor. BGColor takođe može biti manipulisan u nekom uglu aplikacije za koju proizvođač nije svestan, promena koju je napravio neko drugi, a to može biti teško pronaći.
Imenovane formule pružaju alternativu. Kao što obično pišemo svojstvo-kontrole = izraz, tako možemo da napišemo i ime = izraz, a zatim da ponovo koristimo ime u celoj aplikaciji da bismo zamenili izraz. Definicije ovih formula se rade u svojstvu Formulas:
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Prednosti korišćenja imenovanih formula uključuju:
- Vrednost formule je uvek dostupna. Ne postoji zavisnost od vremenskog rasporeda, ne postoji OnStart koji mora da se pokrene prvi pre nego što se vrednost postavi, nema vremena u kojem je vrednost formule netačna. Imenovane formule mogu da se odnose jedna na drugu bilo kojim redosledom, sve dok ne kreiraju kružnu referencu. Mogu se izračunavati paralelno.
- Vrednost formule je uvek ažurna. Formula može da izvrši izračunavanje koje zavisi od svojstava kontrole ili zapisa baze podataka, a kako se menjaju, vrednost formule se automatski ažurira. Nije potrebno da ručno ažurirate vrednost kao što to radite sa promenljivom. A formule se ponovo izračunavaju samo kada je to potrebno.
- Definicija formule je nepromenljiva. Definicija u svojstvu Formulas je jedan izvor istine i vrednost se ne može promeniti negde drugde u aplikaciji. Sa promenljivim, moguće je da neki kod neočekivano menja vrednost, ali ova situacija koja je teška za otklanjanje grešaka nije moguća sa imenovanim formulama.
- Izračunavanje formule se može odložiti. Pošto je njegova vrednost nepromenljiva, uvek se može izračunati kada je to potrebno, što znači da ne mora da se izračunava dok nije potrebna. Vrednosti formule koje se ne koriste dok se ne prikaže screen2 aplikacije ne moraju biti izračunate dok screen2 ne bude vidljiv. Odlaganje ovog posla može poboljšati vreme učitavanja aplikacije. Imenovane formule su deklarativne i pružaju mogućnosti sistemu da optimizuje način i kada će biti izračunat.
- Imenovane formule su Excel koncept. Power Fx koristi Excel koncepte tamo gde je to moguće pošto toliko ljudi dobro poznaje Excel. Imenovane formule su ekvivalent imenovanih ćelija i imenovanih formula u programu Excel, kojima se upravlja pomoću upravljača imenom. Oni se automatski preračunavaju kao ćelije tabele i kontrolne osobine.
Imenovane formule se definišu, jedna za drugom u svojstvu Formulas, a svaka se završava tačkom i zarezom. Tip formule se zaključuje iz tipova elemenata unutar formule i kako se koriste zajedno. Na primer, ove imenovane formule preuzimaju korisne informacije o trenutnom korisniku iz usluge Dataverse:
UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone',
'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
UserInfo.'Main Phone' );
Ako je potrebno ažurirati formulu za UserTitle, to se može lako uraditi na ovoj jednoj lokaciji. Ako UserPhone nije potreban u aplikaciji, onda ovi pozivi u tabeli Korisnici u usluzi Dataverse nisu upućeni. Ne postoji kazna za uključivanje definicije formule koja se ne koristi.
Neka ograničenja imenovanih formula:
- Oni ne mogu da koriste funkcije ponašanja ili da na neki drugi način izazovu bočne efekte unutar aplikacije.
- Ne mogu da kreiraju kružnu referencu. Imati a = b; i b = a; u istoj aplikaciji nije dozvoljeno.
Korisnički definisane funkcije
Važno
- Korisnički definisane funkcije su eksperimentalne.
- Eksperimentalne karakteristike nisu namenjene za upotrebu u proizvodnji i možda nisu potpune. Ove funkcije su dostupne pre zvaničnog izdanja, tako da možete dobiti rani pristup i pružiti povratne informacije. Još informacija: Objašnjenje eksperimentalnih, preliminarnih i povučenih funkcija aplikacijama sa podlogom
- Ponašanje koje ovaj članak opisuje je dostupno samo kada je uključena eksperimentalna funkcija Korisnički definisane funkcije u Podešavanjima > Predstojeće funkcije > Eksperimentalno (podrazumevano je isključeno).
- Vaše povratne informacije su nam dragocene. Javite nam šta mislite na forumu Power Apps zajednice eksperimentalnih funkcija.
Power Fx uključuje dugu listu ugrađenih funkcija, kao što su Ako, Tekst i Set. Korisnički definisane funkcije omogućavaju vam da napišete sopstvene funkcije koje uzimaju parametre i vraćaju vrednost, baš kao što to rade ugrađene funkcije. Korisnički definisane funkcije možete zamisliti kao proširenje imenovanih formula koje dodaju parametre i podržavaju formule ponašanja.
Na primer, možete definisati imenovanu formulu koja vraća beletristiku iz biblioteke:
Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
{ Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];
LibraryFiction = Filter( Library, Genre = "Fiction" );
Bez parametara, morali bismo da definišemo odvojene imenovane formule za svaki žanr. Ali umesto toga, hajde da parametriziramo našu imenovanu formulu:
LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );
LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );
Sada možemo pozvati LibraryGenre( "Fiction" )
, LibraryGenre( "Reference" )
, ili filtrirati na drugim žanrovima sa jednom korisnički definisanom funkcijom.
Sintaksa je:
FunctionName( [ ParameterName1: ParameterTipe1 [, ParameterName2: ParameterTipe2 ... ] ]): ReturnTipe = Formula;
- FunctionName – Obavezno. Ime funkcije definisane od strane korisnika.
- ParameterNames – Opciono. Ime parametra funkcije.
- ParameterTypes – Opciono. Ime tipa, bilo ugrađenog imena tipa podataka, imena izvora podataka ili tipa definisanog funkcijom Tipe .
- ReturnType – Obavezno. Tip povratne vrednosti iz funkcije.
- Formula - Obavezno. Formula koja izračunava vrednost funkcije na osnovu parametara.
Svaki parametar i izlaz iz funkcije definisanja korisnika moraju biti otkucani. U ovom primeru, SelectedGenre: Text
definiše prvi parametar za našu funkciju da bude tipa Tekst i predstavlja ime parametra SelectedGenre
koji se koristi u telu za operaciju Filter. Pogledajte Tipovi podataka za podržana imena tipova. Funkcija Type se koristi za kreiranje agregatnog tipa za našu biblioteku, tako da možemo vratiti tabelu knjiga iz naše funkcije.
Definisali LibraryType
smo kao množinu tabele zapisa tipa. Ako želimo da prenesemo jednu knjigu funkciji, možemo izvući tip zapisa za ovu tabelu pomoću funkcije RecordOf:
BookType := Type( RecordOf( LibraryType ) );
IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);
Usklađivanje zapisa za parametre funkcije je čvršće nego što je u drugim delovima Power Fx. Polja vrednosti zapisa moraju biti odgovarajući podskup definicije tipa i ne mogu uključivati dodatna polja. Na primer, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" )
će dovesti do greške.
Napomena, rekurzija još nije podržana od strane korisnički definisanih funkcija.
Ponašanje korisnički definisanih funkcija
Imenovane formule i većina korisnički definisanih funkcija ne podržavaju funkcije ponašanja sa neželjenim efektima, kao što su Set ili Notifi. Generalno, najbolje je da izbegnete ažuriranje stanja ako možete, umesto da se oslanjate na funkcionalne programske obrasce i omogućavate Power Fx automatsko preračunavanje formula po potrebi. Ali, postoje slučajevi u kojima je to neizbežno. Da biste uključili logiku ponašanja u korisnički definisanu funkciju, umotajte telo u kovrčave zagrade:
Spend( Amount: Number ) : Void = {
If( Amount > Savings,
Error( $"{Amount} is more than available savings" ),
Set( Savings, Savings - Amount );
Set( Spent, Spent + Amount)
);
}
Sada možemo da pozovemo Spend( 12 )
da proverimo da li imamo 12 u našoj štednji, i ako je tako, da ga zadužimo za 12 i dodamo 12 u promenljivu Spent Tip povratka ove funkcije je Void jer ne vraća vrednost.
Sintaksa funkcije ponašanja koju je korisnik definisao je:
FunctionName( [ ParameterName1: ParameterTipe1 [, ParameterName2:ParameterTipe2 ... ] ] : ReturnTipe = { Formula1[ ; Formula2 ... ] };
- FunctionName – Obavezno. Ime funkcije definisane od strane korisnika.
- ParameterNames – Opciono. Ime parametra funkcije.
- ParameterTypes – Opciono. Ime tipa, bilo ugrađenog imena tipa podataka, imena izvora podataka ili tipa definisanog funkcijom Tipe.
- ReturnType – Obavezno. Tip povratne vrednosti iz funkcije. Koristite Void ako funkcija ne vraća vrednost.
- Formule – Obavezno. Formula koja izračunava vrednost funkcije na osnovu parametara.
Kao i kod svih Power Fx formula, izvršenje se ne završava kada se naiđe na grešku. Nakon što je pozvana funkcija Greška , funkcija Ako sprečava promene u štednji i potrošenom da se desi. Funkcija IfError se takođe može koristiti da spreči dalje izvršenje nakon greške. Iako vraća Void, formula i dalje može da vrati grešku ako postoji problem.
Korisnički definisani tipovi
Važno
- Korisnički definisani tipovi su eksperimentalna karakteristika.
- Eksperimentalne karakteristike nisu namenjene za upotrebu u proizvodnji i možda nisu potpune. Ove funkcije su dostupne pre zvaničnog izdanja, tako da možete dobiti rani pristup i pružiti povratne informacije. Još informacija: Objašnjenje eksperimentalnih, preliminarnih i povučenih funkcija aplikacijama sa podlogom
- Ponašanje koje ovaj članak opisuje je dostupno samo kada je uključena eksperimentalna funkcija Korisnički definisani tipovi u Podešavanjima > Predstojeće funkcije > Eksperimentalno (podrazumevano je isključena).
- Vaše povratne informacije su nam dragocene. Javite nam šta mislite na forumu Power Apps zajednice eksperimentalnih funkcija.
Imenovane formule mogu se koristiti sa funkcijom Type za kreiranje korisnički definisanih tipova. Koristite :=
umesto da =
definišete korisnički definisani tip, na primer Book := Type( { Title: Text, Author: Text } )
. Pogledajte funkciju Type za više informacija i primera.
Svojstvo „OnError“
Koristite OnError da preduzmete akciju kada se greška dogodi bilo gde u aplikaciji. Pruža globalnu priliku da presretne baner greške pre nego što se prikaže krajnjem korisniku. Takođe se može koristiti za evidentiranje greške pomoću funkcije Trace ili za pisanje u bazu podataka ili veb-uslugu.
U aplikacijama Canvas, rezultat svake evaluacije formule se proverava za grešku. Ako se naiđe na grešku, OnError se procenjuje sa istim FirstError i AllErrors promenljivim opsega koje bi se koristile ako je cela formula bila umotana u funkciju IfError.
Ako je OnError prazno, prikazuje se podrazumevani baner sa porukom greške FirstError.Message. Definisanje formule OnError zamenjuje ovo ponašanje omogućavajući autoru da rukuje izveštavanjem o greškama onako kako mu odgovara. Podrazumevano ponašanje se može zahtevati u događaju OnError tako što ćete ponovo izbaciti grešku funkcijom Error. Koristite pristup ponovnog bacanja ako se neke greške filtriraju ili rukuju na drugačiji način, dok druge treba proći.
OnError ne može da zameni grešku u proračunima na način na koji IfError može. Ako se pozove OnError , greška se već dogodila i već je obrađena kroz proračune formule kao što je IfError; OnError kontroliše samo izveštavanje o greškama.
OnError formule se procenjuju istovremeno i moguće je da se njihova procena može preklapati sa obradom drugih grešaka. Na primer, ako postavite globalnu promenljivu povrh događaja OnError i kasnije je pročitate u istoj formuli, vrednost se možda promenila. Koristite funkciju With da biste kreirali imenovanu vrednost koja je lokalna za formulu.
Iako OnError svaku grešku obrađuje pojedinačno, podrazumevani baner greške se možda neće pojaviti za svaku grešku pojedinačno. Da bi se izbeglo previše banera grešaka prikazanih u isto vreme, isti baner greške neće biti ponovo prikazan ako je nedavno prikazan.
Primer
Razmotrite kontrolu Label i kontrolu Slider koje su povezane formulom:
Label1.Text = 1/Slider1.Value
Podrazumevana vrednost klizača je 50. Ako se klizač pomeri na 0, Label1 neće pokazati vrednost, a prikazuje se i baner sa greškom:
Pogledajmo detaljno šta se desilo:
- Korisnik je pomerio klizač nalevo, a svojstvo Slide1.Value je promenjeno u 0.
- LabelKSNUMKS.Tekt je automatski preispitan. Došlo je do deljenja nulom, što je izazvalo grešku.
- Ne postoji IfError u ovoj formuli. Izračunavanje formule vraća grešku deljenja nulom.
- Label1.Text ne može da prikaže ništa za ovu grešku, tako da prikazuje prazno stanje.
- OnError se poziva. Pošto nema rukovaoca, prikazuje se standardni baner greške sa informacijama o grešci.
Ako je potrebno, mogli bismo da izmenimo i formulu na Label1.Text = IfError( 1/Slider1.Value, 0 )
. Korišćenje IfError će rezultirati bez greške ili banera greške. Ne možemo da promenimo vrednost greške iz OnError pošto se u tom trenutku greška već dogodila, samo je pitanje kako će biti prijavljena.
Ako dodamo rukovaoca OnError , to nema uticaja pre korak KSNUMKS, ali može uticati na to kako se greška prijavljuje:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
Sa ovim rukovaocem OnError-a , iz perspektive korisnika aplikacije, neće biti nikakve greške. Ali greška će biti dodata u trag monitora, zajedno sa izvorom informacija o grešci iz FirstError:
Ako smo takođe želeli da pored praćenja prikažemo isti podrazumevani baner greške, možemo ponovo da prikažemo grešku pomoću funkcije Error nakon poziva Trace, kao da funkcija Trace nije bila tamo:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
Svojstvo OnStart
Belešku
Korišćenje svojstva OnStart može dovesti do problema sa performansama prilikom učitavanja aplikacije. U procesu smo kreiranja alternativa iz prva dva razloga za korišćenje svojstva – keširanje podataka i podešavanje globalnih promenljivih. Već smo kreirali alternativu za definisanje prvog ekrana koji će biti prikazan pomoću funkcije Navigate. U zavisnosti od vašeg konteksta, ovo svojstvo može biti podrazumevano onemogućeno. Ako ga ne vidite i morate da ga koristite, pogledajte napredne postavke aplikacije da biste ga omogućili. Takođe možete koristiti svojstvo ekrana OnVisible. Po defaultu, kada je omogućeno pravilo OnStart koje ne blokira, omogućava funkciji OnStart da radi istovremeno sa drugim pravilima aplikacije. Dakle, ako su varijable navedene u drugim pravilima aplikacije inicijalizovane u okviru funkcije OnStart , možda još uvek nisu u potpunosti inicijalizovane. Pored toga, postoji mogućnost da se ekran može prikazati i postati interaktivan pre nego što funkcije Screen.OnVisible ili App.OnStart završe izvršavanje, posebno ako im je potrebno mnogo vremena da se završe.
Svojstvo OnStart se pokreće kada korisnik pokrene aplikaciju. Ovo svojstvo se često koristi za izvršavanje sledećih zadataka:
- Preuzimanje i keširanje podataka u kolekcijama pomoću funkcije Collect.
- Podesite globalne promenljive koristeći funkciju Set.
Ova formula se izračunava pre nego što se pojavi prvi ekran. Ne učitava se nijedan ekran, tako da ne možete postaviti kontekstne promenljive funkcijom UpdateContext. Međutim, možete proslediti promenljive konteksta pomoću funkcije Navigate.
Kada promenite svojstvo OnStart, testirajte ga tako što ćete zadržati pokazivač nad objektom App u oknu prikaza stabla, izabrati tri tačke (...), a zatim izabrati stavku Pokreni OnStart. Za razliku od prvog učitavanja aplikacije, postojeće kolekcije i promenljive će već biti postavljene. Da biste započeli sa praznim kolekcijama, koristite funkciju ClearCollect umesto funkcije Collect.
Belešku
- Korišćenje funkcije Navigate u svojstvu OnStart je obustavljeno. Postojeće aplikacije će nastaviti da rade. U ograničenom vremenskom periodu i dalje možete da ga omogućite u postavkama aplikacije (dostupno u okviru stavke Obustavljeno). Međutim, korišćenje funkcije Navigate na ovaj način može dovesti do kašnjenja učitavanja aplikacija jer primorava sistem da dovrši procenu svojstva OnStart pre prikazivanja prvog ekrana. Umesto toga koristite svojstvo StartScreen da biste izračunali prikazani prvi ekran.
- Penzionisani prekidač će biti isključen za aplikacije kreirane pre marta 2021. godine gde ste dodali Navigate to OnStart između marta 2021. i sada. Kada uređujete takve aplikacije u programu Power Apps Studio, možda ćete videti grešku. Uključite penzionisani prekidač da biste izbrisali ovu grešku.
Svojstvo StartScreen
Svojstvo StartScreen određuje koji će ekran prvo biti prikazan. Procenjuje se jednom kada se aplikacija učita i vraća objekat ekrana koji će biti prikazan. Podrazumevano, ova osobina je prazna, i prvi ekran u prikazu Studio stabla je prikazan prvi.
StartScreen je svojstvo protoka podataka koje ne može da sadrži funkcije ponašanja. Sve funkcije toka podataka su dostupne, posebno koristite ove funkcije i signale da biste odredili koji ekran prvo treba prikazati:
- Param funkcija za čitanje parametara koji se koriste za pokretanje aplikacije.
- Korisnička funkcija za čitanje informacija o trenutnom korisniku.
- LookUp, Filter, CountRovs, Mak i druge funkcije koje čitaju iz izvora podataka.
- Svaki API poziva preko konektora, ali obratite pažnju da se brzo vraća.
- Signali kao što su Connection, Compass i App.
Belešku
Globalne promenljive i kolekcije, uključujući one kreirane u svojstvu OnStart, nisu dostupne u svojstvu StartScreen. Imenovane formule su dostupne i često su bolja alternativa za ponovnu upotrebu formule u aplikaciji.
Ako StartScreen vrati grešku, prvi ekran u prikazu stabla u programu Studio biće prikazan kao da svojstvo StartScreen nije postavljeno. Koristite funkciju IfError da biste uhvatili greške i preusmerili se na odgovarajući ekran greške.
Kada promenite svojstvo StartScreen u programu Studio, testirajte ga tako što ćete zadržati pokazivač nad objektom App u oknu Prikaz stabla, izabrati tri tačke (...), a zatim izabrati stavku Idi na StartScreen. Ekran će se promeniti kao da je aplikacija upravo učitana.
Primeri
Screen9
Označava da bi Screen9
trebalo da se prikaže prvi svaki put kada se aplikacija pokrene.
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
Proverava da li je korisnik podesio parametar „admin-mode“ i koristi ga da bi odlučio da li prvo treba da se prikaže HomeScreen ili AdminScreen.
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
Proverava da li je učesnik konferencije član osoblja i usmerava ih na odgovarajući ekran pri pokretanju.
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
Usmerava aplikaciju zasnovanu na API pozivu ForestScreen
ili OceanScreen
. Ako API ne uspe iz bilo kog razloga, umesto toga se koristi ErrorScreen
.
StudioVersion imovina
Koristite svojstvo StudioVersion da biste prikazali ili prijavili verziju koja je korišćena Power Apps Studio za objavljivanje aplikacije. Ovo može biti korisno prilikom otklanjanja grešaka i kako bi se osiguralo da je vaša aplikacija ponovo objavljena sa nedavnom verzijom Power Apps Studio.
StudioVersion se vraća kao tekst. Format teksta može se vremenom menjati i treba ga tretirati kao cjelinu; izbegavajte vađenje pojedinačnih delova.