Objekt aplikácie v Power Apps
Vzťahuje sa na: aplikácie plátna aplikácie s podporou modelov
Poskytuje informácie o aktuálne spustenej aplikácii a ovládacom prvku správania aplikácie.
Popis
Podobne ako ovládací prvok, aj objekt aplikácie poskytuje vlastnosti, ktoré identifikujú, ktorá obrazovka sa zobrazuje a ktorá používateľa vyzve na uloženie zmien tak, aby sa nestratili. Každá aplikácia má objekt aplikácie.
Môžete napísať vzorce pre niektoré vlastnosti objektu aplikácie. V hornej časti tably Stromová štruktúra zvoľte objekt aplikácie, ako by ste urobili pri akomkoľvek inom ovládacom prvku alebo obrazovke. Zobrazte a upravte jednu z vlastností objektu tak, že ju vyberiete v rozbaľovacom zozname naľavo od lišty vzorcov.
Vlastnosť ActiveScreen
Vlastnosť ActiveScreen označuje zobrazenú obrazovku.
Táto vlastnosť vracia objekt obrazovky. Použite ho na odkazovanie na vlastnosti aktuálne zobrazenej obrazovky, ako je názov so vzorcom App.ActiveScreen.Name. Túto vlastnosť môžete tiež porovnať s iným objektom obrazovky, napríklad pomocou porovnávacieho vzorca App.ActiveScreen = Screen2 a otestovať, či Screen2 je aktuálne zobrazená obrazovka.
Použite funkciu Back alebo Navigate na zmenu zobrazenej obrazovky.
Vlastnosť BackEnabled
Vlastnosť BackEnabled mení spôsob, akým aplikácia reaguje na gesto späť zariadenia (potiahnite alebo použite hardvérové tlačidlo späť na Android zariadeniach, potiahnite zľava na iOS zariadenia) pri spustení v Power Apps mobile. Keď je aktivované, gesto Späť zariadenia prejde späť na obrazovku, ktorá bola naposledy zobrazená, čo je podobné vzorcu Späť . Keď je deaktivované, gesto späť zariadenia vráti používateľa do zoznamu aplikácií.
Vlastnosti ConfirmExit
Nikto nechce prísť o neuložené zmeny. Použite vlastnosti ConfirmExit a ConfirmExitMessage, ktoré používateľa upozornia pred zatvorením aplikácie.
Poznámka
- ConfirmExit nefunguje v aplikáciách, ktoré sú vložené napríklad do Power BI a SharePoint.
- V súčasnosti môžu tieto vlastnosti odkazovať na ovládacie prvky iba na prvej obrazovke, ak ukážková funkcia Oneskorené zaťaženie je povolená funkcia ukážky (ktorá je predvolená pre nové aplikácie). Ak sa urobia odkazy, Power Apps Studio nezobrazuje chybu, ale výsledná zverejnená aplikácia sa neotvorí v Power Apps Mobile ani v prehliadači. Aktívne pracujeme na zrušení tohto obmedzenia. Medzitým môžete vypnúť Oneskorené načítanie v časti Nastavenia>Pripravované funkcie (v časti Verzia Preview).
ConfirmExit
ConfirmExit je boolovská vlastnosť, ktorá, keď je pravda, pred zatvorením aplikácie otvorí dialógové okno s potvrdením. V predvolenom nastavení má táto vlastnosť príznak false a nezobrazí sa žiadne dialógové okno.
V situáciách, keď používateľ môže mať v aplikácii neuložené zmeny, použite túto vlastnosť na zobrazenie dialógového okna s potvrdením pred ukončením aplikácie. Použite vzorec, ktorý dokáže skontrolovať premenné a vlastnosti ovládacieho prvku (napríklad vlastnosť Neuložené ovládacieho prvku Upraviť formulár).
Dialógové okno s potvrdením sa objaví v každej situácii, v ktorej by sa údaje mohli stratiť, ako v nasledujúcich príkladoch:
- Spustenie funkcie Exit.
- Ak je aplikácia spustená v prehliadači:
- Zatvorenie prehliadača alebo karty prehliadača, na ktorej je aplikácia spustená.
- Výber spätného tlačidla prehľadávača.
- Spustenie funkcie Launch s LaunchTarget z Self.
- Ak je aplikácia spustená v Power Apps mobile (iOS alebo Android):
- Prejdením prstom prepnete na inú aplikáciu v Power Apps Mobile.
- Výber tlačidla späť na zariadení Android.
- Spustenie funkcie Launch na spustenie ďalšej aplikácie plátna.
Presný vzhľad dialógového okna s potvrdením sa môže v jednotlivých zariadeniach a verziách Power Apps líšiť.
Dialógové okno s potvrdením sa nezobrazí v Power Apps Studio.
ConfirmExitMessage
V predvolenom nastavení sa v dialógovom okne s potvrdením zobrazí všeobecná správa, napríklad „Možno ste neuložili zmeny.“ v jazyku používateľa.
Použitie ConfirmExitMessage a poskytnite vlastnú správu v dialógovom okne s potvrdením. Ak je táto vlastnosť prázdna, použije sa predvolená hodnota. Vlastné správy sa skrátia podľa potreby, aby sa zmestili do potvrdzovacieho dialógového okna, takže správu uchovajte najviac na niekoľkých riadkoch.
V prehliadači sa môže dialógové okno s potvrdením zobraziť so všeobecnou správou z prehliadača.
Poznámka
App object má dve ďalšie vlastnosti OnMessage
a BackEnabled
, ktoré sú experimentálne. Tieto vlastnosti budú nakoniec z objektu aplikácie odstránené. Odporúčame tieto vlastnosti nepoužívať vo vašom produkčnom prostredí.
Príklad
Vytvorte aplikáciu, ktorá obsahuje dva ovládacie prvky formulára, AccountForm a ContactForm.
Nastavte vlastnosť objektu Aplikácie ConfirmExit na tento výraz:
AccountForm.Unsaved Or ContactForm.Unsaved
Toto dialógové okno sa zobrazí, ak používateľ zmení údaje v ktoromkoľvek formulári a potom sa pokúsi aplikáciu zavrieť bez uloženia týchto zmien.
Nastavte vlastnosť objektu Aplikácie ConfirmExitMessage na tento vzorec:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
Toto dialógové okno sa zobrazí, ak používateľ zmení údaje vo formulári Obchodný vzťah a potom sa pokúsi aplikáciu zavrieť bez uloženia týchto zmien.
Nastavenie prístrojového kľúča pre Application Insights
Ak chcete exportovať denníky aplikácií vygenerované systémom do Application Insights, musíte pre svoju aplikáciu na plátne nastaviť Kľúč nástroja .
- Otvorte aplikáciu na úpravu v Power Apps Studio.
- Vyberte objekt Aplikácia v ľavom navigačnom strome.
- Zadajte Kľúč prístroja na table vlastností.
Ak sa údaje do aplikácie App Insights neodosielajú, kontaktujte svojho správcu Power Platform a overte, či je na úrovni nájomníka vypnutá funkcia App Insights .
Vlastnosť vzorcov
Pomocou pomenovaných vzorcov vo vlastnosti Vzorce definujte vzorec, ktorý možno opakovane použiť v celej aplikácii.
V Power Apps sú vlastnosti ovládacích prvkov riadené vzorcami. Ak chcete napríklad konzistentne nastaviť farbu pozadia v celej aplikácii, môžete pre každú nastaviť vlastnosť Vyplniť na spoločný vzorec:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
S toľkými miestami, kde sa tento vzorec môže objaviť, sa stáva náročným a náchylným na chyby pri aktualizácii všetkých, ak je potrebná zmena. Namiesto toho môžete vytvoriť globálnu premennú v OnStart na jednorazové nastavenie farby a potom znova použiť hodnotu v celej aplikácii:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Aj keď je táto metóda lepšia, závisí aj od spustenia OnStart predtým, ako sa stanoví hodnota pre BGColor. BGColor môže byť tiež zmanipulované v niektorom rohu aplikácie, o ktorom tvorca nevie, zmena vykonaná niekým iným, ktorú môže byť ťažké vystopovať.
Pomenované vzorce poskytujú alternatívu. Tak ako bežne píšeme control-property = expression, môžeme namiesto toho napísať name = expression a potom znova použiť name v celej našej aplikácii, čím sa nahradí expression. Definície týchto vzorcov sú vykonané vo vlastnosti Vzorce:
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Výhody používania pomenovaných vzorcov zahŕňajú:
- Hodnota vzorca je vždy k dispozícii. Neexistuje žiadna závislosť na časovaní, žiadne OnStart, ktoré sa musí spustiť ako prvé pred nastavením hodnoty, žiadny čas, v ktorom je hodnota vzorca nesprávna. Pomenované vzorce môžu na seba odkazovať v ľubovoľnom poradí, pokiaľ nevytvárajú zacyklený odkaz. Môžu byť vypočítané paralelne.
- Hodnota vzorca je vždy aktuálna. Vzorec môže vykonať výpočet, ktorý závisí od vlastností ovládacieho prvku alebo záznamov databázy, a keď sa zmenia, hodnota vzorca sa automaticky aktualizuje. Hodnotu nemusíte ručne aktualizovať ako pri premennej. A vzorce sa prepočítavajú len v prípade potreby.
- Definícia vzorca je nemenná. Definícia v časti Vzorce je jediným zdrojom pravdy a hodnotu nie je možné zmeniť niekde inde v aplikácii. Pri premenných je možné, že niektorý kód neočakávane zmení hodnotu, ale pri pomenovaných vzorcoch to nie je možné.
- Výpočet vzorca môže byť odložený. Pretože jeho hodnota je nemenná, dá sa vždy vypočítať, keď je to potrebné, čo znamená, že sa nemusí počítať, kým to nie je potrebné. Hodnoty vzorcov, ktoré sa nepoužívajú, kým sa nezobrazí obrazovka2 aplikácie, sa nemusia vypočítať, kým sa nezobrazí obrazovka2. Odloženie tejto práce môže skrátiť čas načítania aplikácie. Pomenované vzorce sú deklaratívne a poskytujú systému príležitosti na optimalizáciu spôsobu a času ich výpočtu.
- Pomenované vzorce sú koncept programu Excel. Power Fx používa koncepty programu Excel, kde je to možné, keďže tak veľa ľudí dobre pozná Excel. Pomenované vzorce sú ekvivalentom pomenovaných buniek a pomenovaných vzorcov v Exceli a spravujú sa pomocou Správcu názvov. Prepočítavajú sa automaticky ako tabuľkový procesor, rovnako ako vlastnosti ovládacích prvkov.
Pomenované vzorce sú definované jeden po druhom vo vlastnosti Vzorce, pričom každý končí bodkočiarkou. Typ vzorca sa odvodzuje z typov výrazu, ktorý je založený na typoch prvkov vo výraze a na spôsobe ich spoločného použitia. Napríklad tieto pomenované vzorce získavajú užitočné informácie o aktuálnom používateľovi z 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' );
Ak je potrebné aktualizovať vzorec pre UserTitle, dá sa to jednoducho urobiť na tomto jednom mieste. Ak nie je v aplikácii potrebná vlastnosť UserPhone, potom sa nebudú uskutočňovať hovory na tabuľku Používatelia v Dataverse. Neexistuje žiadna penalizácia za zahrnutie definície vzorca, ktorá sa nepoužije.
Niektoré obmedzenia pomenovaných vzorcov:
- Nemôžu používať funkcie správania alebo inak spôsobovať vedľajšie účinky v rámci aplikácie.
- Nemôžu vytvoriť zacyklený odkaz. Využitie a = b; a b = a; v rovnakej aplikácii nie je povolené.
Vlastnosť OnError
Ak chcete vykonať akciu po zistení chyby, použite OnError. Poskytuje globálnu príležitosť zachytiť chybový banner predtým, ako sa zobrazí koncovému používateľovi. Dá sa použiť aj na zaprotokolovanie chyby pomocou funkcie Trace alebo zápisu do databázy alebo webovej služby.
Pri výsledku každého vyhodnotenia vzorca sa kontroluje chyba. Ak ide o chybu, OnError sa vyhodnotí s rovnakým rozsahom premenných FirstError a AllErrors, ktoré by boli prítomné, ak by bol celý vzorec zabalený do funkcie IfError.
Ak je položka OnError prázdna, zobrazí sa predvolený banner chyby s chybou FirstError.Message. Definovanie vzorca OnError prepíše toto správanie a umožní výrobcovi nakladať s hlásením chýb tak, ako uzná za vhodné. Predvolené správanie možno vyžiadať v OnError opätovným vyvolaním chyby pomocou funkcie Error. To je užitočné, ak sa majú niektoré chyby odfiltrovať alebo spracovať iným spôsobom, zatiaľ čo iné sa majú preniesť.
OnError nedokáže nahradiť chybu vo výpočtoch tak, ako to dokáže IfError . V okamihu, keď sa vyvolá OnError, chyba už nastala a už bola spracovaná pomocou výpočtov vzorca. *OnError* riadi iba hlásenie chýb.
OnError vzorce sú vyhodnocované súbežne a je možné, že ich vyhodnotenie sa môže prekrývať so spracovaním iných chýb. Ak napríklad nastavíte globálnu premennú na začiatok OnError a prečítate ju neskôr v rovnakom vzorci, hodnota sa mohla zmeniť. Použite funkciu With vytvorte pomenovanú hodnotu, ktorá je pre vzorec lokálna.
Hoci každá chyba je spracovaná individuálne pomocou OnError, predvolený chybový banner sa nemusí zobraziť pre každú chybu samostatne. Aby sa predišlo tomu, že sa naraz zobrazí príliš veľa chybových bannerov, rovnaká chyba nespustí nový chybový banner, ak sa nedávno zobrazila.
Príklad
Zohľadnite ovládací prvok Štítok a Jazdec, ktoré sú spolu spojené pomocou vzorca:
Label1.Text = 1/Slider1.Value
Predvolená hodnota jazdca je 50. Ak sa jazdec presunie na 0, Štítok1 nezobrazí žiadnu hodnotu a zobrazí sa chybový pruh:
Pozrime sa podrobne na to, čo sa stalo:
- Používateľ posunul snímku doľava a vlastnosť Slider1.Value sa zmenila na 0.
- Label1.Text bol automaticky prehodnotený. Vyskytlo sa delenie nulou, čo spôsobilo chybu.
- V tomto vzorci nie je IfError. Delenie nulovou chybou vráti vyhodnotenie vzorca.
- Label1.Text nemôže pre túto chybu nič zobraziť, takže zobrazuje prázdny stav.
- Vyvolá sa OnError . Keďže neexistuje žiadny obslužný program, zobrazí sa štandardný chybový banner s informáciami o chybe.
V prípade potreby môžeme vzorec upraviť aj na Label1.Text = IfError( 1/Slider1.Value, 0 )
. Výsledkom by nebola žiadna chyba alebo chybový banner. Nemôžeme zmeniť hodnotu chyby z OnError keďže v tom momente už chyba nastala, je len otázkou, akým spôsobom sa ohlási.
Ak pridáme obslužný nástroj OnError, pred krokom 5 to nebude mať žiadny vplyv, ale môže to ovplyvniť spôsob nahlásenia chyby:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
Keď je toto zavedené, z pohľadu používateľa aplikácie nedôjde k žiadnej chybe. Chyba sa však pridá do sledovania monitora spolu so zdrojom informácií o chybe z FirstError:
Ak by sme chceli mať okrem sledovania zobrazený aj rovnaký predvolený chybový banner, môžeme chybu zopakovať pomocou funkcie Error po vyvolaní Trace, rovnako ako v prípade, ak tam funkcia Trace nebola:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
Vlastnosť OnStart
Poznámka
Použitie vlastnosti OnStart môže spôsobiť problémy s výkonom pri načítavaní aplikácie. Sme v procese vytvárania alternatív pre dva hlavné dôvody na používanie vlastnosti – ukladanie údajov do vyrovnávacej pamäte a nastavenie globálnych premenných. Už sme vytvorili alternatívu na definovanie prvej obrazovky, ktorá sa má zobraziť s funkciou Navigate. V závislosti od vášho kontextu môže byť táto vlastnosť predvolene zakázaná. Ak ju nevidíte a potrebujete ju použiť, skontrolujte v rozšírených nastaveniach aplikácie prepínač, ktorý ju aktivuje. Možno použiť aj vlastnosť OnVisible obrazovky.
Vlastnosť OnStart sa spustí, keď používateľ spustí aplikáciu. Táto vlastnosť sa často používa na vykonávanie nasledujúcich úloh:
- Načítanie a ukladanie údajov do kolekcií pomocou funkcie Collect.
- Nastavte globálne premenné pomocou funkcie Set.
Tento vzorec sa vyhodnotí skôr, ako sa objaví prvá obrazovka. Nie je načítaná žiadna obrazovka, takže nemôžete nastaviť kontextové premenné pomocou funkcie UpdateContext. Kontextové premenné však môžete odovzdať pomocou funkcie Navigate.
Po zmene vlastnosti OnStart ju otestujte umiestnením kurzora myši nad objekt Aplikácia v table Zobrazenie v stromovej štruktúre výberom troch bodiek (...) a následným výberom Spustiť OnStart. Na rozdiel od prvého načítania aplikácie sa už nastavia existujúce kolekcie a premenné. Ak chcete začať s prázdnymi zbierkami, použite funkciu ClearCollect namiesto funkcie Collect.
Poznámka
- Použitie funkcie Navigate vo vlastnosti OnStart bolo ukončené. Existujúce aplikácie budú naďalej fungovať. Na obmedzený čas ju stále môžete povoliť v nastaveniach aplikácie (dostupné pod Vyradené). Avšak použitie funkcie Navigate týmto spôsobom môže viesť k oneskoreniu načítania aplikácie, pretože to núti systém dokončiť vyhodnotenie OnStart pred zobrazením prvej obrazovky. Použite namiesto toho vlastnosť StartScreen na výpočet prvej zobrazenej obrazovky.
- Vyradený prepínač bude vypnutý pre aplikácie vytvorené pred marcom 2021, do ktorých ste pridali Navigovať do OnStart od marca 2021 do súčasnosti. Keď upravíte takéto aplikácie v Power Apps Studio, môže sa vám zobraziť chyba. Prepnite vyššie uvedený prepínač Vyradené na odstránenie tejto chyby.
Vlastnosť StartScreen
Poznámka
Vlastnosť StartScreen sa nezobrazí v zozname vlastností, keď je vypnutá možnosť Rozšírený panel vzorcov . Ak chcete vypnúť Vylepšený riadok vzorcov, prejdite na Nastavenia>Nadchádzajúce funkcie>Ukončené> vypnite prepínač Rozšírený riadok vzorcov, keď chcete použiť vlastnosť StartScreen.
Vlastnosť StartScreen určuje, ktorá obrazovka sa zobrazí ako prvá. Vyhodnotí sa raz pri načítaní aplikácie a vráti objekt na obrazovke, ktorý sa má zobraziť. V predvolenom nastavení bude táto vlastnosť prázdna a prvá obrazovka v stromovom zobrazení v Štúdiu sa zobrazí ako prvá.
StartScreen je vlastnosť toku údajov, ktorá nemôže obsahovať funkcie správania. K dispozícii sú všetky funkcie toku údajov, najmä použitie týchto funkcií a signálov na určenie, ktorá obrazovka sa má zobraziť ako prvá:
- Funkcia Param na čítanie parametrov používaných na spustenie aplikácie.
- Funkcia používateľa na čítanie informácií o aktuálnom používateľovi.
- LookUp, Filter, CountRows, Max a ďalšie funkcie, ktoré čítajú z zdroj údajov.
- Akékoľvek volania API cez konektor, ale dávajte pozor, aby sa rýchlo vrátili.
- Signály ako napr. Pripojenie, Kompas a App.
Poznámka
Globálne premenné a kolekcie vrátane tých, ktoré boli vytvorené v OnStart, nie sú dostupné v StartScreen. Existujú deklaratívne alternatívy, ako to urobiť, ktoré sú na ceste. Ak chcete získať spätnú väzbu k tomuto obmedzeniu, prejdite do komunitného fóra Power Apps.
Ak StartScreen vráti chybu, prvá obrazovka v stromovom zobrazení Štúdia sa zobrazí ako keby StartScreen nebolo nastavené. Použite funkciu IfError funkcia na zachytenie akýchkoľvek chýb a presmerovanie na príslušnú chybovú obrazovku.
Po zmene vlastnosti StartScreenv Štúdiu ju otestujte umiestnením kurzora myši nad objekt Aplikácia v table Zobrazenie v stromovej štruktúre výberom troch bodiek (...) a následným výberom Prejsť na StartScreen. Obrazovka sa zmení, ako keby bola aplikácia načítaná.
Príklady
Screen9
To naznačuje, že Screen9
by sa mala zobraziť ako prvá pri každom spustení aplikácie.
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
Skontroluje, či používateľ nastavil Param „admin-mode“ a použije ho na rozhodnutie, či sa má najskôr zobraziť HomeScreen alebo AdminScreen.
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
Skontroluje, či je účastník konferencie členom personálu, a pri spustení ho nasmeruje na správnu obrazovku.
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
Nasmeruje aplikáciu na základe volania API na buď na ForestScreen
alebo OceanScreen
. Ak API z akéhokoľvek dôvodu zlyhá, ErrorScreen
sa používa namiesto toho.
Vlastnosť StudioVersion
Pomocou vlastnosti StudioVersion môžete zobraziť alebo zaznamenať verziu aplikácie Power Apps Studio , ktorá bola použitá na zverejnenie aplikácie. Môže to byť užitočné pri ladení a na zabezpečenie toho, aby bola vaša aplikácia znova zverejnená s najnovšou verziou Power Apps Studio.
StudioVersion sa vráti ako text. Formát textu sa môže časom meniť a malo by sa s ním zaobchádzať ako s celkom; vyhnite sa extrahovaniu jednotlivých porcií.