Kongsi melalui


Objek aplikasi dalam Power Apps

Digunakan pada: Aplikasi kanvas Apl berpandukan model

Menyediakan maklumat tentang aplikasi yang sedang berjalan dan kawalan ke atas tingkah laku aplikasi.

Penerangan

Sama seperti kawalan, objek Aplikasi menyediakan sifat yang mengenal pasti skrin yang menunjukkan dan menggesa pengguna untuk menyimpan perubahan supaya ia tidak hilang. Setiap aplikasi mempunyai objek Aplikasi.

Anda boleh menulis formula untuk beberapa sifat bagi objek Aplikasi. Di atas anak tetingkap Pandangan pokok, pilih objek Aplikasi seperti mana-mana kawalan dan skrin lain yang anda mahukan . Lihat dan edit salah satu sifat objek dengan memilihnya dalam senarai juntai bawah ke bahagian kiri bar formula.

Objek Aplikasi dalam anak tetingkap pandangan Pohon.

Sifat ActiveScreen

Sifat ActiveScreen mengenal pasti skrin yang ditunjukkan.

Sifat ini mengembalikan objek skrin. Gunakannya untuk merujuk sifat skrin yang dipaparkan pada masa ini, seperti nama dengan formula App.ActiveScreen.Name. Anda juga boleh membandingkan sifat ini dengan objek skrin lain, seperti dengan formula perbandingan App.ActiveScreen = Screen2 untuk menguji sama ada Screen2 ialah skrin yang dipaparkan pada masa ini.

Gunakan fungsi Back atau Navigate untuk mengubah skrin yang ditunjukkan.

Hartanah BackEnabled

Sifat BackEnabled mengubah cara apl bertindak balas terhadap gerak isyarat belakang peranti (leret atau gunakan butang belakang perkakasan pada Android peranti, leret dari kiri pada iOS peranti) apabila berjalan dalam Power Apps mudah alih. Apabila didayakan, gerak isyarat belakang peranti menavigasi kembali ke skrin yang dipaparkan baru-baru ini, yang serupa dengan formula Belakang . Apabila dinyahdayakan, gerak isyarat belakang peranti mengembalikan pengguna kepada senarai apl.

Sifat ConfirmExit

Tiada siapa yang mahu kehilangan perubahan yang tidak disimpan. Gunakan sifat ConfirmExit dan ConfirmExitMessage untuk memberi amaran kepada pengguna sebelum mereka menutup aplikasi.

Nota

  • ConfirmExit tidak berfungsi dalam aplikasi yang tertanam di dalamnya, contoh, Power BI dan SharePoint.
  • Pada masa ini, sifat ini boleh merujuk kawalan pada hanya skrin pertama jika ciri pratonton Muatan ditunda didayakan (yang secara lalai untuk aplikasi baharu). Jika rujukan dibuat, Power Apps Studio tidak menunjukkan ralat, tetapi hasil aplikasi yang diterbitkan tidak dibuka dalam Power Apps Mudah Alih atau pelayar. Kami bekerja dengan aktif untuk mengatasi kekangan ini. Pada masa yang sama, anda boleh mematikan Beban tertangguh dalam Tetapan>Ciri akan datang (bawah Pratonton).

ConfirmExit

ConfirmExit ialah sifat Boolean yang, apabila dibuka, membuka kotak dialog pengesahan sebelum aplikasi ditutup. Secara lalai, sifat ini palsu, dan tiada kotak dialog dipaparkan.

Dalam situasi di mana pengguna mungkin mengalami perubahan yang tidak disimpan dalam apl, gunakan sifat ini untuk menunjukkan kotak dialog pengesahan sebelum keluar dari aplikasi. Gunakan formula yang boleh menyemak pemboleh ubah dan sifat kawalan (contohnya, sifat Tidak disimpan untuk kawalan Borang edit).

Kotak dialog pengesahan dipaparkan dalam mana-mana situasi yang boleh kehilangan data, seperti contoh ini:

  • Menjalankan fungsi Exit.
  • Jika aplikasi sedang berjalan dalam pelayar:
    • Menutup pelayar atau tab pelayar yang menjalankan aplikasi.
    • Memilih butang belakang pelayar.
    • Menjalankan fungsi Launch dengan LaunchTarget untuk Diri.
  • Jika apl dijalankan dalam Power Apps Mudah Alih (iOS atau Android):
    • Seret untuk menukar ke aplikasi berbeza dalam Power Apps Mudah Alih.
    • Memilih butang belakang pada peranti Android.
    • Menjalankan fungsi Launch untuk melancarkan aplikasi kanvas lain.

Rupa sebenar kotak dialog pengesahan mungkin berbeza merentas peranti dan versi Power Apps.

Kotak dialog pengesahan tidak dipaparkan dalam Power Apps Studio.

ConfirmExitMessage

Secara lalai, kotak dialog pengesahan menunjukkan message generik, seperti "Anda mungkin belum menyimpan perubahan." dalam bahasa pengguna.

Gunakan ConfirmExitMessage untuk menyediakan message tersuai dalam kotak dialog pengesahan. Jika sifat ini kosong, nilai lalai digunakan. Message tersuai dipotong mengikut keperluan untuk sesuaikan dalam kotak dialog pengesahan, oleh itu kekalkan message paling banyak ke dalam beberapa baris.

Dalam pelayar, kotak dialog pengesahan mungkin dipaparkan dengan message generik daripada pelayar.

Nota

Objek aplikasi mempunyai dua lagi sifat OnMessage dan BackEnabled dalam percubaan. Akhirnya, sifat ini akan dialih keluar daripada objek aplikasi. Kami mengesyorkan anda tidak menggunakan sifat ini dalam persekitaran pengeluaran anda.

Contoh

  1. Cipta aplikasi yang mengandungi dua kawalan borang, AccountForm dan ContactForm.

  2. Tetapkan sifat objek AplikasiConfirmExit ke ungkapan ini:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Kotak dialog dipaparkan jika pengguna mengubah data dalam salah satu borang dan kemudian cuba menutup aplikasi tanpa menyimpan perubahan itu.

    Kotak dialog pengesahan generik.

  3. Tetapkan sifat objek AplikasiConfirmExitMessage ke formula ini:

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

    Kotak dialog dipaparkan jika pengguna mengubah data dalam borang Akaun dan kemudian cuba menutup aplikasi tanpa menyimpan perubahan itu.

    Kotak dialog pengesahan khusus borang.

Kunci Instrumentasi Persediaan untuk Application Insights

Untuk mengeksport log Application Insights aplikasi yang dijana sistem, anda perlu menyediakan Kunci Instrumentasi untuk aplikasi kanvas anda.

  1. Buka apl anda untuk diedit Power Apps Studio.
  2. Pilih objek Aplikasi dalam pandangan pohon navigasi kiri.
  3. Masukkan Kunci Instrumentasi dalam anak tetingkap sifat.

Jika data tidak dihantar kepada Wawasan Aplikasi, hubungi pentadbir anda Power Platform dan sahkan sama ada Wawasan Apl dinyahdayakan pada peringkat penyewa.

Sifat formula

Gunakan formula ternama, dalam sifat Formula, untuk mentakrifkan formula yang boleh digunakan semula di seluruh aplikasi anda.

Dalam sifat kawalan Power Apps, dipandu oleh formula. Contohnya, untuk menetapkan warna latar belakang secara konsisten merentasi aplikasi, anda boleh menetapkan sifat Isikan untuk setiap formula biasa:

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

Dengan begitu banyak tempat yang formula ini mungkin muncul, ia menjadi membosankan dan cenderung ralat untuk mengemas kini semuanya jika perubahan diperlukan. Sebaliknya, anda boleh mencipta pemboleh ubah global dalam OnStart untuk menetapkan warna hanya sekali dan kemudian menggunakan semula nilai di seluruh aplikasi:

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

Walaupun kaedah ini lebih baik, ia juga bergantung pada OnStart berjalan sebelum nilai untuk BGColor ditubuhkan. BGColor mungkin juga dimanipulasi dalam beberapa sudut aplikasi yang tidak disedari pembuat, perubahan yang dibuat oleh orang lain, dan yang boleh menjadi sukar untuk dijejaki.

Formula ternama memberikan alternatif. Sama seperti kita biasa menulis kawalan-sifat = ungkapan, sebaliknya, kita boleh menulis nama = ungkapan dan kemudian menggunakan semula nama di seluruh aplikasi kami untuk menggantikan ungkapan. Definisi formula ini dilakukan dalam sifat Formula:

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

Kelebihan menggunakan formula ternama termasuk:

  • Nilai formula sentiasa tersedia. Tidak ada kebersandaran masa, tiada OnStart yang mesti dijalankan terlebih dahulu sebelum nilai ditetapkan, tidak ada masa dalam nilai formula yang salah. Formula ternama boleh merujuk antara satu sama lain dalam apa-apa cara, selagi ia tidak mencipta rujukan pekeliling. Ia boleh dikira secara selari.
  • Nilai formula sentiasa terkini. Formula boleh melakukan pengiraan yang bergantung pada sifat kawalan atau rekod pangkalan data, dan apabila ia berubah, nilai formula dikemas kini secara automatik. Anda tidak perlu mengemas kini nilai secara manual seperti yang anda lakukan dengan pemboleh ubah. Dan formula hanya mengira semula apabila diperlukan.
  • Definisi formula tidak berubah. Definisi dalam Formula adalah sumber tunggal kebenaran dan nilai tidak boleh ditukar mana-mana dalam aplikasi. Dengan pemboleh ubah, berkemungkinan yang beberapa kod tidak dijangka mengubah nilai, tetapi ini tidak berlaku dengan formula ternama.
  • Pengiraan formula boleh ditangguhkan. Kerana nilainya tidak berubah, ia sentiasa boleh dikira apabila diperlukan, yang bermaksud ia tidak perlu dikira sehingga diperlukan. Nilai formula yang tidak digunakan sehingga screen2 aplikasi dipaparkan tidak perlu dikira sehingga screen2 boleh dilihat. Menangguhkan kerja ini boleh meningkatkan masa muat apl. Formula ternama adalah pengisytiharan dan menyediakan peluang bagi sistem untuk mengoptimumkan cara dan apabila ia dikira.
  • Formula ternama ialah konsep Excel. Power Fx menggunakan konsep Excel yang mungkin oleh kerana begitu banyak orang mengenali Excel dengan baik. Formula ternama setara dengan sel ternama dan formula ternama dalam Excel, diuruskan dengan Pengurus Nama. Ia mengira semula secara automatik seperti hamparan, sama seperti cara sifat kawalan.

Formula ternama ditakrifkan, satu demi satu dalam sifat Formula, setiap berakhir dengan koma bernoktah. Jenis formula disimpulkan daripada jenis ungkapan, yang berdasarkan jenis elemen dalam ungkapan dan cara ia digunakan bersama. Contohnya, formula ternama mendapatkan maklumat berguna tentang pengguna semasa daripada 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' );

Jika formula untuk UserTitle perlu dikemas kini, ia boleh dilakukan dengan mudah dalam satu lokasi. Jika UserPhone tidak diperlukan dalam aplikasi ini, maka panggilan kepada jadual Pengguna dalam Dataverse ini tidak dilakukan. Tidak ada penalti dengan menyertakan definisi formula yang tidak digunakan.

Beberapa had formula ternama:

  • Ia tidak boleh menggunakan fungsi tingkah laku atau sebaliknya menyebabkan kesan sampingan dalam aplikasi.
  • Ia tidak boleh mencipta rujukan pekeliling. Mempunyai a = b; dan b = a; dalam aplikasi yang sama tidak dibenarkan.

Sifat OnError

Gunakan OnError untuk mengambil tindakan selepas ralat dikesan. Ia memberikan peluang global untuk memintas sepanduk ralat sebelum ia dipaparkan kepada pengguna akhir. Ia juga boleh digunakan untuk mengelog ralat dengan fungsi Jejak atau menulis kepada pangkalan data atau perkhidmatan web.

Keputusan setiap penilaian formula disemak untuk ralat. Jika ia adalah ralat, OnError akan dinilai dengan pemboleh ubah skop FirstError dan AllErrors yang sama yang akan hadir jika keseluruhan formula dikurungkan dalam fungsi IfError.

Jika OnError adalah kosong, sepanduk ralat lalai ditunjukkan dengan FirstError.Message ralat. Mentakrifkan formula OnError menggantikan tingkah laku mendayakan pembuat untuk mengendalikan pelaporan ralat sebagaimana ia dapat dilihat sesuai ini. Tingkah laku lalai boleh diminta dalam OnError dengan mengeluarkan semula ralat dengan fungsi Ralat. Ini berguna jika sesetengah ralat ditapis atau ditangani dengan cara yang berbeza, manakala yang lain dibiarkan dahulu.

OnError tidak boleh menggantikan ralat dalam pengiraan sebagaimana IfError boleh melakukannya. Pada titik yang OnError telah digunakan, ralat telah berlaku dan ia telah diproses melalui pengiraan formula. *OnError* mengawal laporan ralat sahaja.

Formula OnError dinilai secara serentak dan berkemungkinan bahawa penilaiannya mungkin bertindan dengan pemprosesan ralat lain. Contohnya, jika anda menetapkan pemboleh ubah global di bahagian atas ralat OnError dan bacanya kemudian dalam formula yang sama, nilai mungkin telah berubah. Gunakan Dengan fungsi untuk mencipta nilai ternama yang setempat dengan formula.

Walaupun setiap ralat diproses secara individu melalui OnError, sepanduk ralat lalai mungkin tidak muncul untuk setiap ralat secara individu. Untuk mengelakkan banyak sepanduk ralat dipaparkan pada masa yang sama, ralat yang sama tidak akan mencetuskan sepanduk ralat baharu jika ia telah ditunjukkan.

Contoh

Pertimbangkan kawalan Label dan Penggelongsor yang terikat bersama dengan formula:

Label1.Text = 1/Slider1.Value

Kawalan label dan penggelongsor terikat melalui formula Label1.Teks = 1/Slider1.Value.

Penggelongsor lalai kepada 50. Jika penggelongsor dipindahkan kepada 0, Label1 akan menunjukkan tiada nilai, dan sepanduk ralat ditunjukkan:

Kawalan gelangsar dialihkan ke 0, mengakibatkan pembahagian dengan ralat sifar dan sepanduk ralat.

Mari lihat apa yang berlaku secara terperinci:

  1. Pengguna memindahkan gelongsor ke kiri dan sifat Slide1.Value ditukar kepada 0.
  2. Label1.Text telah dinilai semula secara automatik. Divisyen dengan sifar berlaku, menjana ralat.
  3. Tidak ada IfError dalam formula ini. Divisyen dengan ralat sifar dikembalikan oleh penilaian formula.
  4. Label1.Text tidak dapat menunjukkan apa-apa untuk ralat ini, oleh itu ia menunjukkan keadaan kosong.
  5. OnError telah digunakan. Oleh kerana tiada pengendali, sepanduk ralat standard dipaparkan dengan maklumat ralat.

Jika perlu, kita juga boleh mengubah suai formula kepada Label1.Text = IfError( 1/Slider1.Value, 0 ). Ini akan menghasilkan tiada ralat atau sepanduk ralat. Kita tidak boleh mengubah nilai ralat daripada OnError kerana pada titik itu ralat telah berlaku, persoalannya hanya cara ia akan dilaporkan.

Jika kita menambah pengendali OnError, ia tidak akan memberi impak sebelum langkah 5, tetapi ia boleh memberi kesan kepada cara ralat dilaporkan:

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

Formula App.OnError disetkan untuk menjana Jejak.

Dengan ini, daripada perspektif pengguna aplikasi, tidak akan ada sebarang ralat. Tetapi ralat akan ditambah kepada jejak Pantau, lengkap dengan sumber maklumat ralat daripada FirstError:

Kawalan gelangsar dialihkan ke 0, mengakibatkan pembahagian dengan ralat sifar, tetapi tiada sepanduk ralat.

Jika kita juga mahu mempunyai sepanduk ralat lalai yang sama dipaparkan sebagai tambahan kepada jejak, kita boleh mengeluarkan semula ralat dengan fungsi Ralat selepas panggilan Jejak seperti ia lakukan jika Jejak tidak ada:

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

Sifat OnStart

Nota

Penggunaan sifat OnStart boleh menyebabkan masalah prestasi apabila memuatkan aplikasi. Kami sedang dalam proses mencipta alternatif untuk dua sebab utama untuk menggunakan sifat—pengagregatan data dan menetapkan pemboleh ubah global. Kami sudah mencipta alternatif untuk mentakrifkan skrin pertama yang ditunjukkan dengan Navigate. Bergantung pada konteks anda, sifat ini mungkin dinyahdaya secara lalai. Jika anda tidak melihatnya dan anda perlu menggunakannya, semak tetapan Lanjutan aplikasi untuk bertukar untuk mendayakannya. Sifat OnVisible skrin juga boleh digunakan.

Sifat OnStart dijalankan apabila pengguna memulakan aplikasi. Sifat ini sering digunakan untuk melakukan tugas berikut:

  • Mendapatkan semula dan cache data ke dalam pengumpulan dengan menggunakan fungsi Collect.
  • Tetapkan pemboleh ubah global dengan menggunakan fungsi Set.

Formula dinilai sebelum skrin pertama dipaparkan. Tiada skrin dimuatkan, oleh itu anda tidak boleh menetapkan pemboleh ubah konteks dengan fungsi UpdateContext. Walau bagaimanapun, anda boleh menghantar pemboleh ubah konteks dengan fungsi Navigate.

Selepas anda mengubah sifat OnStart, ujinya dengan menuding objek Aplikasi dalam anak tetingkap Pandangan pohon, memilih ellipsis (...), dan kemudian memilih Jalankan OnStart. Tidak seperti semasa aplikasi dimuatkan untuk pertama kali, pengumpulan dan pemboleh ubah sedia ada telah ditetapkan. Untuk bermula dengan pengumpulan kosong, gunakan fungsi ClearCollect berbanding fungsi Collect.

Menu pintasan item aplikasi untuk Jalankan OnStart

Nota

  • Menggunakan fungsi Navigate dalam sifat OnStart telah ditamatkan. Aplikasi sedia ada akan terus bekerja. Untuk masa yang terhad, anda masih boleh mendayakannya dalam tetapan aplikasi (tersedia di bawah Ditamatkan). Walau bagaimanapun, menggunakan Navigate dengan cara ini boleh membawa kepada kelewatan muatan aplikasi kerana ia memaksa sistem untuk melengkapkan penilaian OnStart sebelum memaparkan skrin pertama. Gunakan sifat StartScreen bukannya untuk mengira skrin pertama dipaparkan.
  • Suis Ditamatkan akan dimatikan untuk aplikasi yang dicipta sebelum Mac 2021 yang mana anda menambah Navigasi kepada OnStart antara Mac 2021 dan sekarang. Apabila anda mengedit aplikasi sedemikian dalam Power Apps Studio, anda mungkin akan nampak ralat. Hidupkan suis yang disebut di atas suis Ditamatkan untuk mengosongkan ralat ini.

Sifat StartScreen

Nota

Sifat StartScreen tidak akan muncul dalam senarai sifat apabila pilihan ditamatkan Bar formula dipertingkatkan dihidupkan. Untuk mematikan Bar formula dipertingkatkan, pergi ke Tetapan>Ciri akan datang>Dimatikan> matikan suis Bar formula dipertingkatkan apabila anda mahu menggunakan sifat StartScreen.

Sifat StartScreen menentukan skrin yang akan dipaparkan terlebih dahulu. Ia dinilai sebaik sahaja apabila aplikasi dimuatkan dan kembalikan objek skrin untuk dipaparkan. Secara lalai, sifat ini akan kosong dan skrin pertama dalam pandangan Pohon Studio ditunjukkan terlebih dahulu.

StartScreen ialah sifat aliran data yang tidak boleh mengandungi fungsi tingkah laku. Semua fungsi aliran data tersedia, terutamanya menggunakan fungsi dan isyarat ini untuk menentukan skrin yang hendak ditunjukkan dahulu:

  • Fungsi Param untuk membaca parameter yang digunakan untuk memulakan aplikasi.
  • Fungsi Pengguna untuk membaca maklumat tentang pengguna semasa.
  • LookUp, Filter, CountRows, Max, dan fungsi lain yang membaca daripada sumber data.
  • Sebarang panggilan API panggilan melalui penyambung, tetapi berhati-hati kerana ia kembali dengan pantas.
  • Isyarat seperti Sambungan, Kompas dan Aplikasi.

Nota

Pemboleh ubah global dan koleksi, termasuk yang dicipta dalam OnStart, tidak tersedia dalam StartScreen. Ada pengisytiharan alternatif untuk melakukan ini yang sedang dalam perjalanan. Untuk maklum balas anda pada sekatan ini, pergi ke Forum komuniti Power Apps.

Jika StartScreen mengembalikan ralat, skrin pertama dalam pandangan Pohon Studio akan ditunjukkan seolah-olah StartScreen belum ditetapkan. Gunakan fungsi IfError untuk menangkap sebarang ralat dan mengarah semula ke skrin ralat yang sesuai.

Selepas mengubah StartScreen, dalam Studio, uji ia dengan menuding objek Aplikasi dalam anak tetingkap pandangan Pohon memilih ellipsis (...) dan kemudian memilih Navigasi ke StartScreen. Skrin akan berubah seolah-olah aplikasi telah dimuatkan.

Navigasi ke StartScreen

Contoh

Screen9

Menunjukkan yang Screen9 perlu ditunjukkan terlebih dahulu apabila aplikasi dimulakan.

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

Periksa sama ada "mod pentadbir" Param yang telah ditetapkan oleh pengguna dan menggunakannya untuk memutuskan sama ada HomeScreen atau AdminScreen harus dipaparkan terlebih dahulu.

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

Semak jika peserta untuk persidangan adalah ahli kakitangan dan menghalakan mereka ke skrin yang sesuai pada permulaan.

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

Menghalakan aplikasi berdasarkan panggilan API kepada sama ada ForestScreen atau OceanScreen. Jika API gagal untuk apa-apa sebab, ErrorScreen digunakan sebaliknya.

Hartanah StudioVersion

Gunakan sifat StudioVersion untuk memaparkan atau mengelog versi Power Apps Studio yang digunakan untuk menerbitkan app. Ini berguna apabila menyahpepijat dan untuk memastikan apl anda telah diterbitkan semula dengan versi Power Apps Studio terkini.

StudioVersion dikembalikan sebagai teks. Format teks boleh berubah dari semasa ke semasa dan harus dianggap secara keseluruhan; Elakkan mengekstrak bahagian individu.