Bendrinti naudojant


„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 įdėtos, pavyzdžiui, ir Power BI . SharePoint
  • Dabar šios ypatybės gali nurodyti valdiklius tik pirmame ekrane, jei įjungta atidėto įkėlimo peržiūros funkcija (kuri pagal numatytuosius nustatymus yra skirta naujoms programoms). 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, jei teisinga, 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.

Prietaisų rakto nustatymas Application Insights

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

  1. Atidarykite programą, kurioje galėsite redaguoti Power Apps Studio.
  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.

Į Power Apps formulės nustato valdymo ypatybių vertę. 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 " taip pat gali būti manipuliuojama kuriame nors programos kampe, apie kurį gamintojas nežino, kažkieno kito atliktas pakeitimas, kurį gali būti sunku susekti.

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 koks nors kodas netikėtai pakeičia reikšmę, tačiau ši sunkiai derinama situacija neįmanoma naudojant įvardytas formules.
  • 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. Jie perskaičiuojami automatiškai, kaip tai daro skaičiuoklės ir valdiklio ypatybių langeliai.

Pavadintos formulės apibrėžiamos po vieną formulės ypatybėje , kiekviena baigiasi kabliataškiu. Formulės tipas numanomas iš formulės elementų tipų ir to, kaip jie naudojami kartu. 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.

Vartotojo apibrėžtos funkcijos

Svarbu

Power Fx apima ilgą integruotų funkcijų sąrašą, pvz., Jei, Tekstas ir Nustatyti. Vartotojo apibrėžtos funkcijos leidžia jums parašyti savo funkcijas, kurios paima parametrus ir grąžina vertę, kaip tai daro integruotos funkcijos. Apie vartotojo apibrėžtas funkcijas galite galvoti kaip apie įvardytų formulių plėtinį, kuris prideda parametrų ir palaiko veikimo formules.

Pavyzdžiui, galite apibrėžti įvardytą formulę, kuri grąžina grožinės literatūros knygas iš bibliotekos:

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" );

Be parametrų kiekvienam žanrui turėtume apibrėžti atskiras įvardytas formules. Bet vietoj to parametrizuokime savo pavadintą formulę:

LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );

LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );

Dabar galime skambinti LibraryGenre( "Fiction" )LibraryGenre( "Reference" ) arba filtruoti kitus žanrus su vieno vartotojo apibrėžta funkcija.

Sintaksė yra:

FunctionName( [ ParameterName1: ParameterType1 [, ParameterName2: ParameterType2 ... ] ] ) : ReturnType = formulė;

  • Funkcijos pavadinimas – būtina. Vartotojo apibrėžtos funkcijos pavadinimas.
  • ParameterNames – neprivaloma. Funkcijos parametro pavadinimas.
  • ParameterTypes – neprivaloma. Tipo pavadinimas, įtaisytasis duomenų tipo pavadinimas, duomenų šaltinio pavadinimas arba tipas, apibrėžtas naudojant funkciją Tipas .
  • ReturnType – būtina. Funkcijos grąžinamos reikšmės tipas.
  • Formulė – būtina. Formulė, kuri apskaičiuoja funkcijos vertę pagal parametrus.

Kiekvienas parametras ir vartotojo apibrėžtos funkcijos išvestis turi būti įvesti. Šiame pavyzdyje SelectedGenre: Text pirmasis mūsų funkcijos parametras apibrėžiamas kaip teksto tipas ir SelectedGenre yra parametro, kuris naudojamas tekste filtro operacijai, pavadinimas. Žiūrėkite Palaikomų tipų pavadinimų duomenų tipai . Funkcija Tipas naudojama mūsų bibliotekos agreguotam tipui sukurti, kad galėtume grąžinti knygų lentelę iš savo funkcijos.

Mes apibrėžėme LibraryType kaip daugiskaitos įrašų lentelės tipą. Jei norime perduoti vieną knygą funkcijai, galime išgauti šios lentelės įrašo tipą naudodami funkciją RecordOf:

BookType := Type( RecordOf( LibraryType ) );

IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);

Funkcijų parametrų įrašų atitikimas yra griežtesnis nei kitose dalyse Power Fx. Įrašo reikšmės laukai turi būti tinkamas tipo apibrėžimo poaibis ir juose negali būti papildomų laukų. Pavyzdžiui, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) atsiras klaida.

Atminkite, kad rekursijos dar nepalaiko vartotojo apibrėžtos funkcijos.

Vartotojo apibrėžtų funkcijų elgsena

Įvardytos formulės ir dauguma vartotojo apibrėžtų funkcijų nepalaiko veikimo funkcijų, turinčių šalutinį poveikį, pvz ., Nustatyti arba Pranešti. Apskritai, jei galite, geriausia vengti būsenos atnaujinimo, o pasikliauti funkciniais programavimo modeliais ir leisti Power Fx automatiškai perskaičiuoti formules pagal poreikį. Tačiau yra atvejų, kai tai neišvengiama. Norėdami įtraukti elgesio logiką į vartotojo apibrėžtą funkciją, apvyniokite kūną garbanotais petnešomis:

Spend( Amount: Number ) : Void = {
    If( Amount > Savings, 
        Error( $"{Amount} is more than available savings" ),
        Set( Savings, Savings - Amount );
        Set( Spent, Spent + Amount) 
    );
}

Dabar galime paskambinti Spend( 12 ) ir patikrinti, ar mūsų santaupose yra 12, ir, jei taip, nurašyti jį iš 12 ir pridėti 12 prie išleisto kintamojo. Šios funkcijos grąžinimo tipas yra Anuliuota , nes ji nepateikia reikšmės.

Veikimo būdo vartotojo apibrėžtos funkcijos sintaksė yra:

FunctionName( [ ParameterName1: ParameterType1 [, ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Formulė2 ... ]; }

  • Funkcijos pavadinimas – būtina. Vartotojo apibrėžtos funkcijos pavadinimas.
  • ParameterNames – neprivaloma. Funkcijos parametro pavadinimas.
  • ParameterTypes – neprivaloma. Tipo pavadinimas, įtaisytasis duomenų tipo pavadinimas, duomenų šaltinio pavadinimas arba tipas, apibrėžtas naudojant funkciją Tipas.
  • ReturnType – būtina. Funkcijos grąžinamos reikšmės tipas. Naudokite Anuliuoti , jei funkcija nepateikia reikšmės.
  • Formulės – būtina. Formulė, kuri apskaičiuoja funkcijos vertę pagal parametrus.

Kaip ir visose Power Fx formulėse, vykdymas nesibaigia, kai įvyksta klaida. Iškvietus funkciją Klaida , funkcija If neleidžia atlikti taupymo ir išlaidų pakeitimų. Funkcija IfError taip pat gali būti naudojama siekiant išvengti tolesnio vykdymo po klaidos. Net jei formulė grąžina Void, ji vis tiek gali pateikti klaidą, jei kyla problemų.

Vartotojo apibrėžti tipai

Svarbu

Įvardytas formules galima naudoti su funkcija Type , kad būtų sukurti vartotojo apibrėžti tipai. Pavyzdžiui, := naudokite = vietoj Book := Type( { Title: Text, Author: Text } )vartotojo apibrėžto tipo apibrėžimo. Daugiau informacijos ir pavyzdžių rasite funkcijoje Tipas .

Ypatybė On Kita

Naudokite OnError , kad imtumėtės veiksmų, kai klaida įvyksta bet kurioje programos vietoje. Tai suteikia visuotinę galimybę perimti klaidos reklamjuostę prieš ją rodant galutiniam vartotojui. Ją dar galima naudoti norint registruoti klaidą naudojant sekimo Funkciją ar rašyti į duomenų bazę ar žiniatinklio tarnybą.

Drobės programose kiekvieno formulės įvertinimo rezultatas tikrinamas, ar nėra klaidos. Jei įvyksta klaida, OnError įvertinamas naudojant tuos pačius FirstError ir AllErrors aprėpties kintamuosius, kurie būtų buvę naudojami, jei visa formulė būtų buvusi suvyniota į IfError 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. Naudokite pakartotinio atmetimo metodą, jei kai kurios klaidos turi būti išfiltruotos arba tvarkomos kitaip, o kitos turi būti pašalintos.

OnError negali pakeisti skaičiavimo klaidos taip, kaip gali IfError . Jei iškviečiama OnError , klaida jau įvyko ir ji jau buvo apdorota atliekant formulės skaičiavimus, pvz., IfError; "OnError" valdo tik klaidų ataskaitas.

OnError formulės vertinamos vienu metu ir gali būti, kad jų vertinimas gali sutapti su kitų klaidų apdorojimu. 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 vienu metu nebūtų rodoma per daug klaidų reklamjuosčių, ta pati klaidos reklamjuostė nebus rodoma dar kartą, 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. Label1.Text buvo automatiškai įvertintas iš naujo. Į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.Text negali nieko rodyti su šia klaida, todėl rodoma tuščia būsena.
  5. OnError iškviečiamas. 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 ). Naudojant "IfError" nebus klaidų ar klaidų reklamjuostės. Klaidos iš OnError reikšmės pakeisti negalime, nes tuo metu klaida jau įvyko, tai tik klausimas, kaip apie ją bus pranešta.

Jei pridėsime OnError apdorojimo programą, ji neturi įtakos prieš 5 veiksmą, tačiau gali turėti įtakos tam, kaip pranešama apie klaidą:

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

App.OnError formulė, nustatyta sekimui generuoti.

Įdiegus šią "OnError" apdorojimo programą, programos vartotojo požiūriu, klaidų nebus. Tačiau klaida bus įtraukta į monitoriaus sekimą kartu su klaidos informacijos šaltiniu iš "FirstError":

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. Pagal numatytuosius nustatymus, kai įjungta neblokuojanti "OnStart" taisyklė, ji leidžia "OnStart" funkcijai veikti kartu su kitomis programų taisyklėmis. Taigi, jei kintamieji, nurodyti kitose programų taisyklėse, yra inicijuoti naudojant "OnStart" funkciją, jie dar gali būti nevisiškai inicijuoti. Be to, yra tikimybė, kad ekranas gali atvaizduoti ir tapti interaktyvus, kol "Screen.OnVisible " arba "App.OnStart" funkcijos nebus baigtos vykdyti, ypač jei jos užtrunka ilgai.

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 jungiklis bus išjungtas programoms, sukurtoms iki 2021 m. kovo mėn., kur nuo 2021 m. kovo iki dabar pridėjote "Navigate toOnStart". Redaguojant tokias programas „Power Apps Studio“, gali būti rodoma klaida. Įjunkite išjungtą jungiklį, kad pašalintumėte šią klaidą.

„StartScreen“ ypatybė

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

"StartScreen " yra duomenų srauto ypatybė, kurioje negali būti veikimo funkcijų. 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, skirta skaityti parametrus, naudojamus programai paleisti.
  • Vartotojo funkcija skaityti informaciją apie dabartinį vartotoją.
  • Peržvalga, Filtras, CountRows, Maks. ir kitos funkcijos, kurios nuskaitomos iš duomenų šaltinis.
  • 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. Įvardytos formulės yra prieinamos ir dažnai yra geresnė alternatyva pakartotiniam formulių naudojimui visoje programoje.

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 pasikeis taip, lyg programa būtų ką tik į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.