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.

Lietojumprogrammas objekts koka skata rūtī.

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.
  • Pašlaik šie rekvizīti var atsaukties uz vadīklām tikai pirmajā ekrānā, ja ir iespējots līdzekļa Aizkavēta ielāde priekšskatījums (kas pēc noklusējuma ir paredzēts 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, kad ir patiess, atver apstiprinājuma dialoglodziņu, pirms programma tiek slēgta. 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

  1. Izveidojiet programmu, kurā ir divas formu vadīklas AccountForm un Kontaktu veidlapa.

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

    Vispārīga apstiprinājuma dialoglodziņš.

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

    Veidlapas apstiprinājuma dialoglodziņš.

Rekvizīts Formulas

Izmantojiet nosauktas formulas rekvizītā Formulas , lai definētu formulas, ko var atkārtoti lietot visā programmā.

Programmā Power Apps vadīklas rekvizītus nosaka formulas. 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. BGColor arī var tikt izmantota arī kādā programmas stūrī, par ko veidotājs nezina, tās ir izmaiņas, kuras veicis kāds cits un tās ir grūti izsekojamas.

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, var tikt neparedzēti mainīts kāds kods, taču tas nav iespējams, izmantojot nosauktas formulas.
  • 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. Tās automātiski tiek pārrēķinātas kā izklājlapa, tāpat kā tiek pārrēķinātas vadīklas rekvizīti.

Ir definētas formulas ar nosaukumiem rekvizītā Formulas , katrs beidzas ar semikolu. Formulas tipu izgūst no izteiksmes tipiem, pamatojoties uz izteiksmes elementu tipiem un to sakopošanu. 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;.

OnError rekvizīts

Izmantojiet OnError to, lai rīkotos pēc tam, kad ir noteikta kļūda. Tas sniedz globālu iespēju pārtvert kļūdas reklāmkarogu, pirms tas tiek rā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ā.

Ikvienas formulas novērtēšanas rezultātos tiek pārbaudīts, vai nav kļūdu. Ja tā ir kļūda, OnError vērtība tiek novērtēta, izmantojot tos pašus FirstError un AllErrors tvēruma mainīgos, kas būtu, ja visa formula būtu aplauzta IfError funkcijā.

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. Tas ir noderīgi, ja dažas kļūdas jāfiltrē vai jāapstrādā citā veidā, bet citām ir jāpāriet pāri.

OnError nevar aizstāt aprēķinos kļūdu tā, kā var IfError . Brīdī, kad tiek izsaukts OnError, kļūda jau ir notikusi, un tā jau ir apstrādāta, izmantojot formulas aprēķinus. *OnError* kontrolē tikai ziņojumus par kļūdām.

OnError formulas tiek vienlaicīgi novērtētas, un ir iespējams, ka to novērtēšana 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 vienlaikus nerādītu pārāk daudz kļūdu reklāmkarogu, tāda pati kļūda neaktivizēs jaunu kļūdu reklāmkarogu, ja tas nesen ir 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

Etiķetes un slīdņa vadīkla, kas saistīta ar formulu 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:

Slīdņa vadīkla pārvietota uz 0, kā rezultātā tiek parādīts dalījums ar nulles kļūdu un kļūdas reklāmkarogs.

Sīkāk aplūkosim notikušo:

  1. Lietotājs pārvietoja slīdni pa kreisi, bet rekvizīts Slide1.Value ir mainīts uz 0.
  2. Label1.Teksts tika automātiski atkārtoti pārvērtēts. Radās dalījums pēc nulles, ģenerējot kļūdu.
  3. Šajā formulā nav IfError. Dalījums ar nulles kļūdu tiek atgriezts, izmantojot formulas novērtējumu.
  4. Label1.Text šai kļūdai neko nevar parādīt, tāpēc tajā ir redzams tukšs stāvoklis.
  5. OnError tiek izsaukta. 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 ). Tā rezultātā netiek radīta kļūda vai kļūdu 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 pievienosim OnError apstrādātāju, tas neko neietekmēs pirms 5. darbības, bet tas var ietekmēt kļūdas ziņojuma veidu:

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

App.OnError formula, kas iestatīta, lai ģenerētu izsekošanu.

Tā vietā no programmas lietotāja perspektīvas nebūs kļūdu. Bet kļūda tiks pievienota Monitora izsekošanai, un tajā ir norādīts kļūdas informācijas avots no FirstError:

Slīdņa vadīkla tika pārvietota uz 0, kā rezultātā tika parādīts dalījums ar nulles kļūdu, bet nav kļūdas reklāmkaroga.

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.

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.

Programmas elementa īsinājumizvēlne funkcijai Run OnStart

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.
  • SlēdzisIzbeigts tiks atslēgts programmām, kas izveidotas pirms 2021. gada marta, kur pievienojāt Naviģēt uz OnStart laika posmā starp 2021. gada martu un šo brīdi. Ja rediģējat šādas programmas programmā Power Apps Studio, jūs varat ieraudzīt kļūdu. Pārslēdziet iepriekš norādīto slēdzi Izbeigts, lai noņēmtu šo kļūdu.

Rekvizīts StartScreen

Note

StartScreen rekvizīts neparādīsies rekvizītu sarakstā, ja ir ieslēgta opcija Uzlabotās formulas josla. Lai izslēgtu Uzlaboto formulas joslu, dodieties uz Iestatījumi>Gaidāmie līdzekļi>Noņemti>, izslēdziet Uzlabotās formulas joslas slēdzi, ja vēlaties lietot rekvizītu 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 būs tukšs un Studio Koka skatā pirmais ekrāns ir tas, kuru parāda pirmo.

StartScreen ir datu plūsmas rekvizīts, kas nevar saturēt uzvedī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 lasītu parametrus, kas tiek izmantoti programmas palaišanai.
  • Lietotāja funkcija, lai lasītu informāciju par esošo lietotāju.
  • LookUp, Filtrēt, CountRows, Max un citas funkcijas, kas tiek nolasī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. Drīz šādām darbībām būs arī deklaratīvas alternatīvas. Atsauksmei par šo ierobežojumu dodieties uz Power Apps kopienas forumu.

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, it kā programma būtu ielādēta.

Pāriet uz StartScreen

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.