Programmas objekts programmā Power Apps
Attiecas uz: Pamatnes programmām
Modeļa vadītas programmas
Sniedz informāciju par pašlaik palaisto programmu un kontroli pār programmas uzvedību.
Apraksts
Līdzīgi kā vadīkla, objekts Programma nodrošina rekvizītus, kas nosaka, kurš ekrāns tiek rādīts, un kas aicina lietotāju saglabāt izmaiņas, lai tās netiktu zaudētas. Katrai programmai ir objekts Programma.
Dažām objekta Programma rekvizītiem var rakstīt formulas. Koka skata rūts augšdaļā atlasiet objektu Programmas tāpat, kā to darītu ar jebkuru citu vadīklu vai ekrānu. Skatiet un rediģējiet kādu no objekta rekvizītiem, atlasot to nolaižamajā sarakstā pa kreisi no formulu joslas.
ActiveScreen rekvizīts
Rekvizīts ActiveScreen identificē ekrānu, kas tiek rādīts.
Šis rekvizīts atgriež ekrāna objektu. Izmantojiet to, lai atsauktos uz pašlaik redzamā ekrāna rekvizītiem, piemēram, nosaukumu ar formulu App.ActiveScreen.Name. Varat arī salīdzināt šo rekvizītu ar citu ekrāna objektu, piemēram, izmantojot salīdzināšanas formulu App.ActiveScreen = Screen2 , lai pārbaudītu, vai Screen2 ir pašlaik redzamais ekrāns.
Izmantojiet funkciju Back vai Navigate, lai nomainītu rādāmo ekrānu.
Rekvizīts BackEnabled
Rekvizīts BackEnabled maina to, kā programma reaģē uz ierīces atpakaļ žestu (pavelciet vai izmantojiet aparatūras pogu Atpakaļ ierīcēs, pavelciet no kreisās puses Android ierīcēs), kad tā darbojas mobilajā ierīcē iOS Power Apps . Ja šī opcija ir iespējota, ierīces atpakaļ žests pāriet atpakaļ uz pēdējo parādīto ekrānu, kas ir līdzīgs formulai Atpakaļ . Ja šī opcija ir atspējota, ierīces atpakaļnodošanas žests atgriež lietotāju lietotņu sarakstā.
ConfirmExit rekvizīti
Neviens nevēlas zaudēt nesaglabātās izmaiņas. Izmantojiet rekvizītus ConfirmExit un ConfirmExitMessage, lai brīdinātu lietotāju, pirms viņš aizver programmu.
Note
- ConfirmExit nedarbojas programmās, kas ir iegultas, piemēram, Power BI un SharePoint.
- Tagad šie rekvizīti var atsaukties uz vadīklām tikai pirmajā ekrānā, ja ir iespējots aizkavētās ielādes priekšskatījuma līdzeklis (kas pēc noklusējuma tas ir jaunām programmām). Ja tiek veiktas atsauces, Power Apps Studio nerāda kļūdu, bet iegūtā publicētā programma netiek atvērta Power Apps Mobile vai pārlūkprogrammā. Mēs aktīvi strādājam, lai atceltu šo ierobežojumu. Tikmēr varat atslēgt Novēlota jauda sadaļā Iestatījumi>Gaidāmie līdzekļi (sadaļā Priekšskatījums).
ConfirmExit
ConfirmExit ir Būla rekvizīts, kas, ja tas ir patiess, atver apstiprinājuma dialoglodziņu pirms lietojumprogrammas aizvēršanas. Pēc noklusējuma šis rekvizīts ir false, un neviens dialoglodziņš netiek parādīts.
Situācijās, kad lietotājam, iespējams, ir nesaglabātas izmaiņas programmā, izmantojiet šo rekvizītu, lai pirms iziešanas no programmas parādītu apstiprinājuma dialoglodziņu. Izmantojiet formulu, kas var pārbaudīt mainīgos un vadīklu rekvizītus (piemēram, vadīklas Rediģēt veidlapu rekvizītu Nesaglabāta ).
Apstiprinājuma dialoglodziņš tiek parādīts jebkurā situācijā, kurā var zust dati, piemēram, šajos piemēros:
- Palaižot funkciju Exit.
- Ja programma darbojas pārlūkprogrammā:
- Aizverot pārlūkprogrammu vai pārlūkprogrammas cilni, kurā darbojas programma.
- Pārlūkprogrammas atpakaļpogas atlase.
- Palaižot Launch funkciju ar LaunchTarget iestatītu kā Self.
- Ja programma darbojas mobilajā ierīcē Power Apps (iOS vai Android):
- Pavilkšana, lai pārslēgtos uz citu Power Apps Mobile programmu.
- Ja ierīcē Android atlasāt pogu Atpakaļ.
- Palaižot Launch funkciju, lai palaistu citu pamatnes programmu.
Apstiprinājuma dialoglodziņa precīzais izskats var atšķirties dažādās Power Apps ierīcēs un versijās.
Apstiprinājuma dialoglodziņā neparādās programmā Power Apps Studio.
ConfirmExitMessage
Pēc noklusējuma apstiprinājuma dialoglodziņā tiek parādīts vispārējs ziņojums, piemēram, “Jums var būt nesaglabātas izmaiņas.” lietotāja valodā.
Izmantojiet ConfirmExitMessage, lai apstiprinājuma dialoglodziņā nodrošinātu pielāgotu ziņojumu. Ja šis rekvizīts ir tukšs, tiek izmantota noklusējuma vērtība. Pielāgotie ziņojumi tiek saīsināti pēc vajadzības, lai ietilptu apstiprināšanas dialoglodziņā, tāpēc paturiet ziņojumu maksimāli dažās rindās.
Pārlūkprogrammā apstiprinājuma dialoglodziņš var tikt parādīts ar vispārēju ziņojumu no pārlūka.
Note
Programmas objektam ir vēl divi rekvizīti - OnMessage
un BackEnabled
- kas ir eksperimentāli. Šie rekvizīti pēc tam tiks noņemti no programmas objekta. Šos rekvizītus nav ieteicams lietot savā ražošanas vidē.
Piemērs
Izveidojiet programmu, kurā ir divas formu vadīklas AccountForm un Kontaktu veidlapa.
Iestatiet objekta Programma rekvizītu ConfirmExit šai izteiksmei:
AccountForm.Unsaved Or ContactForm.Unsaved
Šis dialoglodziņš tiek parādīts, ja lietotājs maina datus jebkurā veidlapā un pēc tam mēģina aizvērt programmu, nesaglabājot šīs izmaiņas.
Iestatiet objekta Programma rekvizītu ConfirmExitMessage šai formulai:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
Šis dialoglodziņš tiek parādīts, ja lietotājs maina datus jebkurā konta veidlapā un pēc tam mēģina aizvērt programmu, nesaglabājot šīs izmaiņas.
Instrumentu atslēgas iestatīšana Application Insights
Lai eksportētu sistēmas ģenerētus lietojumprogrammu žurnālus Application Insights, audekla programmai ir jāiestata instrumentācijas atslēga .
- Atveriet lietotni rediģēšanai Power Apps Studio.
- Kreisajā navigācijas koka skatā atlasiet programmas objektu.
- Rekvizītu rūtī ievadiet instrumentu atslēgu .
Ja dati netiek sūtīti programmai App Insights, sazinieties ar Power Platform administratoru un pārbaudiet, vai līdzeklis App Insights nomnieka līmenī ir atspējots.
Rekvizīts Formulas
Izmantojiet nosauktas formulas rekvizītā Formulas , lai definētu formulas, ko var atkārtoti lietot visā programmā.
In Power Apps formulas nosaka kontroles īpašību vērtību. Piemēram, lai konsekventi iestatītu fona krāsu programmā, varat iestatīt rekvizītu Aizpildīt katrai no kopējām formulām:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
Ja šī formula var parādīties tik daudzās vietās, tā nogurst un var rasties kļūdaina nepieciešamība atjaunināt, ja šīs izmaiņas vispār ir nepieciešamas. Tā vietā jūs varat izveidot globālo mainīgo programmā OnStart , lai iestatītu krāsu vienreiz, un pēc tam šo vērtību atkārtoti lietot visā programmā:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Lai gan šī metode ir labāka, tā arī ir atkarīga no OnStart palaišanas, pirms tiek izveidota BGColor vērtība. Ar BGColor var manipulēt arī kādā lietotnes stūrī, par kuru veidotājs nezina, izmaiņas, ko veicis kāds cits, un to var būt grūti izsekot.
Nosauktas formulas sniedz alternatīvu. Tāpat kā mēs parasti rakstām control-property = izteiksme,, tā vietā varam rakstīt name = izteiksme, un pēc tam atkārtoti lietot nosaukumu visā mūsu programmā, lai aizstātu izteiksmi. Šo formulu definīcijas tiek veiktas rekvizītā Formulas :
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Nosauktu formulu izmantošanas iespēju klāstā ietilpst:
- Formulas vērtība vienmēr ir pieejama. Nav atkarīga laika grafiks, ne OnStart, kas vispirms darbojas pirms vērtības iestatīšanas, ne laika, kad formulas vērtība ir nepareiza. Nosauktās formulas var jebkurā secībā norādīt cits citu, ja vien tās neveido riņķveida atsauci. Tos var aprēķināt paralēli.
- Formulas vērtība vienmēr ir atjaunināta. Formula var veikt aprēķinus, kas ir atkarīgi no vadīklas rekvizītiem vai datu bāzes ierakstiem, un, to mainot, formulas vērtība tiek automātiski atjaunināta. Vērtība nav jāatjaunina manuāli tāpat kā mainīgais. Un formulas tiek pārrēķinātas tikai tad, ja nepieciešams.
- Formulas definīcija ir nemainīga. Formulu definīcija ir vienīgais patiesais avots, un vērtību programmā vēl nevar mainīt. Izmantojot mainīgos, iespējams, ka kāds kods negaidīti maina vērtību, taču šī grūti atkļūdojamā situācija nav iespējama ar nosauktām formulām.
- Formulas aprēķinu var atlikt. Tā kā tā vērtība ir nemainīga, to vienmēr var aprēķināt, kad nepieciešams, kas nozīmē, ka tas nav jāaprēķina, kamēr tas nav nepieciešams. Formulas vērtības, kas netiek izmantotas, kamēr lietojumprogrammā neparādās screen2, nav jāaprēķina, kamēr screen2 nav redzams. Šī darba atlikšana var uzlabot lietotnes ielādes laiku. Nosauktās formulas ir deklaratīvas, un tās sniedz sistēmai iespējas optimizēt aprēķinu veidu un laiku.
- Nosauktās formulas ir Excel jēdziens. Power Fx izmanto Excel jēdzienus, kur vien iespējams, jo daudzi cilvēki labi pārzina programmu Excel. Nosauktas formulas ir ekvivalentas nosaukumam ar nosaukumiem un nosauktām formulām programmā Excel, pārvaldītas ar nosaukumu pārvaldnieku. Tie tiek pārrēķināti automātiski, tāpat kā to dara izklājlapas šūnas un vadības rekvizīti.
Ir definētas formulas ar nosaukumiem rekvizītā Formulas , katrs beidzas ar semikolu. Formulas tips tiek izsecināts no elementu tipiem formulā un no tā, kā tie tiek lietoti kopā. Piemēram, šīs nosauktās formulas izgūst noderīgu informāciju par pašreizējo lietotāju no 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' );
Ja UserTitle formula ir jāatjaunina, to var viegli izdarīt šajā vienā atrašanās vietā. Ja UserPhone programmā nav nepieciešams, tad netiek veikti šie zvani uz Lietotāju tabulu programmā Dataverse. Neizmantotas formulas definīcijas iekļaušana nav sodāma.
Daži no nosaukto formulu ierobežojumiem:
- Viņi nevar izmantot uzvedības funkcijas vai kā citādi izraisīt blakusefektus programmā.
- Tie nevar izveidot riņķveida atsauci. Vienā programmā nedrīkst būt a = b; un b = a;.
Lietotāja definētas funkcijas
Svarīgi
- Lietotāja definētās funkcijas ir eksperimentālas.
- Eksperimentālie līdzekļi nav paredzēti izmantošanai ražošanā un var nebūt pilnīgi. Šie līdzekļi ir pieejami pirms oficiālā laidiena, lai jūs varētu iegūt agrīnu piekļuvi un sniegt atsauksmes. Papildinformācija: Izpratne par izmēģinājuma, priekšskatījuma un novecojušajiem līdzekļiem pamatnes programmā
- Šajā rakstā aprakstītā darbība ir pieejama tikai tad, ja lietotāja definēto funkciju eksperimentālais līdzeklis iestatījumos > Gaidāmie līdzekļi > Eksperimentālais ir ieslēgts (pēc noklusējuma tas ir izslēgts).
- Mēs novērtējam jūsu atsauksmes. Paziņojiet mums, ko jūs domājat eksperimentālo funkciju kopienas forumā Power Apps .
Power Fx ietver garu iebūvēto funkciju sarakstu, piemēram , If,Text un Set. Lietotāja definētās funkcijas ļauj jums rakstīt savas funkcijas, kas ņem parametrus un atgriež vērtību, tāpat kā iebūvētās funkcijas. Lietotāja definētās funkcijas var uzskatīt par nosauktu formulu paplašinājumu, kas pievieno parametrus un atbalsta uzvedības formulas.
Piemēram, varat definēt nosauktu formulu, kas atgriež daiļliteratūras grāmatas no bibliotēkas:
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 parametriem mums būtu jādefinē atsevišķas nosauktas formulas katram žanram. Bet tā vietā parametrizēsim mūsu nosaukto formulu:
LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );
LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );
Tagad mēs varam zvanīt LibraryGenre( "Fiction" )
LibraryGenre( "Reference" )
vai filtrēt citus žanrus ar viena lietotāja definētu funkciju.
Sintakse ir šāda:
FunctionName( [ ParameterName1: ParameterType1 [, ParameterName2: ParameterType2 ... ] ] ) : ReturnType = formula;
- FunctionName – Obligāts. Lietotāja definētās funkcijas nosaukums.
- Parametru nosaukumi - pēc izvēles. Funkcijas parametra nosaukums.
- Parametru tipi - pēc izvēles. Tipa nosaukums, iebūvēts datu tipa nosaukums, datu avota nosaukums vai tips, kas definēts ar funkciju Tips .
- ReturnType - Obligāts. Funkcijas atgrieztās vērtības tips.
- Formula - Obligāts. Formula, kas aprēķina funkcijas vērtību, pamatojoties uz parametriem.
Katrs parametrs un lietotāja definēšanas funkcijas izvade ir jāievada. Šajā piemērā SelectedGenre: Text
mūsu funkcijas pirmais parametrs ir teksta tips un SelectedGenre
tas ir tā parametra nosaukums, kas tiek izmantots pamattekstā filtra operācijai. Atbalstīto tipu nosaukumus skatiet rakstā Datu tipi . Funkcija Type tiek izmantota, lai izveidotu apkopojuma veidu mūsu bibliotēkai, lai mēs varētu atgriezt grāmatu tabulu no mūsu funkcijas.
Mēs definējām LibraryType
kā daudzskaitļa tabulu ar ierakstu tipu. Ja mēs vēlamies nodot vienu grāmatu funkcijai, mēs varam izvilkt šīs tabulas ieraksta tipu ar funkciju RecordOf:
BookType := Type( RecordOf( LibraryType ) );
IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);
Funkciju parametru ierakstu saskaņošana ir stingrāka nekā citās daļās Power Fx. Ieraksta vērtības laukiem ir jābūt pareizai tipa definīcijas apakškopai, un tajos nedrīkst iekļaut papildu laukus. Piemēram, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" )
radīsies kļūda.
Ņemiet vērā, ka rekursiju vēl neatbalsta lietotāja definētās funkcijas.
Lietotāja definētas uzvedības funkcijas
Nosauktās formulas un lielākā daļa lietotāja definēto funkciju neatbalsta uzvedības funkcijas ar blakusparādībām, piemēram , Iestatīt vai Paziņot. Kopumā vislabāk ir izvairīties no stāvokļa atjaunināšanas, ja iespējams, tā vietā paļaujoties uz funkcionāliem programmēšanas modeļiem un ļaujot Power Fx automātiski pārrēķināt formulas pēc vajadzības. Bet ir gadījumi, kad tas ir neizbēgami. Lai iekļautu uzvedības loģiku lietotāja definētā funkcijā, aptiniet ķermeni cirtainās bikšturi:
Spend( Amount: Number ) : Void = {
If( Amount > Savings,
Error( $"{Amount} is more than available savings" ),
Set( Savings, Savings - Amount );
Set( Spent, Spent + Amount)
);
}
Tagad mēs varam piezvanīt Spend( 12 )
, lai pārbaudītu, vai mūsu ietaupījumos ir 12, un, ja tā, lai debetētu to par 12 un pievienotu 12 iztērētajam mainīgajam. Šīs funkcijas atgrieztās vērtības tips ir Anulēt , jo tā neatgriež vērtību.
Lietotāja definētas uzvedības funkcijas sintakse ir šāda:
FunctionName( [ ParameterName1: ParameterType1 [, ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Formula2 ... ] };
- FunctionName – Obligāts. Lietotāja definētās funkcijas nosaukums.
- Parametru nosaukumi - pēc izvēles. Funkcijas parametra nosaukums.
- Parametru tipi - pēc izvēles. Tipa nosaukums, iebūvēts datu tipa nosaukums, datu avota nosaukums vai tips, kas definēts ar funkciju Tips.
- ReturnType - Obligāts. Funkcijas atgrieztās vērtības tips. Izmantojiet opciju Void , ja funkcija neatgriež vērtību.
- Formulas - Obligāti. Formula, kas aprēķina funkcijas vērtību, pamatojoties uz parametriem.
Tāpat kā ar visām Power Fx formulām, izpilde nebeidzas, ja rodas kļūda. Kad funkcija Error ir izsaukta, funkcija If neļauj veikt izmaiņas sadaļā Uzkrājumi un Iztērētie . Funkciju IfError var izmantot arī, lai novērstu turpmāku izpildi pēc kļūdas. Lai gan tas atgriež vienumu Void, formula joprojām var atgriezt kļūdu, ja rodas problēma.
Lietotāja definētie tipi
Svarīgi
- Lietotāja definētie tipi ir eksperimentāla funkcija.
- Eksperimentālie līdzekļi nav paredzēti izmantošanai ražošanā un var nebūt pilnīgi. Šie līdzekļi ir pieejami pirms oficiālā laidiena, lai jūs varētu iegūt agrīnu piekļuvi un sniegt atsauksmes. Papildinformācija: Izpratne par izmēģinājuma, priekšskatījuma un novecojušajiem līdzekļiem pamatnes programmā
- Šajā rakstā aprakstītā darbība ir pieejama tikai tad, ja lietotāja definēto tipu eksperimentālais līdzeklis iestatījumos > Gaidāmie līdzekļi > Eksperimentālie līdzekļi ir ieslēgts (pēc noklusējuma tas ir izslēgts).
- Mēs novērtējam jūsu atsauksmes. Paziņojiet mums, ko jūs domājat eksperimentālo funkciju kopienas forumā Power Apps .
Formulas ar nosaukumiem var izmantot kopā ar funkciju Tips , lai izveidotu lietotāja definētus tipus. Izmantojiet :=
=
, nevis, lai, piemēram Book := Type( { Title: Text, Author: Text } )
, definētu lietotāja definētu tipu. Papildinformāciju un piemērus skatiet rakstā Funkcija .
OnError rekvizīts
Izmantojiet OnError , lai rīkotos, ja kļūda rodas jebkurā programmas vietā. Tas nodrošina globālu iespēju pārtvert kļūdas reklāmkarogu, pirms tas tiek parādīts gala lietotājam. To var izmantot arī, lai pieteiktos kļūdai, izmantojot Izsekot funkciju, vai rakstītu datu bāzē vai tīmekļa pakalpojumā.
Audekla programmās katra formulas novērtējuma rezultāts tiek pārbaudīts, vai tajā nav kļūdas. Ja rodas kļūda, OnError tiek novērtēts ar tiem pašiem FirstError un AllErrors tvēruma mainīgajiem, kas būtu izmantoti, ja visa formula būtu iesaiņota funkcijā IfError.
Ja OnError ir tukša, noklusējuma kļūdas reklāmkarogs tiek rādīts kopā ar kļūdas FirstError.Message. Definējot OnError formulu, tiek ignorēta šī uzvedība, ļaujot veidotājam apstrādāt kļūdu uzrādīšanu, kā viņi to redz. Noklusejuma darbību var pieprasīt OnError, atkārtoti atvirzot kļūdu ar Kļūdas funkciju. Izmantojiet atmešanas pieeju, ja dažas kļūdas ir jāfiltrē vai jāapstrādā citādi, bet citas ir jānokārto.
OnError nevar aizstāt kļūdu aprēķinos tā, kā to var izdarīt IfError . Ja tiek izsaukts OnError , kļūda jau ir notikusi, un tā jau ir apstrādāta, izmantojot formulu aprēķinus, piemēram , IfError; OnError kontrolē tikai ziņošanu par kļūdām.
OnError formulas tiek novērtētas vienlaicīgi, un ir iespējams, ka to novērtējums var pārklāties ar citu kļūdu apstrādi. Piemēram, ja iestatāt globālo mainīgo OnError un vēlāk to izlasīsiet tajā pašā formulā, šī vērtība var būt mainīta. Izmantojiet funkciju Ar, lai izveidotu formulai lokālu nosaukuma vērtību.
Lai gan katra kļūda tiek atsevišķi apstrādāta OnError, noklusējuma kļūdas reklāmkarogs katrai kļūdai var neparādīties atsevišķi. Lai izvairītos no tā, ka vienlaikus tiek rādīts pārāk daudz kļūdu reklāmkarogu, tas pats kļūdas reklāmkarogs vairs netiks rādīts, ja tas nesen tika parādīts.
Piemērs
Ņemiet vērā Etiķetes vadīklu un Slīdņa vadīklu, kuras ir saistītas ar šo formuluu:
Label1.Text = 1/Slider1.Value
Iestatiet slīdni pēc noklusējuma uz 50. Ja slīdnis ir pārvietots uz 0, Label1 nerādīs vērtību un tiek parādīts kļūdas reklāmkarogs:
Sīkāk aplūkosim notikušo:
- Lietotājs pārvietoja slīdni pa kreisi, bet rekvizīts Slide1.Value ir mainīts uz 0.
- Label1.Teksts tika automātiski pārvērtēts. Radās dalījums pēc nulles, ģenerējot kļūdu.
- Šajā formulā nav IfError. Dalījums ar nulles kļūdu tiek atgriezts, izmantojot formulas novērtējumu.
- Label1.Text nevar parādīt neko par šo kļūdu, tāpēc tas parāda tukšu stāvokli.
- Tiek izsaukts OnError . Tā kā nav apdarinātāja, tiek parādīts standarta kļūdas reklāmkarogs ar kļūdas informāciju.
Ja nepieciešams, mēs arī varētu modificēt formulas vērtību uz Label1.Text = IfError( 1/Slider1.Value, 0 )
. Izmantojot IfError , netiks parādīta kļūda vai kļūdas reklāmkarogs. Mēs nevaram mainīt kļūdas OnError vērtību , jo tajā brīdī kļūda jau ir notikusi, tas ir tikai jautājums, kā tas tiks ziņots.
Ja mēs pievienojam OnError apdarinātāju, tas neietekmē pirms 5. darbības, bet tas var ietekmēt to, kā tiek ziņots par kļūdu:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
Izmantojot šo OnError apdarinātāju, no lietotnes lietotāja viedokļa kļūdas nebūs. Bet kļūda tiks pievienota monitora izsekošanai, kopā ar FirstError kļūdas informācijasavotu:
Ja mēs arī izsekojam, ka papildus izsekošanai tiek rādīts tāds pats noklusējuma kļūdas reklāmkarogs, mēs kļūdas ziņojumu varam atjaunot ar funkciju Kļūda pēc Izsekot zvana tāpat kā tad, ja funkcijas Izsekot nebūtu:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
OnStart rekvizīts
Note
Rekvizīta OnStart izmantošana var radīt veiktspējas problēmas, ielādējot programmu. Mēs veidojam alternatīvas iepriekš minēto divu iemeslu dēļ, izmantojot rekvizītu kešdatus un iestatot globālus mainīgos. Esam jau izveidojuši alternatīvu pirmā ekrāna definēšanai, lai to parādītu ar Navigate. Atkarībā no konteksta šis rekvizīts pēc noklusējuma var būt atspējots. Ja neredzat to, bet jums to vajag izmantot, pārbaudiet programmas slēdzi Papildu iestatījumos, lai to iespējotu. Var izmantot arī ekrāna rekvizītu OnVisible. Pēc noklusējuma, kad ir iespējota nebloķēšanas OnStart kārtula, tā ļauj funkcijai OnStart darboties vienlaikus ar citām programmas kārtulām. Tātad, ja mainīgie, uz kuriem ir atsauces citās lietotņu kārtulās, tiek inicializēti funkcijā OnStart , tie, iespējams, vēl nav pilnībā inicializēti. Turklāt pastāv iespēja, ka ekrāns var atveidot un kļūt interaktīvs, pirms tiek pabeigta funkciju Screen.OnVisible vai App.OnStart izpilde, it īpaši, ja to pabeigšana prasa ilgu laiku.
Rekvizīts OnStart tiek palaists, kad lietotājs sāk darbu ar programmu. Šo rekvizītu bieži izmanto šādu uzdevumu izpildei:
- Izgūt un iekļaut kešatmiņas datus kolekcijās, izmantojot funkciju Collect.
- Iestatīt globālos mainīgos, izmantojot funkciju Set.
Šī formula tiek novērtēta, pirms tiek parādīts pirmais ekrāns. Ekrāns netiek ielādēts, tāpēc konteksta mainīgos nevar iestatīt ar funkciju UpdateContext. Taču konteksta mainīgos var padot ar funkciju Navigate.
Mainot rekvizītu OnStart, testējiet to, uzvedot ar peli pāri objektam Programma rūtī Koka skats, atlasot trīspunkti (...) un tad atlasot Run OnStart. Atšķirībā no programmas ielādes pirmo reizi esošās kolekcijas un mainīgie jau tiks iestatīti. Lai sāktu ar tukšām kolekcijām, izmantojiet funkciju ClearCollect, nevis Collect.
Piezīmes
- Funkcijas Navigate izmantošana rekvizītā OnStart ir izbeigta. Esošās programmas turpinās darboties. Ierobežotu laiku jūs joprojām varēsiet iespējot to programmu iestatījumos (pieejams sadaļā Izbeigts). Tomēr funkcijas Naviģēt izmantošana šādā veidā var likt programmai ielādēt aizkaves, jo tās liek sistēmai pabeigt OnStart novērtēšanu pirms parādīšanas uz pirmā ekrāna. Tā vietā izmantojiet rekvizītu StartScreen, lai aprēķinātu pirmo atainoto ekrānu.
- Izslēgtais slēdzis būs izslēgts lietotnēm, kas izveidotas pirms 2021. gada marta, kur no 2021. gada marta līdz šim brīdim pievienojāt opciju Naviģēt uz OnStart . Ja rediģējat šādas programmas programmā Power Apps Studio, jūs varat ieraudzīt kļūdu. Ieslēdziet pensionēto slēdzi, lai notīrītu šo kļūdu.
Rekvizīts StartScreen
Rekvizīts StartScreen nosaka, kurš ekrāns tiks parādīts pirmais. Tas ir novērtēts, kolīdz programma ir ielādēta un atgriež ekrāna objektu, lai to parādītu. Pēc noklusējuma šis rekvizīts ir tukšs, un vispirms tiek parādīts pirmais ekrāns Studijas koka skatā.
StartScreen ir datu plūsmas rekvizīts, kurā nevar būt ietvertas darbības funkcijas. Visas datu plūsmas funkcijas ir pieejamas, konkrēti, izmantojiet šīs funkcijas un signālus, lai noteiktu, kuru ekranu parādīt pirmo:
- Param funkcija, lai nolasītu parametrus, kas tiek izmantoti lietotnes startēšanai.
- Lietotāja funkcija, lai lasītu informāciju par pašreizējo lietotāju.
- Uzmeklēšana, Filtrs, CountRows, Max un citas funkcijas, kas tiek lasītas no datu avota.
- Jebkuri API izsaukumi caur savienotāju, bet ņemiet vērā, ka tie ātri atgriežas.
- Signāli, kā Savienojums, Kompass un Programma.
Note
Globālie mainīgie un kolekcijas, tostarp tās, kas izveidotas OnStart, nav pieejamas StartScreen. Nosauktās formulas ir pieejamas un bieži vien ir labāka alternatīva formulu atkārtotai izmantošanai visā lietotnē.
Ja StartScreen atgriež kļudu, pirmais ekrāns Studio Koka skatā būs parādīts it kā StartScreen nav iestatīts. Izmantojiet funkciju IfError, lai fiksētu jebkādas kļūdas un novirzītu tās uz attiecīgo kļūdu ekrānu.
Mainot StartScreen pakalpojumā Studio, testējiet to, uzvedot peli pāri objektam Programma rūtī Koka skats, atlasot trīspunkti (...) un atlasot Naviģēt uz StartScreen. Ekrāns mainīsies tā, it kā lietotne būtu tikko ielādēta.
Piemēri
Screen9
Norāda, ka Screen9
vajadzētu parādīt pirmo, palaižot programmu.
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
Pārbauda, vai lietotājs ir iestatījis parametru "admin-mode" un izmanto to, lai nolemtu, vai HomeScreen vai AdminScreen būtu jārāda pirmais.
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
Pārbauda, vai konferences apmeklētājs ir personāla loceklis, un novirza to uz attiecīgo sākuma ekrānu.
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
Novirza programmu, balstoties uz API izsaukumu vai nu uz ForestScreen
, vai nu OceanScreen
. Ja API kādu iemeslu dēļ neizdodas, tā vietā tiek izmantots ErrorScreen
.
StudioVersion rekvizīts
Izmantojiet rekvizītu StudioVersion , lai parādītu vai reģistrētu versiju Power Apps Studio , kas tika izmantota programmas publicēšanai. Tas var būt noderīgi, atkļūdojot un nodrošinot, ka jūsu lietotne ir pārpublicēta ar jaunāko versiju Power Apps Studio.
StudioVersion tiek atgriezts kā teksts. Teksta formāts laika gaitā var mainīties, un tas būtu jāuzskata par vienu veselumu; Izvairieties no atsevišķu porciju ieguves.