Megosztás a következőn keresztül:


Alkalmazás objektum a Power Apps rendszerben

A következőkre vonatkozik: Vászonalapú alkalmazások Modellvezérelt alkalmazások

Információt nyújt az éppen futó alkalmazásról, és szabályozza az alkalmazás viselkedését.

Ismertetés

A vezérlőkhöz hasonlóan az Alkalmazás objektum olyan tulajdonságokat is tartalmaz, amelyek meghatározzák, hogy melyik képernyő jelenjen meg, és rákérdez, hogy a felhasználó szeretné-e menteni a változtatásokat, hogy ne vesszenek el. Minden alkalmazáshoz tartozik egy Alkalmazás objektum.

Az Alkalmazás objektum bizonyos tulajdonságaihoz képleteket írhat. 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 tulajdonságainak megtekintéséhez és szerkesztéséhez jelölje ki a képletsáv bal oldalán található legördülő listából.

Az App objektum a Fanézet ablaktáblában.

ActiveScreen tulajdonság

Az ActiveScreen tulajdonság azonosítja a megjelenített képernyőt.

Ez a tulajdonság egy képernyőobjektumot ad vissza. Használja az aktuálisan megjelenített képernyő tulajdonságaira, például a névre a App.ActiveScreen.Name képlettel . 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 teszteléséhez, hogy a Screen2 az aktuálisan megjelenített képernyő-e.

A megjelenített képernyő módosításához használja a Back vagy a Navigate függvényeket.

BackEnabled tulajdonság

A BackEnabled tulajdonság megváltoztatja, hogy az alkalmazás hogyan reagál az eszköz vissza kézmozdulatára (pöccintsen vagy használja a hardveres vissza gombot Android az eszközökön, csúsztassa ujját balról az iOS eszközökön) Power Apps mobileszközön való futtatáskor. Ha engedélyezve van, az eszköz vissza kell navigálnia a legutóbb megjelenített képernyőre, amely hasonló a Vissza képlethez. Ha le van tiltva, az eszköz vissza kézmozdulata visszaadja a felhasználót az alkalmazáslistának.

ConfirmExit tulajdonságai

Senki nem akarja elveszíteni a nem mentett változtatásokat. Az alkalmazás bezárása előtt figyelmeztesse a felhasználót a ConfirmExit és a ConfirmExitMessage tulajdonságokkal.

Feljegyzés

  • A ConfirmExit nem működik például Power BI és SharePoint beágyazott alkalmazásokban.
  • Mostantól ezek a tulajdonságok csak az első képernyőn hivatkozhatnak vezérlőkre, ha a Késleltetett betöltés előnézete funkció engedélyezve van (ami alapértelmezés szerint az új alkalmazások esetében). Ha a hivatkozások létrejöttek, és Power Apps Studio nem mutat hibaüzenetet, de a létrejövő közzétett alkalmazás nem nyitható meg a Power Apps Mobile alkalmazásban vagy böngészőben. Jelenleg is dolgozunk ezen korlátozás feloldásán. Eközben kikapcsolhatja a Késleltetett betöltés lehetőséget a Beállítások>Hamarosan megjelenő funkciók pontban (az Előzetes verzió alatt).

ConfirmExit

A ConfirmExit egy logikai tulajdonság, amely ha igaz, megnyit egy megerősítő 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.

Olyan helyzetekben, amikor a felhasználónak nem mentett módosításai vannak az alkalmazásban, ezzel a tulajdonsággal megjeleníthet egy megerősítő párbeszédpanelt az alkalmazásból való kilépés előtt. Használjon olyan képletet, amely képes a változók és a vezérlőelem tulajdonságait ellenőrizni (például a Szerkesztési űrlap vezérlő Nem mentett tulajdonsága).

A megerősítő párbeszédpanel minden olyan helyzetben megjelenik, ahol az adatok elveszhetnek, mint az alábbi példákban:

  • Az Exit függvény futtatása.
  • Ha az alkalmazás a böngészőben fut:
    • A böngészőt vagy azon böngészőlap bezárása, ahol az alkalmazás fut.
    • A böngésző Vissza gombjának kiválasztása.
    • A Launch függvény futtatása, amelynél a LaunchTargetÖnmaga.
  • Ha az alkalmazás Power Apps mobilalkalmazásban (iOS vagy Android) módban fut:
    • Másik alkalmazásra váltás pöccintéssel a Power Apps Mobile alkalmazásban.
    • A Vissza gomb kiválasztása Android-eszközön.
    • A Launch függvény futtatása egy másik vászonalapú alkalmazás elindításához.

A megerősítő párbeszédpanel pontos kinézete eltérő lehet az eszközök és a Power Apps-verziók között.

A jóváhagyást kérő párbeszédpanel nem jelenik meg a Power Apps Studio alkalmazásban.

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 a rendszer a megerősítő párbeszédpanelbe való illeszkedéshez szükséges módon csonkolja, így az üzenet legfeljebb néhány sor hosszú lehet.

Böngészőben a megerősítő párbeszédpanel a böngésző egy általános üzenetével együtt is megjelenhet.

Feljegyzés

Az Alkalmazás objektumnak két további tulajdonsága is van OnMessage és BackEnabled, amelyek kísérleti jellegűek. Ezeket a tulajdonságokat a rendszer végül eltávolítja az alkalmazásobjektumból. Javasoljuk, hogy ezeket a tulajdonságokat ne használja a termelési környezetben.

Példa

  1. Hozzon létre egy olyan alkalmazást, amely két űrlapvezérlőt tartalmaz, AccountForm és ContactForm.

  2. Állítsa be az Alkalmazás objektum ConfirmExit tulajdonságát erre a kifejezésre:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Ez a párbeszédpanel akkor jelenik meg, ha a felhasználó bármelyik űrlapon módosítja az adatokat, majd a változtatások mentése nélkül megpróbálja bezárni az alkalmazást.

    Általános megerősítést kérő párbeszédpanel.

  3. Á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."
    )
    

    Ez a párbeszédpanel akkor jelenik meg, ha a felhasználó módosítja az adatokat a Partner űrlapon, majd a változtatások mentése nélkül megpróbálja bezárni az alkalmazást.

    Űrlapspecifikus megerősítő párbeszédpanel.

Eszközkulcs beállítása a következőhöz: Application Insights

A rendszer által generált alkalmazásnaplók Application Insights exportálásához be kell állítania a vászonalapú alkalmazás eszközkulcsát .

  1. Nyissa meg az alkalmazást a(z) Power Apps Studioban való szerkesztéshez.
  2. Válassza ki az App objektumot a bal oldali navigációs fanézetben.
  3. Adja meg a kialakítási kulcsot a tulajdonságok ablaktáblán.

Ha a rendszer nem küld adatokat az App Insightsnak, forduljon a Power Platform rendszergazdá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

Fontos

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, 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. 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

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, a FirstError.Message of the error (A hiba üzenete) alapértelmezett hibasáv jelenik meg. Az OnError képlet definiálása felülbírálja ezt a viselkedést, így a gyártó a saját formájuk szerint kezeli a hibajelentéseket. Az Alapértelmezett viselkedés az OnError szolgáltatásban a hiba hiba funkcióval való újratolásával kérhető. Használja a visszadobási megközelítést, ha egyes hibákat ki kell szűrni vagy más módon kell kezelni, míg másokat át kell adni.

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 előfordulhat, hogy kiértékelésük átfedésben van más hibák feldolgozásával. Ha például egy globális változót ad meg egy OnError tetején, és később olvassa el ugyanabban a képletben, akkor az érték megváltozhat. A With függvény használatával hozzon létre a képlethez helyi értéket.

Bár az OnError egyesével feldolgoz minden hibát, az alapértelmezett hibasáv nem minden esetben jelenik meg külön-külön. 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 Címke1.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:

A csúszka vezérlése 0-ra váltott, ami nullával való osztást és hibasávot eredményezett.

Nézzük meg részletesen a történteket:

  1. A felhasználó a csúszkát a balra mozgatta, és az Slide1.Value tulajdonság 0-ra változott.
  2. A Label1.Text automatikusan újraértékelésre került. Az osztás nullával történt, hibát eredményezve.
  3. Ebben a képletben nincs IfError. A képletértékelés visszaadja a nulla hibával való osztást.
  4. A Label1.Text nem tud semmit megjeleníteni ehhez a hibához, ezért üres állapotot mutat.
  5. 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 is módosíthatjuk errre: Label1.Text = IfError( 1/Slider1.Value, 0 ). Az IfError használata nem eredményez hibát vagy hibacsíkot. Az OnError hibaüzenet értéke nem változtatható meg, mert a hiba már megtörtént, csak az a kérdés, hogyan kell jelenteni.

Ha hozzáadunk egy OnError kezelőt, annak nincs hatása az 5. lépés előtt, de hatással lehet a hiba jelentésének módjára:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

App.OnError képlet nyomkövetés létrehozására beállítva.

Ha ez az OnError kezelő a helyén van, az alkalmazás felhasználója szempontjából nem lesz hiba. A hiba azonban hozzáadódik a figyelő nyomkövetéséhez, kiegészítve a FirstError hibainformációinak forrásával:

A csúszka vezérlése 0-ra váltott, ami nulla osztást eredményezett, de nem hibasávot.

Ha a nyomkövetés mellett ugyanazt az alapértelmezett hibaüzenet-transzparenst is meg szeretnénk jelenni, akkor a nyomkövetési hívás után is újra el lehet követni a hibát ugyanúgy, mint ha a nyomkövetési napló ott lenne:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

OnStart tulajdonság

Feljegyzés

Az OnStart tulajdonság használata alkalmazás betöltésekor teljesítményproblémákat okozhat. Jelenleg azon dolgozunk, hogy alternatívákat hozzunk a tulajdonság használatának legfontosabb két okára: az adatok gyorsítótárazása és globális változók beállítása. Már létrehoztunk egy alternatívát, hogy az első képernyő megjelenítésének definiálására a Navigate függvénnyel. A környezettől függően előfordulhat, hogy ez a tulajdonság alapértelmezés szerint le van tiltva. Ha nem látja, és használnia kell, akkor keresse meg az alkalmazás Speciális beállításai között a kapcsolót az engedélyezéséhez. A képernyő OnVisible tulajdonsága is használható. Alapértelmezés szerint, ha a nem blokkoló OnStart szabály engedélyezve van, lehetővé teszi, hogy az OnStart függvény más alkalmazásszabályokkal egyidejűleg fusson. Így ha más alkalmazásszabályokban hivatkozott változók inicializálása az OnStart függvényen belül történik, előfordulhat, hogy még nincsenek teljesen inicializálva. Ezenkívül előfordulhat, hogy a képernyő renderelődik és interaktívvá válik, mielőtt a Screen.OnVisible vagy az App.OnStart függvény befejeződne, különösen, ha hosszú időt vesz igénybe.

Az OnStart tulajdonság akkor fut, amikor a felhasználó elindítja az alkalmazást. Ezt a tulajdonságot gyakran a következő feladatok végrehajtásához használják:

  • Adatok beolvasása és gyorsítótárazása a gyűjteményekbe a Collect függvény segítségével.
  • Globális változók létrehozása a Set függvénnyel.

A képlet kiértékelése az első képernyő megjelenése előtt történik. 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 kontextus változóit azonban átadhatja a Navigate függvénnyel.

Miután megváltoztatta az OnStart tulajdonságot, tesztelje: mutasson az Alkalmazás objektumra a Fa nézet ablaktáblában, és válassza a három pontot (...), majd válassza az OnStart futtatás elemet. Az alkalmazás első betöltésével ellentétben a meglévő gyűjtemények és változók beállítása már megtörténik. Ha üres gyűjteményekkel szeretne kezdeni, használja a ClearCollect függvényt a Collect függvény helyett.

Alkalmazáselem – parancsikonmenü az OnStart függvényhez

Feljegyzés

  • Az OnStart tulajdonság Navigate függvénye ki lett vezetve. A meglévő alkalmazások továbbra működnek. Korlátozott ideig még engedélyezheti az alkalmazás beállításaiban (elérhető a Visszavont csoportban). Azonban a Navigate ily módon való használata az alkalmazás betöltési késéséhez vezethet, mivel a rendszert arra kényszeríti, hogy az első képernyő megjelenítése előtt kiértékelje az OnStart tulajdonságot. Az első megjelenített képernyő kiszámításához használja a StartScreen tulajdonságot.
  • A kivezetett kapcsoló ki lesz kapcsolva azoknál a 2021 márciusa előtt létrehozott alkalmazásoknál, amelyekhez hozzáadta a Navigálás az OnStart lapra 2021 márciusa és mostana között. Az ilyen alkalmazások szerkesztésekor a Power Apps Studio alkalmazásban hibaüzenet jelenhet meg. A hiba törléséhez kapcsolja be a kivezetett kapcsolót.

StartScreen tulajdonság

A StartScreen tulajdonság határozza meg, hogy először melyik képernyő fog megjelenik. A rendszer egyszer értékeli ki, amikor betöltődik az alkalmazás, és visszaadja a megjelenítendő képernyőobjektumot. Alapértelmezés szerint ez a tulajdonság üres, és a Stúdiófa 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. Az összes adatfolyam-függvény elérhető, ezért használja ezeket a függvényeket és jeleket annak meghatározásához, hogy melyik képernyőt szeretné elsőként megjeleníteni:

  • 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.
  • Bármely API-hívás egy összekötőn keresztül, de ügyeljen arra, hogy gyorsan vissza legyen adva.
  • Olyan jelzésekkel, mint a Connection, Compass és Alkalmazás.

Feljegyzés

A globális változók és gyűjtemények – beleértve az OnStart tulajdonságban létrehozott változókat is – nem érhetők el a StartScreen tulajdonságban. 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 eredményül, akkor a Studio fanézet első képernyője úgy jelenik meg, mintha nem lett volna beállítva a StartScreen. Az IfError függvénnyel minden hibát elfoghat, és átirányíthat a megfelelő hibaképernyőre.

Miután megváltoztatta az StartScreen tulajdonságot a Studban, tesztelje: mutasson az Alkalmazás objektumra a Fa nézet ablaktáblában, és válassza a három pontot (...), majd válassza a Navigálás a StartScreen képernyőre elemet. A képernyő úgy változik, mintha az alkalmazás éppen most lett volna betöltve.

Navigálás a StartScreen képernyőre

Példák

Screen9

Azt jelzi, hogy az alkalmazás minden indításakor először Screen9 képernyőnek kell láthatónak lennie.

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

Ellenőrzi, hogy a felhasználó beállította-e a Param "admin-módot", és azt használja-e annak eldöntésében, hogy előbb a HomeScreen vagy az AdminScreen képernyő jelenjen-e meg.

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

Ellenőrzi, hogy egy konferencia résztvevője munkatárs-e, és az indításkor a megfelelő képernyőre irányítja.

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 valamilyen okból sikertelen, a ErrorScreen lesz használva helyette.

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 hibakereséskor lehet hasznos, és ha meg szeretne győződni arról, hogy az alkalmazást újra közzétette az újabb verziójával Power Apps Studio.

A StudioVersion szövegként lesz visszaadva. A szöveg formátuma idővel változhat, és azt egy egészként kell kezelni; Kerülje az egyes adagok kivonását.