Share via


„Power Apps“ objektas „App“

Taikoma: drobės programoms Modeliu pagrįstoms programoms

Pateikia informaciją apie šiuo metu veikiančią programą ir valdo programos veikimą.

Aprašas

Kaip ir valdiklis, objektas App pateikia ypatybių, kurios identifikuoja, kuris ekranas rodomas, ir paragina vartotoją įrašyti pakeitimus, kad jų neprarastų. Kiekviena programa turi objektą App.

Galite kurti kai kurių objekto App ypatybių formules. SritiesMedžio rodinys viršuje pasirinkite objektą App, kaip pasirinktumėte bet kokį kitą valdiklį ar ekraną. Peržiūrėkite ir redaguokite vieną iš objekto ypatybių pasirinkdami ją išplečiamajame sąraše, esančiame formulės juostos kairėje.

Programėlės objektas medžio rodinio srityje.

Ypatybė ActiveScreen

Ypatybė ActiveScreen identifikuoja rodomą ekraną.

Ši ypatybė grąžina ekrano objektą. Naudokite jį norėdami nurodyti šiuo metu rodomo ekrano ypatybes, pvz., pavadinimą su formule App.ActiveScreen.Name. Taip pat galite palyginti šią ypatybę su kitu ekrano objektu, pvz., naudodami palyginimo formulę App.ActiveScreen = Screen2 , kad patikrintumėte, ar Screen2 yra šiuo metu rodomas ekranas.

Norėdami pakeisti, kuris ekranas rodomas, naudokite funkciją Back arba Navigate.

"BackEnabled" ypatybė

Ypatybė "BackEnabled " pakeičia, kaip programėlė reaguoja į įrenginio grįžimo gestą (perbraukite arba naudokite aparatūros grįžimo mygtuką Android įrenginiuose, perbraukite iš kairės iOS įrenginiuose), kai veikia Power Apps mobiliajame telefone. Kai įjungta, įrenginio grįžimo gestas grįžta į vėliausiai rodytą ekraną, kuris yra panašus į formulę Atgal . Kai išjungta, įrenginio grąžinimo gestas grąžina vartotoją į programų sąrašą.

Ypatybės ConfirmExit

Niekas nenori prarasti neįrašytų pakeitimų. Naudokite ypatybes ConfirmExit ir ConfirmExitMessage, kad įspėtumėte vartotoją prieš jam uždarant programą.

Pastaba.

  • ConfirmExit neveikia programose, kurios yra patalpintos, Power BI ir SharePoint.
  • Šiuo metu šios ypatybės gali nurodyti tik pirmojo ekrano valdiklius, jei įjungta peržiūros funkcija Atidėtas įkėlimas (įgalinta naujose programose pagal numatytuosius parametrus). Jei yra nuorodų, „Power Apps Studio“ klaida nerodoma, bet publikuota programos negalima atidaryti naudojant „Power Apps“ mobiliąją programą arba naršyklę. Aktyviai stengiamės pašalinti šį apribojimą. Tuo metu, galite išjungti Vėluojantis įkėlimas esančius Nustatymai>Būsimos funkcijos (dalyje Peržiūra).

ConfirmExit

ConfirmExit yra Bulio logikos ypatybė, kuri, nustačius reikšmę true, atidaro patvirtinimo dialogo langą prieš uždarant programą. Pagal numatytuosius parametrus šios ypatybės reikšmė yra false ir dialogo langas nerodomas.

Tais atvejais, kai naudotojas gali turėti neišsaugotų pakeitimų programoje, naudokite šią nuosavybę, kad prieš išeinant iš programos būtų rodomas patvirtinimo dialogo langas. Naudokite formulę, kuri gali tikrinti kintamuosius ir valdyti ypatybes (pavyzdžiui, valdiklio Redaguoti formą ypatybę Unsaved).

Patvirtinimo dialogo langas pateikiamas bet kurioje situacijoje, kurioje duomenys gali būti prarasti, pavyzdžiui:

  • Vykdant funkciją Exit.
  • Jei programa paleista naršyklėje:
    • Uždarant naršyklę arba naršyklės skirtuką, kurioje paleista programa.
    • Pasirinkus naršyklės grįžimo atgal mygtuką.
    • „Launch“ funkcijos vykdymas „LaunchTarget“Paties.
  • Jei programa veikia mobiliajame įrenginyje Power Apps (iOS arba Android):
    • Perbraukus, kai norima pereiti prie kitos programos „Power Apps“ mobiliojoje programoje.
    • Pasirinkus grįžimo atgal mygtuką „Android“ įrenginyje.
    • „Launchׅ“ funkcijos vykdymas kitos drobės programos įjungimui.

Tiksli patvirtinimo dialogo lango išvaizda gali skirtis atsižvelgiant į įrenginį ir „Power Apps“ versiją.

Patvirtinimo dialogo langas nerodomas naudojant „Power Apps Studio“.

ConfirmExitMessage

Pagal numatytuosius parametrus patvirtinimo dialogo lange pateikiamas bendro pobūdžio pranešimas,Naudotojo kalboje.

Naudokite ConfirmExitMessage, jei patvirtinimo dialogo lange norite pateikti pasirinktinį pranešimą. Jei šios ypatybės reikšmė nenurodyta, naudojama numatytoji reikšmė. Jei reikia, pasirinktiniai pranešimai sutrumpinami, kad tilptų patvirtinimo dialogo lange, todėl geriausia sukurti trumpą kelių eilučių pranešimą.

Naršyklėje patvirtinimo dialogo lange gali būti rodomas bendro pobūdžio naršyklės pranešimas.

Pastaba.

Programos objektas turi dar dvi ypatybes OnMessage ir yra BackEnabled eksperimentinis. Galiausiai šios ypatybės bus pašalintos iš programos objekto. Rekomenduojame Jums nenaudoti šių ypatybių gamybos aplinkoje.

Pavyzdžiui

  1. Sukurkite programą, kurioje būtų du formos valdikliai: AccountForm ir ContactForm.

  2. Nustatykite objekto App ypatybės ConfirmExit išraišką, kaip nurodyta toliau:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Šis dialogo langas rodomas, jei vartotojas pakeičia bet kurios formos duomenis, o tada bando uždaryti programą neįrašęs pakeitimų.

    Bendrasis patvirtinimo dialogo langas.

  3. Nustatykite objekto App ypatybę ConfirmExitMessage pagal toliau nurodytą formulę:

    If( AccountsForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

    Šis dialogo langas rodomas, jei vartotojas pakeičia Paskyros formos duomenis, o tada bando uždaryti programą neįrašęs pakeitimų.

    Konkrečios formos patvirtinimo dialogo langas.

Sąrankos prietaisų raktas Application Insights

Norėdami eksportuoti sistemos sugeneruotus programų žurnalus Application Insights į, turite nustatyti drobės programos instrumentavimo raktą .

  1. Atidarykite programą, kad galėtumėte redaguoti " Power Apps Stuido".
  2. Pasirinkite taikomosios programos objektą kairiajame naršymo medžio rodinyje.
  3. Ypatybių srityje įveskite instrumentuotės raktą .

Jei duomenys nesiunčiami į "App Insights", susisiekite su Power Platform administratoriumi ir patikrinkite, ar "App Insights " išjungta nuomotojo lygiu.

Formulės ypatybė

Naudodami pavadintas formulės ypatybėje Formulės apibrėžkite formulė, kurią galima pakartotinai naudoti visoje programoje.

Valdiklio Power Apps ypatybes valdo formulės. Pavyzdžiui, jei norite nuosekliai nustatyti programos foninę spalvą, galite nustatyti kiekvienos bendrosios formulės ypatybę Užpildas:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

Kai yra tiek daug vietų, kur gali pasirodyti ši formulė, ji tampa nuogąstinga ir klaidos yra linkusios atnaujinti jas visas, jei reikia pakeisti. Vietoj to naudodami OnStart sukurti visuotinį kintamąjį, kad kartą nustatytų spalvą, o tada iš naujo panaudoti reikšmę visoje programoje:

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Nors šis metodas yra geresnis, tai taip pat priklauso nuo OnStart vykdymo prieš vertę BGColor sukurtą. BGColor Be to, kai kuriuose programos kampe galima valdyti apie kuriuos kūrėjui nežina, ir kažkas kitas atlieka pakeitimus, kurių gali būti sunku sekti.

Pavadintos formulės teikia alternatyvą. Lygiai taip, kaip dažnai rašome valdiklį-ypatybę = išraišką, vietoj to galime rašyti pavadinimą pavadinimas = išraiška ir tada vėl naudojame pavadinimas visoje mūsų programoje, kad pakeistų išraišką. Šių formulės aprašai atliekami ypatybėje Formulės ypatybėje:

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Įvardytųjų formulės naudojimo pranašumų yra šie:

  • Formulės reikšmė visada pasiekiama. Nėra priklausomybės nuo laiko, ne OnStart kuri turi būti vykdoma pirmiausia prieš reikšmę, nėra laiko, kai formulės reikšmė yra neteisinga. Pavadintos formulės gali reikšti viena kitą bet kokia tvarka, jei jos nesukuria ciklinės nuorodos. Jas galima apskaičiuoti lygiagrečiai.
  • Formulės reikšmė visada pasiekiama iki datos. Formulė gali atlikti skaičiavimą, priklausomą nuo valdiklio ypatybės arba duomenų bazės įrašų, ir, kai jie keičia, formulės reikšmė automatiškai naujina. Su kintamuoju reikšmės atnaujinti nereikia rankiniu būdu. O formulės perskaičiuojamos tik tada, kai reikia.
  • Formulės apibrėžimas yra nemobuojamas. Formulėse pateikiamas apibrėžimas yra vienas sintaksės šaltinis, jo reikšmės programoje pakeisti negalima. Naudojant kintamuosius gali būti, kad kai kurie kodas netikėtai pakeičia reikšmę, tačiau tai neįmanoma naudojant pavadintas formulėse.
  • Formulės skaičiavimas gali būti išsąsdęs. Kadangi jo vertė yra nekintama, ją visada galima apskaičiuoti, kai reikia, o tai reiškia, kad jos nereikia apskaičiuoti, kol to nereikia. Formulės reikšmės, nenaudojamos, kol rodomas programos 2 ekranas, neturi būti apskaičiuojamos, kol rodomas 2 ekranas. Šio darbo atidėjimas gali pagerinti programos įkėlimo laiką. Pavadintos formulės yra sustingimos ir suteikia sistemai galimybių optimizuoti jų skaičiavimo galimybę.
  • Pavadintos formulės yra "Excel" sąvoka. Power Fx naudoja "Excel" naudoja sąvokas, kai įmanoma, nes tiek daug žmonių gerai žino "Excel". Pavadintos formulės yra pavadintų persodųjų ir pavadintų formulės "Excel" atitikmenys, valdomi su vardų tvarkytuvu. Jos perskaičiuojamos automatiškai, kaip ir skaičiuoklė, kaip ir valdiklio ypatybės.

Pavadintos formulės apibrėžiamos po vieną formulės ypatybėje , kiekviena baigiasi kabliataškiu. Formulės tipą nurodo išraiškos tipai, pagrįsti išraiškos elementų tipais ir jų kartu naudojamumu elementu. Pavyzdžiui, šios pavadintos formulės gauna naudingą informaciją apie dabartinį vartotoją iš 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' );

Jei UserTitle formulė turi būti atnaujinta, tai galima lengvai padaryti šioje vienoje vietoje. Jei programoje UserPhone nėra būtina, šie skambučiai Naudotojų į lentelę Dataverse Vartotojai nėra atliekami. Į formulės apibrėžimą, kuris nėra naudojamas, nėra tarpas.

Kai kurie pavadintų formulės apribojimai:

  • Jie negali naudoti elgsenos funkcijų arba kitaip sukelti šalutinio poveikio programoje.
  • Jos negali sukurti ciklinės nuorodos. Turintys a = b; ir b = a; programoje neleidžiamas.

Ypatybė On Kita

Naudokite OnError tam, kad imtumėtės veiksmų po klaidos aptikimo. Tai visuotinė galimybė sulaikyti klaidos reklaminę juostą, kad ji būtų rodoma galutiniam vartotojui. Ją dar galima naudoti norint registruoti klaidą naudojant sekimo Funkciją ar rašyti į duomenų bazę ar žiniatinklio tarnybą.

Tikrinama, ar yra kiekvienos formulės, per kurią klaidą siųsite, rezultatas. Jei tai klaida, OnError bus vertinama su ta pačia FirstError ir Visos klaidos aprėpties kintamuosius, kurie būtų pateikti, jei visa formulė buvo supakuota į funkciją Jei klaida funkciją.

Jei OnError tuščias su klaidos pranešimu FirstError.Pranešimas klaidų juosta. On Viršijo formulės apibrėžimas pakeičia šį elgesį, įgalinantį kūrėją tvarkyti klaidų ataskaitas, kai jos mato tinkamos. Numatytojo veikimo gali būti paprašyta OnError iš naujo atskeliant klaidą su Klaidos funkcija. Tai naudinga, jei kai kurias klaidas reikia filtruoti ar apdoroti kitu būdu, o kitas – perduoti.

OnError klaida negali pakeisti skaičiavimo būdo, kurį gali IfError gali. Tuo metu, kai OnError iškviečiama, klaida jau įvyko ir ji jau buvo apdorojama vykdant formulės skaičiavimus. *OnError* kontroliuoja tik klaidų ataskaitas.

OnError formulės vertinamos išsąlydimo būdu, ir gali būti, kad jų sutapimas su kitų klaidų apdorojimu gali persidengti. Pavyzdžiui, jei nustatote visuotinį OnError viršuje ir vėliau jį skaitote toje pačioje formulėje, reikšmė galėjo būti pakeista. Naudokite Su kad sukurtumėte pavadintą reikšmę, vietinę formulės reikšmę.

Nors kiekvieną klaidą atskirai apdoros OnError, numatytoji klaidų antraštė gali būti rodoma ne kiekvienai klaidai atskirai. Kad tuo pačiu metu nebūtų rodoma per daug klaidų antraščių, ta pati klaida nesukels naujos klaidos reklaminės juostos, jei ji neseniai buvo rodoma.

Pavyzdžiui

Pasvarstykite žymų valdiklį ir slankiklio valdiklį, sujungtą su formulė:

Label1.Text = 1/Slider1.Value

Etiketės ir slankiklio valdiklis, susietas per formulę Label1.Text = 1/Slider1.Value.

Slankiklis numatytasis iki 50. Jei slankiklį perkėlus į 0, žymą1 nebus rodoma jokia reikšmė, bus rodoma klaidos reklaminė juosta:

Slankiklio valdiklis perkeltas į 0, todėl buvo padalytas iš nulinės klaidos ir klaidos reklamjuostė.

Pažiūrėkite, kas nutiko išsamiau:

  1. Vartotojas perkėlė skaidrę į kairę, o ypatybė Slide1.Value pakeista į 0.
  2. Žyma1.Tekstas buvo automatiškai iš naujo persodintas. Įvyko dalyba pagal nulį, įvyksta klaida.
  3. Šioje formulėje nėra IfError formulėje. Dalis nulinės klaidos grąžinama naudojant formulės suskirstytį.
  4. Label1.Tekstas klaidos teksto nerodo, todėl joje rodoma tuščia būsena.
  5. OnError iškviečiama. Kadangi apdorojimo programos nėra, rodoma standartinė klaidų reklaminė juosta su klaidos informacija.

Jei reikia, taip pat galime pakeisti šią formulėje Label1.Text = IfError( 1/Slider1.Value, 0 ). Dėl to nebus klaidų arba klaidų reklaminės juostos. Klaidos iš OnError reikšmės pakeisti negalime, nes tuo metu klaida jau įvyko, tai tik klausimas, kaip apie ją bus pranešta.

Jei įtrauksime OnError apdorojimo programą, prieš 5 veiksmą ji nebus paveikta, tačiau tai gali turėti įtakos tai, kaip pranešama apie klaidą:

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

App.OnError formulė, nustatyta sekimui generuoti.

Atsižvelgiant į tai, programos vartotojo atžvilgiu, nebus jokių klaidų. Bet klaida bus įtraukta į monitoriaus sekimo, kartu su klaidos informacijos iš First Papildomos informacijos šaltiniu:

Slankiklio valdiklis perkeltas į 0, todėl buvo padalytas iš nulinės klaidos, bet nebuvo klaidos reklamjuostės.

Jei kartu su sekimo funkcija rodoma ta pati numatytoji klaidų reklaminė juosta, po sekimo skambučio galime iš naujo nustatyti klaidą su funkcija Klaida kaip ir tada Sekimas skambutis taip tarsiSekimas negaliotų:

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

Ypatybė OnStart

Pastaba.

Naudojant ypatybę OnStart gali kilti veikimo problemų įkeliant programą. Šiuo metu kuriamos alternatyvos dėl dviejų pagrindinių priežasčių: duomenų apie nuosavybę talpyklą naudojimoir visuotinių kintamųjų nustatymo. Jau sukūrėme alternatyvą pirmajam ekranui, kuris bus rodomas naudojant apibrėžti Navigate. Pagal numatytuosius nustatymus ši ypatybė gali būti išjungta atsižvelgiant į kontekstą. Jei jo nematote ir reikia jį naudoti, patikrinkite programos išplėstinius parametrus ir įjunkite jį. Taip pat galima naudoti ekrano ypatybę OnVisible.

Ypatybė OnStart vykdoma, kai vartotojas paleidžia programą. Ši ypatybė dažnai naudojama toliau nurodytų užduočių atlikimui.

  • Gauti ir saugoti duomenis rinkiniuose naudojant funkciją Collect.
  • Nustatyti visuotinius kintamuosius naudojant funkciją Set.

Ši formulė įvertinama prieš pateikiant pirmąjį ekraną. Neįkeltas joks ekranas, todėl negalite nustatyti konteksto kintamųjų naudodami funkciją UpdateContext. Tačiau galite perduoti konteksto kintamuosius naudodami funkciją Navigate.

Kai pakeičiate ypatybę OnStart ypatybę, patikrinkite ją užvesdami pelės žymiklį Programos objekto Medžio rodinio juostoje, pasirinkdami elipsę (...), ir tada Vykdyti OnStart. Kitaip nei įkėlus programą pirmą kartą, esami rinkiniai ir kintamieji jau bus nustatyti. Jei norite pradėti naudodami tuščius rinkinius, naudokite funkciją ClearCollect vietoj funkcijos Collect.

Programos elemento kontekstinis meniu, skirtas parinkčiai Paleisti OnStart

Pastaba.

  • Su Navigate funkcija OnStart ypatybė nebegalioja. Esamos programos ir toliau veiks. Ribotą laiką jį vis dar galite įjungti programos parametruose (prieinama dalyje Nebegalioja). Tačiau naudojant Navigate tokiu būdu programa gali vėluoti, nes dėl to sistema gali visiškai susėsti prieš rodydami pirmąjį OnStart prieš rodant pirmąjį ekraną. Užuot tai StartScreen apskaičiuokite pirmąjį rodomą ekraną, naudodami šią ypatybę.
  • Išjungtas programų, sukurtų iki 2021 m. kovas, perjungimas į ėjus į Naršymas į OnStart bus išjungtas nuo 2021 kovo iki dabar. Redaguojant tokias programas „Power Apps Studio“, gali būti rodoma klaida. Įjunkite aukščiau nurodytą klaidą Nebegalioja įjungimo ir išvalykite šią klaidą.

„StartScreen“ ypatybė

Pastaba.

Pradžios ekrano ypatybė nepasirodys ypatybių sąraše kai parinktis nebegalios Pagerintos formulės juosta yra įjungta. Norėdami išjungti patobulintą formulės juostą eikite į Parametrai>Būsimosios funkcijos>Nebegalioja> išjunkite Patobulintos formulės juostą kai norite naudoti Pradžios ekrano ypatybę.

Ypatybė StartScreen nustato, kuris ekranas bus rodomas pirmiausia. Programa įvertinama įkeliant programą ir grąžinus rodomą ekrano objektą. Pagal numatytuosius nustatymus ši ypatybė bus tuščia, o pirmasis studio medžio rodinio ekranas bus rodomas pirmiausia.

StartScreen funkcija yra duomenų srauto ypatybė, kurios veikimo funkcijų nėra. Visos duomenų srauto funkcijos yra prieinamos, visų pirma šias funkcijas ir signalus naudokite, kad nustatytumėte, kuriame ekrane pirmiausia turi būti rodoma:

  • Param funkcija leidžia skaityti parametrus, naudojamus programai paleisti.
  • User funkcija skaityti informaciją apie dabartinį vartotoją.
  • LookUp, Filter, CountRows, Max, ir kitos funkcijos, kurios skaitomos iš duomenų šaltinio.
  • Bet kurie API skambučiai naudojant jungtį, tačiau yra greitai grįžtami.
  • Signalai, tokie kaip Connection, Compass, ir App.

Pastaba.

Visuotiniai kintamieji ir rinkiniai, įskaitant sukurtus OnStart nėra pasiekiami StartScreen. Yra ir kelias, kaip tai padaryti, yra keletas išietyvių alternatyvų. Atsiliepimų apie šį apribojimą eikite į bendruomenės Power Apps“ forumą.

Jei StartScreen grąžins klaidą, pirmasis „Studio Tree" rodinio ekranas bus rodomas taip tarsi StartScreen nebūtų buvusi nustatyta. Norėdami IfError kokias klaidas ir nukreipti į atitinkamą klaidos ekraną, naudokite šią funkciją.

Kai pakeičiate ypatybę StartScreen studijoje patikrinkite ją užvesdami pelės žymiklį virš programos objekto medžio rodinio Programa esančio Medžio rodinyje juostoje pasirinkdami elipsę (...), ir tada Naršyti į StartScreen. Ekranas keisis, tarsi programa būtų įkelta.

Pereiti į StartScreen

Pavyzdžiai

Screen9

Rodo, kad Screen9 programa turėtų būti rodoma pirmiausiai.

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

Tikrina, ar vartotojas nustatė „administratoriaus režimą“ ir jį naudoja, kad nuspręstų, ar pirmiausia turi būti rodoma HomeScreen ir AdminScreen.

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

Tikrina, ar konferencijoje yra personalo narys ir ar jis nukreipia į tinkamą paleidimo ekraną.

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

Nukreipia programą pagal API iškvietimą į arba ForestScreen ar OceanScreen. Jei API nepavyksta dėl kokios nors priežasties, ErrorScreen vietoj jos naudojama.

"StudioVersion" nuosavybė

Naudokite "StudioVersion " ypatybę, kad būtų rodoma arba registruojama versija, Power Apps Studio kuri buvo naudojama programai paskelbti. Tai gali būti naudinga derinant ir siekiant užtikrinti, kad programa buvo iš naujo paskelbta naudojant naujausią jos versiją Power Apps Studio.

"StudioVersion " grąžinama kaip tekstas. Teksto formatas laikui bėgant gali keistis ir turėtų būti vertinamas kaip visuma; Venkite išgauti atskiras porcijas.