Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Vászonalapú alkalmazások
Az aktuálisan futó alkalmazással kapcsolatos információk lekérése és az alkalmazás viselkedésének szabályozása.
Ismertetés
A vezérlőkhöz hasonlóan az alkalmazásobjektum is rendelkezik olyan tulajdonságokkal, amelyek azonosítják, hogy melyik képernyő jelenik meg, és kéri, hogy mentse a módosításokat, hogy ne vesszenek el. Minden alkalmazáshoz tartozik egy Alkalmazás objektum.
Képletek írása az alkalmazásobjektum egyes tulajdonságaihoz. A Fanézet ablaktábla tetején jelölje ki az Alkalmazás objektumot, ahogy bármely más vezérlővel vagy képernyővel tenné. Az objektum egyik tulajdonságának megtekintéséhez vagy szerkesztéséhez jelölje ki a szerkesztőléc bal oldalán található legördülő listában.
ActiveScreen tulajdonság
Az ActiveScreen tulajdonság azonosítja az aktuálisan megjelenő képernyőt.
Ez a tulajdonság egy képernyőobjektumot ad vissza. Segítségével hivatkozhat az aktuális képernyő tulajdonságaira, például a App.ActiveScreen.Name képlet nevére. Ezt a tulajdonságot összehasonlíthatja egy másik képernyőobjektummal is, például az App.ActiveScreen = Screen2 összehasonlító képlettel annak ellenőrzéséhez, hogy a Screen2 az aktuális képernyő-e.
A Vissza vagy a Navigálás függvénnyel váltsa át a megjelenített képernyőt.
BackEnabled tulajdonság
A BackEnabled tulajdonság megváltoztatja, hogy az alkalmazás hogyan reagál az eszköz visszamozdulására (pöccintsen vagy használja az Android-eszközökön a hardvervisszajelző gombot, vagy pöccintsen balra az iOS-eszközökön) a Power Apps mobile-ban való futtatáskor. Ha engedélyezve van, az eszköz visszamozdul a legutóbb megjelenített képernyőre, amely hasonló a Vissza képlethez. Ha le van tiltva, az eszköz visszamozdulása az alkalmazáslistára viszi a felhasználót.
ConfirmExit tulajdonságai
Senki nem akarja elveszíteni a nem mentett változtatásokat. Az alkalmazás bezárása előtt a ConfirmExit és a ConfirmExitMessage tulajdonsággal figyelmeztetheti a felhasználót.
Feljegyzés
- A ConfirmExit nem működik például a Power BI-ba és a SharePointba beágyazott alkalmazásokban.
- A ConfirmExit nem támogatott az egyéni oldalakon.
- Ezek a tulajdonságok mostantól csak az első képernyőn hivatkozhatnak vezérlőkre, ha engedélyezve van a Késleltetett betöltési előnézet funkció (amely alapértelmezés szerint az új alkalmazások esetében). Ha más képernyőkre hivatkozik, a Power Apps Studio nem jelenít meg hibát, de a közzétett alkalmazás nem nyílik meg a Power Apps Mobile-ban vagy böngészőben. Dolgozunk a korlátozás feloldásán. Addig is kapcsolja ki a Késleltetett terhelés funkciót a Beállítások>közelgő funkcióiban ( az Előzetes verzió alatt).
ConfirmExit
A ConfirmExit egy logikai tulajdonság, amely igaz esetben megnyitja a megerősítést kérő párbeszédpanelt az alkalmazás bezárása előtt. Alapértelmezetten ez a tulajdonság hamis, és nem jelenik meg párbeszédpanel.
Ha a felhasználó esetleg nem mentett módosításokat az alkalmazásban, ezzel a tulajdonsággal megjeleníthet egy megerősítést kérő párbeszédpanelt, mielőtt kilépne az alkalmazásból. Használjon változókat és vezérlőtulajdonságokat ellenőrző képletet (például az Űrlap szerkesztése vezérlő Nem mentett tulajdonságát).
A megerősítést kérő párbeszédpanel minden olyan helyzetben megjelenik, ahol az adatok elveszhetnek, például:
- Futtassa a Kilépés függvényt.
- Ha az alkalmazás böngészőben fut:
- Zárja be azt a böngészőt vagy böngészőlapot, amelyen az alkalmazás fut.
- Válassza ki a böngésző vissza gombját.
- Futtassa a Launch függvényt egy Saját LaunchTargettel.
- Ha az alkalmazás a Power Apps Mobile-ban (iOS vagy Android) fut:
- Pöccintéssel válthat másik alkalmazásra a Power Apps Mobile-ban.
- Kattintson a Vissza gombra egy Android-eszközön.
- Futtassa a Launch függvényt egy másik vászonalapú alkalmazás elindításához.
A megerősítést kérő párbeszédpanel pontos megjelenése a Power Apps eszközeitől és verzióitól függően változhat.
A megerősítést kérő párbeszédpanel nem jelenik meg a Power Apps Studióban.
ConfirmExitMessage
A megerősítő párbeszédpanel alapértelmezetten egy általános üzenetet jelenít meg a felhasználó nyelvén, például: „Lehetnek nem mentett változtatásai.”
A ConfirmExitMessage segítségével egyéni üzenetet írhat ki a megerősítő párbeszédpanelen. Ha a tulajdonság üres, a rendszer az alapértelmezett értéket használja. Az egyéni üzeneteket szükség szerint csonkolja a rendszer, hogy elférjenek a megerősítést kérő párbeszédpanelen, így legfeljebb néhány sornyira tarthatja az üzenetet.
A böngészőben a megerősítést kérő párbeszédpanelen megjeleníthet egy általános üzenetet a böngészőből.
Feljegyzés
Az alkalmazásobjektum két további tulajdonsággal rendelkezik, OnMessage amelyek BackEnabledkísérleti jellegűek. Ezek a tulajdonságok végül törlődnek az alkalmazásobjektumból. Ezeket a tulajdonságokat ne használja az éles környezetben.
Példa
Állítsa be az Alkalmazás objektum ConfirmExit tulajdonságát erre a kifejezésre:
AccountForm.Unsaved Or ContactForm.UnsavedA párbeszédpanelen látható, hogy a felhasználó mindkét formában módosítja-e az adatokat, majd a módosítások mentése nélkül megpróbálja bezárni az alkalmazást.e a felhasználó mindkét formában módosítja az adatokat, majd a módosítások mentése nélkül megpróbálja bezárni az alkalmazást.
[!div clas1. Állítsa be az Alkalmazás objektum ConfirmExitMessage tulajdonságát erre a képletre:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )A párbeszédpanelen látható, hogy a felhasználó módosítja-e az adatokat a Fiók űrlapon, majd a módosítások mentése nélkül megpróbálja bezárni az alkalmazást.
Kapcsolati sztring beállítása az Application Insightshoz
A rendszer által létrehozott alkalmazásnaplók Application Insightsba való exportálásához állítsa be a vászonalapú alkalmazás kapcsolati sztringét .
- Nyissa meg az alkalmazást a(z) Power Apps Studioban való szerkesztéshez.
- Válassza ki az App objektumot a bal oldali navigációs fanézetben.
- Adja meg a Kapcsolat sztringet a tulajdonságok panelen.
Ha nem küld adatokat az Application Insightsnak, forduljon a Power Platform rendszergazdájához, és ellenőrizze, hogy az App Insights le van-e tiltva a bérlő szintjén.
Képletek tulajdonság
A Képletek tulajdonságban elnevezett képletek segítségével definiálhat egy olyan képletet, amely újra felhasználható az alkalmazásban.
A Power Apps képletek határozzák meg a vezérlőelem-tulajdonságok értékét. Ha például egy alkalmazáson keresztül egységesen be van állítva a háttérszín, a Kitöltés tulajdonságot beállíthatja közös képletre:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
Olyan sok helyen, ahol ez a képlet megjelenhet, unalmassá és hibává válik, ha mindegyiket frissíteni kell, ha módosításra van szükség. Ehelyett létrehozhat egy globális változót az OnStart alkalmazásban, hogy egyszer beállítsa a színét, majd az értéket újra felhasználhatja az alkalmazásban:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Bár ez a módszer jobb, attól is függ, hogy az OnStart fut-e a BGStart értéke előtt. A BGColor az alkalmazás valamelyik sarkában is manipulálható, amelyről a készítő nem tud, valaki más által végrehajtott változás, és amelyet nehéz nyomon követni.
A elnevezett képletek alternatívát biztosítanak. Ahogyan általában a control-property = expression kifejezést írjuk, ehelyett a név = kifejezés írása után újra felhasználhatja a nevet az alkalmazásban a kifejezés helyére. Ezeknek a képleteknek a definícióit a Képletek tulajdonságban lehet definiálni:
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
A elnevezett képletek használatának előnye a következők:
- A képlet értéke mindig elérhető. Nincs időzítési függőség, nincs OnStart, amelynek elsőnek kell futnia az érték beállítása előtt, és nincs idő, amikor helytelen a képlet értéke. A elnevezett képletek bármilyen sorrendben hivatkozni tudnak egymásra, amíg nem hoznak létre körkörös hivatkozást. Ezek párhuzamos számítást is tudnak.
- A képlet értéke mindig frissített. A képlet olyan számítást hajthat végre, amely a vezérlőtulajdonságoktól vagy az adatbázis-bejegyzésektől függ, és a módosítások során a képlet értéke automatikusan frissül. Az értéket nem kell manuálisan frissítenie, mint a változók esetében. A képletek pedig csak szükség esetén számlálódnak újra.
- A képlet definíciója nem használható. A Képletek definíciója az igazság egyetlen forrását használja, és az érték nem módosítható az alkalmazásban. A változók esetében előfordulhat, hogy egyes kódok váratlanul megváltoztatnak egy értéket, de ez a nehezen hibakeresési helyzet elnevezett képletekkel nem lehetséges.
- A képlet számítása halasztható. Mivel az értéke megváltoztathatatlan, szükség esetén mindig kiszámítható, ami azt jelenti, hogy nem kell kiszámítani, amíg nincs rá szükség. Az alkalmazások screen2 képernyője megjelenítéséig nem használt képletértékeket nem kell kiszámítani, amíg a screen2 képernyő nem látható. A munka elhalasztása javíthatja az alkalmazás betöltési idejét. A elnevezett képletek deklaratívak, és lehetőséget biztosítanak a rendszer számára a számítás optimalizálása érdekében.
- A elnevezett képletek egy Excel-fogalom. A Power Fx Excel-fogalmakat használ, ahol lehetséges, mivel olyan sok ember ismeri az Excelt. Az elnevezett képletek a névkezelővel kezelt, elnevezett cellákkal és elnevezett képletekkel egyenértékűek az Excel alkalmazásban. Automatikusan újraszámolnak, mint a számolótáblák cellái és a vezérlőelem-tulajdonságok.
A elnevezett képletek egymás után definiálva vannak a Képletek tulajdonságban, amelyek mind pontosvesszővel végződnek. A képlet típusára a képleten belüli elemek típusaiból és együttes használatukból következtet. Ezek a elnevezett képletek például hasznos információkat beolvasnak az aktuális felhasználóról a Dataverse-ből:
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' );
Ha frissíteni kell a UserTitle képletét, könnyen elvégezhető ezen a helyen. Ha a UserPhone-ra nincs szükség az alkalmazásban, akkor a Dataverse Felhasználók táblája ilyen hívásokra nem jön létre. A nem használt képletmeghatározások nem használhatók.
Az elnevezett képletek néhány korlátozása:
- Nem használhatnak viselkedésfunkciókat, és nem okozhatnak egyéb mellékhatásokat az alkalmazásban.
- Körkörös hivatkozást nem tudnak létrehozni. Az a = b; és a b = a; nem engedélyezett ugyanabban az alkalmazásban.
Felhasználó által definiált függvények
Power Fx beépített függvények hosszú listáját tartalmazza, mint például a Ha, a Szöveg és a Halmaz. A felhasználó által definiált függvények lehetővé teszik, hogy saját függvényeket írjon, amelyek paramétereket vesznek fel, és értéket adnak vissza, akárcsak a beépített függvények. A felhasználó által definiált függvények az elnevezett képletek kiterjesztéseként is felfoghatók, amelyek paramétereket adnak hozzá, és támogatják a viselkedési képleteket.
Definiálhat például egy elnevezett képletet, amely egy könyvtárból származó szépirodalmi könyveket ad vissza:
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" );
Paraméterek nélkül minden műfajhoz külön elnevezett képleteket kellene definiálnunk. Ehelyett paraméterezzük a megnevezett képletünket:
LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );
LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );
Most már meghívhatunk LibraryGenre( "Fiction" ), LibraryGenre( "Reference" ) vagy szűrhetünk más műfajokra egyetlen felhasználó által definiált funkcióval.
A szintaxis a következő:
FunctionName( [ ParameterName1: ParameterType1 [, ParameterName2: ParameterType2 ... ] ] ) : ReturnType = képlet;
- FunctionName – Kötelező. A felhasználó által definiált függvény neve.
- ParameterNames – Nem kötelező. Egy függvényparaméter neve.
- ParameterTypes – Nem kötelező. Egy típus neve, amely lehet beépített adattípusnév, adatforrásnév vagy a Type függvénnyel definiált típus.
- ReturnType – Kötelező. A függvény visszatérési értékének típusa.
- Képlet – Kötelező. Az a képlet, amely a paraméterek alapján kiszámítja a függvény értékét.
Minden paramétert és a felhasználó definiálta függvény kimenetét be kell írni. Ebben a példában a függvény első paraméterét Text típusúként SelectedGenre: Text határozza meg, és a Filter SelectedGenre művelet törzsében használt paraméter neve. A támogatott típusneveket lásd: Adattípusok . A Type függvény összesített típus létrehozására szolgál könyvtárunkhoz, hogy visszaadhassunk egy könyvtáblázatot a függvényünkből.
A rekordok többes számú táblájaként definiáltuk LibraryType . Ha egyetlen könyvet szeretnénk átadni egy függvénynek, akkor a RecordOf függvénnyel kinyerhetjük a tábla rekordjának típusát:
BookType := Type( RecordOf( LibraryType ) );
IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);
A függvényparaméterek rekordegyeztetése szorosabb, mint a függvény más részein Power Fx. A rekordérték mezőinek a típusdefiníció megfelelő részhalmazának kell lenniük, és nem tartalmazhatnak további mezőket. Például,hibát IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) eredményez.
Vegye figyelembe, hogy a felhasználó által definiált függvények még nem támogatják a rekurziót.
Felhasználó által definiált függvények viselkedése
Az elnevezett képletek és a legtöbb felhasználó által definiált függvény nem támogatja a mellékhatásokkal járó viselkedési függvényeket, például a Beállítás vagy az Értesítés függvényt. Általában a legjobb, ha elkerüli az állapot frissítését, ha lehetséges, ehelyett funkcionális programozási mintákra támaszkodik, és lehetővé teszi Power Fx a képletek szükség szerinti automatikus újraszámítását. De vannak esetek, amikor ez elkerülhetetlen. Ha viselkedési logikát szeretne belefoglalni egy felhasználó által definiált függvénybe, csomagolja kapcsos zárójelbe a törzset:
Spend( Amount: Number ) : Void = {
If( Amount > Savings,
Error( $"{Amount} is more than available savings" ),
Set( Savings, Savings - Amount );
Set( Spent, Spent + Amount)
);
}
Most felhívhatjuk Spend( 12 ) annak ellenőrzését, hogy van-e 12 a megtakarításainkban, és ha igen, akkor 12-vel terhelhetjük meg, és hozzáadhatunk 12-t a Költött változóhoz. A függvény visszatérési típusa Void , mivel nem ad vissza értéket.
A felhasználó által definiált viselkedésfüggvény szintaxisa a következő:
FunctionName( [ ParameterName1: ParameterType1 [, ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Formula2 ... ] };
- FunctionName – Kötelező. A felhasználó által definiált függvény neve.
- ParameterNames – Nem kötelező. Egy függvényparaméter neve.
- ParameterTypes – Nem kötelező. Egy típus neve, lehet beépített adattípusnév, adatforrásnév vagy a Type függvénnyel definiált típus.
- ReturnType – Kötelező. A függvény visszatérési értékének típusa. Használja a Void függvényt , ha a függvény nem ad vissza értéket.
- Képletek – Kötelező. Az a képlet, amely a paraméterek alapján kiszámítja a függvény értékét.
Mint minden Power Fx képlet esetében, a végrehajtás sem ér véget, ha hiba történik. Az Error függvény meghívása után a If függvény megakadályozza a Megtakarítások és az Elköltöttek módosítását. Az IfError függvény arra is használható, hogy megakadályozza a hiba utáni további végrehajtást. Annak ellenére, hogy a képlet Void értéket ad vissza, probléma esetén továbbra is hibát adhat vissza.
Felhasználó által definiált típusok
Fontos
- A felhasználó által definiált típusok kísérleti funkciók.
- A kísérleti funkciók nem éles környezetben használhatók, és előfordulhat, hogy nem teljesek. Ezek a funkciók a hivatalos kiadás előtt érhetők el, így korai hozzáférést kaphat, és visszajelzést küldhet. További információ: A vászonalapú alkalmazások kísérleti, előzetes verziójú és kivezetett funkcióinak áttekintése
- A cikkben ismertetett viselkedés csak akkor érhető el, ha a Felhasználó által definiált típusok kísérleti funkció be van kapcsolva a Beállítások Közelgő funkciók > kísérleti > funkciójában (alapértelmezés szerint ki van kapcsolva).
- Az Ön visszajelzései nagyon fontosak számunkra. Ossza meg velünk véleményét a Power Apps kísérleti funkciók közösségi fórumán.
Az elnevezett képletek a Type függvénnyel együtt használhatók felhasználó által definiált típusok létrehozására. Használja például a felhasználó := által definiált típus = definiálása helyett Book := Type( { Title: Text, Author: Text } ). További információkért és példákért tekintse meg a Type függvényt .
OnError tulajdonság
Az OnError használatával intézkedhet, ha hiba történik bárhol az alkalmazásban. Globális lehetőséget biztosít a hibasávok elfogására, mielőtt azok megjelennének a végfelhasználó számára. A Nyomkövetési funkcióval hibát naplózhat, illetve adatbázisba vagy webszolgáltatásba írhat.
A vászonalapú alkalmazásokban a rendszer minden képletértékelés eredményét ellenőrzi, hogy nincs-e benne hiba. Ha a rendszer hibát észlel, az OnError függvényt ugyanazokkal a FirstError és AllErrors hatókörváltozókkal értékeli ki a rendszer, amelyeket akkor használt volna, ha a teljes képletet egy IfError függvénybe csomagolta volna.
Ha az OnError üres, egy alapértelmezett hibasávon megjelenik a FirstError.Message of the error. Az OnError-képletek definiálása felülírja ezt a viselkedést, így a készítő szükség szerint képes kezelni a hibajelentést. Az OnError alapértelmezett viselkedését kérheti a hiba hibafüggvényével való újbóli beírásával. Ha másként szeretné kiszűrni vagy kezelni bizonyos hibákat, használja az újraéledési módszert, de hagyja, hogy mások is áthaladjanak rajta.
Az OnError nem tudja helyettesíteni a számítási hibákat úgy, mint az IfError . Ha az OnError meghívásra kerül, a hiba már megtörtént, és már fel lett dolgozva olyan képletszámításokkal, mint az IfError; Az OnError csak a hibajelentést vezérli.
Az OnError-képletek kiértékelése egyidejűleg történik, és lehetséges, hogy a kiértékelésük átfedésben lehet más hibák feldolgozásával. Ha például egy globális változót állít be egy OnError tetején, és később olvassa be ugyanabban a képletben, az érték változhatott. A With függvény használatával hozzon létre a képlethez helyi értéket.
Bár az OnError egyenként dolgozza fel az egyes hibákat, előfordulhat, hogy az alapértelmezett hibacím nem jelenik meg egyenként az egyes hibáknál. Annak elkerülése érdekében, hogy túl sok hibacsík jelenjen meg egyszerre, ugyanaz a hibacsík nem jelenik meg újra, ha nemrég jelent meg.
Példa
Tekintsen meg egy Címke és Csúszka vezérlőt, amely a képleten keresztül egymáshoz van kötve:
Label1.Text = 1/Slider1.Value
A csúszka alapbeállítása 50. Ha a csúszka 0-ra van áthelyezve, a Label1 címke nem fog értéket mutatni, és egy hibaüzenet jelenik meg:
Nézzük meg részletesen a történteket:
- A felhasználó a csúszkát a balra mozgatta, és az Slide1.Value tulajdonság 0-ra változott.
- A Label1.Text automatikusan újraértékelésre került. Az osztás nullával történt, hibát eredményezve.
- Ebben a képletben nincs IfError. A képletértékelés visszaadja a nulla hibával való osztást.
- A Label1.Text nem tud semmit megjeleníteni ehhez a hibához, ezért üres állapotot mutat.
- A rendszer meghívja az OnError nevet. Mivel nincs kezelő, a normál hibasáv hibaüzenetekkel jelenik meg.
Szükség esetén a képletet Label1.Text = IfError( 1/Slider1.Value, 0 )is módosíthatja. Az IfError használata azt jelenti, hogy nincs hiba vagy hiba szalagcím. Az OnError hibaértékét nem módosíthatja, mert a hiba már megtörtént – az OnError csak a jelentés módját szabályozza.
Ha onError kezelőt ad hozzá, az nem befolyásolja az 5. lépés előtti lépéseket, de megváltoztatja a hiba jelentésének módját:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
Ezzel az OnError kezelővel az alkalmazás felhasználója nem lát hibát. A hiba azonban hozzáadódik a figyelő nyomkövetéséhez, beleértve a FirstError hibainformációinak forrását is:
Ha az alapértelmezett hibacímet is meg szeretné jeleníteni a nyomkövetéssel együtt, akkor a nyomkövetési hívás után a Hiba függvénnyel adja vissza a hibát, mintha a nyomkövetés nem lett volna ott:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
OnStart tulajdonság
Feljegyzés
Az OnStart tulajdonság használata teljesítményproblémákat okozhat egy alkalmazás betöltésekor. Alternatív megoldásokat hozunk létre a tulajdonság használatának első két okára– az adatok gyorsítótárazására és a globális változók beállítására. Már van egy alternatíva a Navigálással megjelenítendő első képernyő definiálására. A környezettől függően ez a tulajdonság alapértelmezés szerint letiltható. Ha nem látja, és használnia kell, a kapcsoló engedélyezéséhez ellenőrizze az alkalmazás Speciális beállításai között. A képernyő OnVisible tulajdonságát is használhatja. Alapértelmezés szerint, ha a nem tiltó OnStart szabály engedélyezve van, lehetővé teszi, hogy az OnStart függvény a többi alkalmazásszabálysal egy időben fusson. Ha tehát a más alkalmazásszabályokban hivatkozott változók inicializálva vannak az OnStart függvényben, lehet, hogy még nem inicializálódnak teljesen. A képernyők a Screen.OnVisible vagy az App.OnStart függvény futtatása előtt is megjeleníthetők és interaktívvá válhatnak, különösen akkor, ha hosszú ideig tart a befejezésük.
Az OnStart tulajdonság akkor fut, amikor a felhasználó elindítja az alkalmazást. Ezt a tulajdonságot gyakran használják:
- A gyűjtemények adatainak lekérése és gyorsítótárazása a Collect függvény használatával.
- Globális változók létrehozása a Set függvénnyel.
Ez a képlet az első képernyő megjelenése előtt fut. A rendszer nem tölti be a képernyőt, így nem lehet környezeti változókat beállítani az UpdateContext függvénnyel. A Környezeti változók azonban átadhatók a Navigate függvénnyel.
Miután módosította az OnStart tulajdonságot, tesztelje azt úgy, hogy az Alkalmazás objektum fölé viszi a Fa nézet panelen, kiválasztja a három pontot (...), majd kiválasztja a Run OnStart (Futtatás) lehetőséget. Az alkalmazás első betöltésekor eltérően a meglévő gyűjtemények és változók már be vannak állítva. Ha üres gyűjteményekkel szeretne kezdeni, használja a ClearCollect függvényt a Collect függvény helyett.
Feljegyzés
- Az OnStarttulajdonságBan a Navigate függvény használata megszűnik. A meglévő alkalmazások továbbra is működnek. Korlátozott ideig engedélyezheti az alkalmazásbeállításokban ( a Kivont területen). A Navigálás ezzel a módszerrel azonban alkalmazásbetöltési késéseket okozhat, mivel az arra kényszeríti a rendszert, hogy az első képernyő megjelenítése előtt fejezze be az OnStart futtatását. Az első képernyő megjelenítéséhez használja a StartScreen tulajdonságot.
- A kivont kapcsoló ki van kapcsolva a 2021 márciusa előtt létrehozott alkalmazások esetében, amelyekhez 2021 márciusa és most hozzáadta a Navigálásaz OnStart szolgáltatáshoz. Ha ezeket az alkalmazásokat a Power Apps Studióban szerkessze, hibaüzenet jelenik meg. A hiba törléséhez kapcsolja be a kivezetett kapcsolót.
StartScreen tulajdonság
A StartScreen tulajdonság beállítja, hogy melyik képernyő jelenik meg először. A kiértékelése egyszer történik, amikor az alkalmazás betölti, és visszaadja a megjelenítendő képernyőobjektumot. Alapértelmezés szerint ez a tulajdonság üres, és a Studio Tree nézet első képernyője jelenik meg először.
A StartScreen egy adatfolyam-tulajdonság, amely nem tartalmazhat viselkedési függvényeket. Minden adatfolyamfüggvény elérhető. Ezeket a függvényeket és jeleket használva döntse el, hogy melyik képernyő jelenjen meg először:
- Param függvény az alkalmazás indításához használt paraméterek olvasásához.
- Felhasználói funkció az aktuális felhasználóval kapcsolatos információk olvasásához.
- LookUp, Filter, CountRows, Max, és egyéb függvények a beolvasáshoz az adatforrásból.
- API-hívások összekötőn keresztül. Győződjön meg arról, hogy a hívás gyorsan visszatér.
- Olyan jelzésekkel, mint a Connection, Compass és Alkalmazás.
Feljegyzés
A StartScreenben nem érhetők el globális változók és gyűjtemények, beleértve az OnStartban létrehozottakat is. Elnevezett képletek állnak rendelkezésre, amelyek gyakran jobb alternatívát jelentenek a képletek alkalmazáson belüli újrafelhasználására.
Ha a StartScreen hibát ad vissza, a Studio Fa nézetben az első képernyő úgy jelenik meg, mintha a StartScreen nincs beállítva. Az IfError függvény használatával észlelhet hibákat, és átirányíthatja a hibaképernyőre.
Miután módosította a StartScreent a Studióban, tesztelje azt úgy, hogy a Fa nézet panelen az Alkalmazás objektum fölé viszi, a három pontot (...), majd a Navigálás a Kezdőképernyőre lehetőséget választja. A képernyő úgy változik, mintha az alkalmazás most töltődött volna be.
Példák
Screen9
Screen9 az alkalmazás indításakor először jelenik meg.
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
Ellenőrzi, hogy a Param "rendszergazdai mód" be van-e állítva, és azt használja annak eldöntésére, hogy a HomeScreen vagy az AdminScreen látható-e először.
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
Ellenőrzi, hogy egy résztvevő oktató-e, és az indításkor a megfelelő képernyőre irányítja-e őket.
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
Az alkalmazást egy API-hívás alapján irányítja a ForestScreen vagy az OceanScreen képernyőre. Ha az API sikertelen, az alkalmazás ehelyett használja ErrorScreen .
StudioVersion tulajdonság
A StudioVersion tulajdonsággal megjelenítheti vagy naplózhatja az alkalmazás közzétételéhez használt Power Apps Studio verzióját. Ez a tulajdonság segít a hibakeresésben és annak ellenőrzésében, hogy az alkalmazás újra közzé van-e téve a Power Apps Studio legújabb verziójával.
A StudioVersion szöveget ad vissza. A szöveg formátuma idővel változhat, ezért kezelje egészként, és ne nyerje ki az egyes részeket.