Kongsi melalui


Objek aplikasi dalam Power Apps

Digunakan untuk: Apl kanvas

Dapatkan maklumat tentang apl yang sedang berjalan dan kawal tingkah laku apl.

Penerangan

Seperti kawalan, objek Apl mempunyai sifat yang mengenal pasti skrin yang dipaparkan dan menggesa anda menyimpan perubahan supaya ia tidak hilang. Setiap aplikasi mempunyai objek Aplikasi.

Tulis formula untuk beberapa sifat objek Apl. Di atas anak tetingkap Pandangan pokok, pilih objek Aplikasi seperti mana-mana kawalan dan skrin lain yang anda mahukan . Untuk melihat atau mengedit salah satu sifat objek, pilihnya dalam senarai juntai bawah di sebelah kiri bar formula.

Tangkapan skrin objek Apl yang dipilih dalam anak tetingkap Paparan pokok. Anak tetingkap sifat kelihatan.

Sifat ActiveScreen

Sifat ActiveScreen mengenal pasti skrin yang sedang dipaparkan.

Sifat ini mengembalikan objek skrin. Gunakannya untuk merujuk sifat skrin semasa, 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 menyemak sama ada Screen2 ialah skrin semasa.

Gunakan fungsi Kembali atau Navigasi untuk menukar skrin yang dipaparkan.

Sifat BackEnabled

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

Sifat ConfirmExit

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

Nota

  • ConfirmExit tidak berfungsi dalam aplikasi yang dibenamkan dalam, contohnya, Power BI dan SharePoint.
  • ConfirmExit tidak disokong dalam halaman tersuai.
  • Kini, sifat ini boleh merujuk kawalan hanya pada skrin pertama jika ciri Pratonton muat tertunda didayakan (yang secara lalai untuk apl baharu). Jika anda merujuk skrin lain, Power Apps Studio tidak menunjukkan ralat, tetapi aplikasi yang diterbitkan tidak dibuka dalam Power Apps Mobile atau penyemak imbas. Kami sedang berusaha untuk menarik balik had ini. Sementara itu, nyahaktifkan Muat tertunda dalam Tetapan>ciri akan datang (di bawah Pratonton).

ConfirmExit

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

Apabila pengguna mungkin mempunyai perubahan yang tidak disimpan dalam aplikasi, gunakan sifat ini untuk menunjukkan kotak dialog pengesahan sebelum keluar dari aplikasi. Gunakan formula yang menyemak pemboleh ubah dan sifat kawalan (contohnya, sifat Tidak disimpan bagi kawalan Borang Edit ).

Kotak dialog pengesahan muncul dalam sebarang situasi di mana data boleh hilang, seperti:

  • Jalankan fungsi Keluar .
  • Jika apl berjalan dalam penyemak imbas:
    • Tutup penyemak imbas atau tab penyemak imbas tempat apl dijalankan.
    • Pilih butang kembali penyemak imbas.
    • Jalankan fungsi Pelancaran dengan LaunchTargetSelf.
  • Jika apl berjalan dalam Power Apps Mobile (iOS atau Android):
    • Leret untuk bertukar kepada apl lain dalam Power Apps Mobile.
    • Pilih butang kembali pada peranti Android.
    • Jalankan fungsi Lancarkan untuk melancarkan aplikasi kanvas lain.

Rupa sebenar kotak dialog pengesahan boleh berbeza-beza 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. Mesej tersuai dipotong mengikut keperluan untuk dimuatkan dalam kotak dialog pengesahan, jadi kekalkan mesej kepada beberapa baris paling banyak.

Dalam penyemak imbas, kotak dialog pengesahan boleh menunjukkan mesej generik daripada penyemak imbas.

Nota

Objek Apl mempunyai dua lagi sifat OnMessage dan BackEnabled, yang bersifat percubaan. Sifat ini akan dialih keluar daripada objek apl akhirnya. Jangan gunakan sifat ini dalam persekitaran pengeluaran anda.

Contoh

  1. Tetapkan sifat objek AplikasiConfirmExit ke ungkapan ini:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Kotak dialog menunjukkan jika pengguna menukar data dalam mana-mana borang dan kemudian cuba menutup apl tanpa menyimpan perubahan tersebut.e pengguna menukar data dalam mana-mana bentuk dan kemudian cuba menutup apl tanpa menyimpan perubahan tersebut.

    [!div clas1. Tetapkan sifat objek AplikasiConfirmExitMessage ke formula ini:

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

    Kotak dialog menunjukkan jika pengguna menukar data dalam borang Akaun dan kemudian cuba menutup apl tanpa menyimpan perubahan tersebut.

    Kotak dialog pengesahan khusus borang.

Sediakan rentetan sambungan untuk Application Insights

Untuk mengeksport log aplikasi yang dijana sistem ke Application Insights, sediakan rentetan Sambungan untuk aplikasi kanvas anda.

  1. Buka apl anda untuk diedit . Power Apps Studio
  2. Pilih objek Aplikasi dalam paparan pokok navigasi kiri.
  3. Masukkan rentetan Sambungan dalam anak tetingkap sifat.

Jika data tidak dihantar kepada Application Insights, hubungi pentadbir Power Platform anda dan semak sama ada App Insights dinyahdayakan pada peringkat penyewa.

Sifat formula

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

Dalam Power Apps, formula menentukan nilai sifat kawalan. 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 juga mungkin dimanipulasi di beberapa sudut apl yang tidak disedari oleh pembuat, perubahan yang dibuat oleh orang lain dan itu sukar untuk dikesan.

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 pembolehubah, ada kemungkinan bahawa sesetengah kod secara tidak dijangka mengubah nilai, tetapi situasi yang sukar untuk menyahpepijat ini tidak mungkin dilakukan dengan formula yang dinamakan.
  • Pengiraan formula boleh ditangguhkan. Oleh kerana nilainya tidak boleh diubah, ia sentiasa boleh dikira apabila diperlukan, yang bermaksud ia tidak perlu dikira sehingga ia 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. Mereka mengira semula secara automatik seperti sel hamparan dan sifat kawalan lakukan.

Formula ternama ditakrifkan, satu demi satu dalam sifat Formula, setiap berakhir dengan koma bernoktah. Jenis formula disimpulkan daripada jenis elemen dalam formula 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.

Fungsi yang ditentukan pengguna

Power Fx termasuk senarai panjang fungsi terbina dalam, seperti Jika, Teks dan Set. Fungsi yang ditakrifkan pengguna membolehkan anda menulis fungsi anda sendiri yang mengambil parameter dan mengembalikan nilai, sama seperti fungsi terbina dalam. Anda boleh menganggap fungsi yang ditakrifkan pengguna sebagai sambungan kepada formula bernama yang menambah parameter dan menyokong formula tingkah laku.

Sebagai contoh, anda mungkin mentakrifkan formula bernama yang mengembalikan buku fiksyen daripada perpustakaan:

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

Tanpa parameter, kita perlu menentukan formula bernama berasingan untuk setiap genre. Tetapi sebaliknya, mari kita parameterkan formula yang dinamakan kita:

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

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

Kini kita boleh memanggil LibraryGenre( "Fiction" ),, LibraryGenre( "Reference" ) atau menapis genre lain dengan satu fungsi yang ditentukan pengguna.

Sintaksnya ialah:

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

  • Nama Fungsi– Diperlukan. Nama fungsi yang ditentukan pengguna.
  • ParameterNames – Pilihan. Nama parameter fungsi.
  • ParameterTypes – Pilihan. Nama jenis, sama ada nama jenis data terbina dalam , nama sumber data atau jenis yang ditakrifkan dengan fungsi Jenis.
  • ReturnType – Diperlukan. Jenis nilai pulangan daripada fungsi.
  • Formula - Diperlukan. Formula yang mengira nilai fungsi berdasarkan parameter.

Setiap parameter dan output daripada fungsi takrifan pengguna mesti ditaip. Dalam contoh ini, SelectedGenre: Text mentakrifkan parameter pertama kepada fungsi kami untuk menjadi jenis Teks dan SelectedGenre merupakan nama parameter yang digunakan dalam badan untuk operasi Penapis. Lihat Jenis data untuk nama jenis yang disokong. Fungsi Jenis digunakan untuk mencipta jenis agregat untuk perpustakaan kami, supaya kami boleh mengembalikan jadual buku daripada fungsi kami.

Kami mentakrifkan LibraryType sebagai jadual jamak jenis rekod. Jika kita ingin menghantar satu buku kepada fungsi, kita boleh mengekstrak jenis rekod untuk jadual ini dengan fungsi RecordOf:

BookType := Type( RecordOf( LibraryType ) );

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

Padanan rekod untuk parameter fungsi adalah lebih ketat daripada di bahagian Power Fx lain. Medan nilai rekod mestilah subset yang betul bagi takrifan jenis dan tidak boleh menyertakan medan tambahan. Sebagai contoh, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) akan mengakibatkan ralat.

Ambil perhatian, rekursi belum lagi disokong oleh fungsi yang ditentukan pengguna.

Fungsi yang ditentukan pengguna tingkah laku

Formula yang dinamakan dan kebanyakan fungsi yang ditakrifkan pengguna tidak menyokong fungsi tingkah laku dengan kesan sampingan, seperti Tetapkan atau Maklumkan. Secara umum, sebaiknya elakkan mengemas kini keadaan jika anda boleh, sebaliknya bergantung pada corak pengaturcaraan berfungsi dan membenarkan Power Fx mengira semula formula mengikut keperluan secara automatik. Tetapi, terdapat kes di mana ia tidak dapat dielakkan. Untuk memasukkan logik tingkah laku dalam fungsi yang ditakrifkan pengguna, Balut badan dalam pendakap kerinting:

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

Sekarang kita boleh menelefon Spend( 12 ) untuk menyemak sama ada kita mempunyai 12 dalam Simpanan kita, dan jika ya, untuk mendebitkannya sebanyak 12 dan menambah 12 pada pembolehubah Dibelanjakan. Jenis pulangan fungsi ini ialah Void kerana ia tidak mengembalikan nilai.

Sintaks fungsi yang ditakrifkan pengguna tingkah laku ialah:

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

  • Nama Fungsi– Diperlukan. Nama fungsi yang ditentukan pengguna.
  • ParameterNames – Pilihan. Nama parameter fungsi.
  • ParameterTypes – Pilihan. Nama jenis, sama ada nama jenis data terbina dalam , nama sumber data atau jenis yang ditakrifkan dengan fungsi Jenis .
  • ReturnType – Diperlukan. Jenis nilai pulangan daripada fungsi. Gunakan Void jika fungsi tidak mengembalikan nilai.
  • Formula - Diperlukan. Formula yang mengira nilai fungsi berdasarkan parameter.

Seperti semua Power Fx formula, pelaksanaan tidak berakhir apabila ralat dihadapi. Selepas fungsi Ralat telah dipanggil, fungsi Jika menghalang perubahan kepada Simpanan dan Dibelanjakan daripada berlaku. Fungsi IfError juga boleh digunakan untuk mengelakkan pelaksanaan selanjutnya selepas ralat. Walaupun ia mengembalikan Void, formula masih boleh mengembalikan ralat jika terdapat masalah.

Jenis yang ditentukan pengguna

Penting

  • Jenis yang ditentukan pengguna ialah ciri percubaan.
  • Ciri percubaan tidak dimaksudkan untuk kegunaan pengeluaran dan mungkin tidak lengkap. Ciri-ciri ini tersedia sebelum keluaran rasmi supaya anda boleh mendapatkan akses awal dan memberikan maklum balas. Maklumat lanjut: Fahami ciri percubaan, pratonton dan ditamatkan dalam aplikasi kanvas
  • Kelakuan yang diterangkan artikel ini hanya tersedia apabila ciri percubaan Jenis yang ditakrifkan pengguna dalam Seting, Ciri > akan > datang, Percubaan dihidupkan (ia dimatikan secara lalai).
  • Maklum balas anda berharga bagi kami. Beritahu kami pendapat anda dalam Power Apps forum komuniti ciri percubaan.

Formula yang dinamakan boleh digunakan dengan fungsi Jenis untuk mencipta jenis yang ditentukan pengguna. Gunakan := dan bukannya = untuk mentakrifkan jenis yang ditentukan pengguna, sebagai contoh Book := Type( { Title: Text, Author: Text } ). Lihat fungsi Jenis untuk maklumat lanjut dan contoh.

Sifat OnError

Gunakan OnError untuk mengambil tindakan apabila ralat berlaku di mana-mana sahaja dalam apl. Ia menyediakan peluang global untuk memintas sepanduk ralat sebelum dipaparkan kepada pengguna akhir. Ia juga boleh digunakan untuk mengelog ralat dengan fungsi Jejak atau menulis kepada pangkalan data atau perkhidmatan web.

Dalam apl Kanvas, hasil setiap penilaian formula disemak untuk ralat. Jika ralat dihadapi, OnError dinilai dengan pembolehubah skop FirstError dan AllErrors yang sama yang akan digunakan jika keseluruhan formula telah dibalut dalam fungsi IfError.

Jika OnError kosong, sepanduk ralat lalai menunjukkan FirstError.Message ralat. Mentakrifkan formula OnError mengatasi tingkah laku ini, supaya pembuat boleh mengendalikan pelaporan ralat mengikut keperluan. Anda boleh meminta tingkah laku lalai dalam OnError dengan membuang semula ralat dengan fungsi Ralat. Gunakan pendekatan membuang semula jika anda ingin menapis atau mengendalikan beberapa ralat secara berbeza, tetapi biarkan yang lain melaluinya.

OnError tidak boleh menggantikan ralat dalam pengiraan seperti yang boleh dilakukan oleh IfError . Jika OnError dipanggil, ralat telah berlaku dan ia telah diproses melalui pengiraan formula seperti IfError; OnError mengawal pelaporan ralat sahaja.

Formula OnError dinilai serentak dan ada kemungkinan penilaiannya mungkin bertindih dengan pemprosesan ralat lain. Contohnya, jika anda mengesetkan pembolehubah global di bahagian atas OnError dan membacanya 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 oleh OnError, sepanduk ralat lalai mungkin tidak muncul untuk setiap ralat secara individu. Untuk mengelakkan terlalu banyak sepanduk ralat dipaparkan pada masa yang sama, sepanduk ralat yang sama tidak akan dipaparkan lagi jika ia telah ditunjukkan baru-baru ini.

Contoh

Pertimbangkan kawalan Label dan Penggelongsor yang terikat bersama dengan formula:

Label1.Text = 1/Slider1.Value

Label dan kawalan peluncur terikat melalui formula Label1.Text = 1/Slider1.Value.

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

Kawalan peluncur dialihkan kepada 0, mengakibatkan pembahagian mengikut 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 boleh menunjukkan apa-apa untuk ralat ini, jadi ia menunjukkan keadaan kosong .
  5. OnError dipanggil. Oleh kerana tiada pengendali, sepanduk ralat standard dipaparkan dengan maklumat ralat.

Jika perlu, anda juga boleh menukar formula kepada Label1.Text = IfError( 1/Slider1.Value, 0 ). Menggunakan IfError bermakna tiada ralat atau sepanduk ralat. Anda tidak boleh menukar nilai ralat daripada OnError kerana ralat telah berlaku—OnError hanya mengawal cara ralat tersebut dilaporkan.

Jika anda menambah pengendali OnError , ia tidak menjejaskan langkah sebelum langkah 5, tetapi ia mengubah cara ralat dilaporkan:

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

Formula App.OnError ditetapkan untuk menjana Jejak.

Dengan pengendali OnError ini, pengguna apl tidak melihat sebarang ralat. Tetapi ralat itu ditambahkan pada jejak Monitor, termasuk sumber maklumat ralat daripada FirstError:

Kawalan gelangsar dialihkan kepada 0, mengakibatkan pembahagian mengikut ralat sifar, tetapi tiada sepanduk ralat.

Jika anda juga mahu menunjukkan sepanduk ralat lalai bersama-sama dengan jejak, buang semula ralat dengan fungsi Ralat selepas panggilan Jejak, seolah-olah Jejak tiada di sana:

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

Sifat OnStart

Nota

Menggunakan sifat OnStart boleh menyebabkan masalah prestasi apabila memuatkan apl. Kami mencipta alternatif untuk dua sebab utama untuk menggunakan sifat ini—menyimpan data cache dan menyediakan pembolehubah global. Sudah ada alternatif untuk mentakrifkan skrin pertama yang akan dipaparkan dengan Navigasi. Bergantung pada konteks anda, sifat ini boleh dinyahdayakan secara lalai. Jika anda tidak melihatnya dan perlu menggunakannya, semak tetapan Lanjutan apl untuk suis untuk mendayakannya. Anda juga boleh menggunakan sifat OnVisible skrin. Secara lalai, apabila peraturan OnStart yang tidak menyekat didayakan, ia membenarkan fungsi OnStart dijalankan pada masa yang sama dengan peraturan aplikasi lain. Jadi, jika pembolehubah yang dirujuk dalam peraturan apl lain dimulakan dalam fungsi OnStart , pembolehubah tersebut mungkin belum dimulakan sepenuhnya. Selain itu, skrin boleh dipaparkan dan menjadi interaktif sebelum sama ada fungsi Screen.OnVisible atau App.OnStart selesai dijalankan, terutamanya jika ia mengambil masa yang lama untuk disiapkan.

Sifat OnStart dijalankan apabila pengguna memulakan aplikasi. Harta ini sering digunakan untuk:

  • Dapatkan semula dan cache data dalam koleksi dengan menggunakan fungsi Kumpulkan .
  • Tetapkan pemboleh ubah global dengan menggunakan fungsi Set.

Formula ini berjalan sebelum skrin pertama muncul. Tiada skrin dimuatkan, oleh itu anda tidak boleh menetapkan pemboleh ubah konteks dengan fungsi UpdateContext. Tetapi anda boleh menghantar pembolehubah konteks dengan fungsi Navigasi .

Selepas anda menukar sifat OnStart , ujinya dengan menuding pada objek Apl dalam anak tetingkap pandangan Pokok , memilih elipsis (...), dan kemudian memilih Jalankan OnStart. Tidak seperti apabila apl dimuatkan buat kali pertama, koleksi dan pembolehubah 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 Navigasi dalam sifat OnStart telah ditamatkan. Apl sedia ada masih berfungsi. Untuk masa yang terhad, anda boleh mendayakannya dalam tetapan apl (di bawah Bersara). Tetapi menggunakan Navigasi dengan cara ini boleh menyebabkan kelewatan memuatkan apl kerana ia memaksa sistem untuk selesai menjalankan OnStart sebelum menunjukkan skrin pertama. Gunakan sifat Skrin Mula sebaliknya untuk mengesetkan skrin pertama yang dipaparkan.
  • Suis bersara dimatikan untuk apl yang dicipta sebelum Mac 2021 di mana anda menambah Navigasi ke OnStart antara Mac 2021 dan sekarang. Apabila anda mengedit aplikasi ini dalam Power Apps Studio, anda boleh melihat ralat. Hidupkan suis yang telah bersara untuk mengosongkan ralat ini.

Sifat StartScreen

Sifat Skrin Mula menetapkan skrin yang dipaparkan dahulu. Ia dinilai sekali apabila apl dimuatkan dan mengembalikan objek skrin untuk dipaparkan. Secara lalai, sifat ini kosong dan skrin pertama dalam pandangan Pokok Studio ditunjukkan terlebih dahulu.

StartScreen ialah sifat aliran data yang tidak boleh mengandungi fungsi tingkah laku. Semua fungsi aliran data tersedia. Gunakan fungsi dan isyarat ini untuk menentukan skrin yang hendak dipaparkan terlebih dahulu:

Nota

Pembolehubah dan koleksi global, termasuk yang dicipta dalam OnStart, tidak tersedia dalam Skrin Permulaan. Formula yang dinamakan tersedia dan selalunya merupakan alternatif yang lebih baik untuk penggunaan semula formula merentas apl.

Jika Skrin Mula mengembalikan ralat, skrin pertama dalam pandangan Pokok Studio menunjukkan seolah-olah Skrin Mula tidak ditetapkan. Gunakan fungsi IfError untuk menangkap sebarang ralat dan ubah hala ke skrin ralat.

Selepas anda menukar Skrin Permulaan dalam Studio, ujinya dengan menuding pada objek Apl dalam anak tetingkap pandangan Pokok , memilih elipsis (...), dan kemudian memilih Navigasi ke Skrin Permulaan. Skrin berubah seolah-olah apl baru sahaja dimuatkan.

Navigasi ke StartScreen

Contoh

Screen9

Screen9 Muncul terlebih dahulu apabila apl bermula.

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

Menyemak sama ada Param "mod pentadbir" ditetapkan dan menggunakannya untuk memutuskan sama ada Skrin Utama atau Skrin Pentadbir dipaparkan terlebih dahulu.

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

Menyemak sama ada peserta ialah kakitangan dan mengarahkan mereka ke skrin yang betul semasa permulaan.

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

Menghalakan aplikasi berdasarkan panggilan API kepada sama ada ForestScreen atau OceanScreen. Jika API gagal, apl sebaliknya menggunakan ErrorScreen .

StudioVersion

Gunakan sifat StudioVersion untuk menunjukkan atau log versi Power Apps Studio yang digunakan untuk menerbitkan aplikasi. Sifat ini membantu apabila anda menyahpepijat dan menyemak bahawa apl anda diterbitkan semula dengan versi terkini Power Apps Studio.

StudioVersion mengembalikan teks. Format teks ini boleh berubah dari semasa ke semasa, jadi anggapnya secara keseluruhan dan jangan ekstrak bahagian individu.