Fungsi AsType dan IsType
Digunakan untuk: Aplikasi kanvas Aplikasi dipacu Power Pages Power Platform model CLI
Semak rujukan rekod untuk jenis jadual tertentu (IsType) dan menganggap rujukan sebagai jenis tertentu (AsType).
Nota
Perintah PAC CLI pac power-fx tidak menyokong IsType.
Description
Baca Memahami rujukan rekod dan carian polimorfik untuk pengenalan yang lebih luas dan lebih terperinci.
Medan carian biasanya merujuk kepada rekod dalam jadual tertentu. Kerana jenis jadual ditubuhkan dengan baik, anda boleh mengakses medan carian dengan menggunakan notasi titik. Contohnya, First( Akaun ).'Kenalan Utama'.'Nama Penuh bergerak daripada jadual Akaun kepada rekod Kenalan Utama dalam jadual Kenalan dan ekstrak medan Nama Penuh.
Microsoft Dataverse juga menyokong medan carian polimorfik, yang boleh merujuk kepada rekod daripada set jadual, seperti dalam contoh ini.
Medan carian | Boleh merujuk ke |
---|---|
Pemilik | Pengguna atau Pasukan |
Pelanggan | Akaun atau Kenalan |
Mengenai | Akaun, Kenalan, Artikel Pengetahuan, dsb. |
Dalam formula aplikasi kanvas, gunakan rujukan rekod untuk bekerja dengan carian polimorfik. Kerana rujukan rekod boleh merujuk kepada jadual yang berbeza, anda tidak tahu medan yang akan tersedia apabila anda menulis formula. Notasi Record.Field tidak tersedia. Formula tersebut mesti disesuaikan dengan rekod yang aplikasi hadapi semasa dijalankan.
Fungsi IsType menguji sama ada rujukan rekod merujuk kepada jenis jadual tertentu. Fungsi akan mengembalikan Boolean BENAR atau PALSU.
Fungsi AsType menganggap rujukan rekod sebagai jenis jadual tertentu, kadang-kala dirujuk sebagai pemutus. Anda boleh menggunakan keputusan seolah-olah ia adalah rekod jadual dan sekali lagi menggunakan notasi Record.Field untuk mengakses semua medan rekod tersebut. Ralat berlaku jika rujukan bukan jenis tertentu.
Gunakan fungsi ini bersama untuk menguji terlebih dahulu jenis jadual rekod dan kemudian menganggap ia sebagai rekod jenis tersebut supaya medan tersedia:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
Anda memerlukan fungsi ini hanya jika anda mengakses medan rujukan rekod. Sebagai contoh, anda boleh menggunakan rujukan rekod dalam fungsi Filter tanpa IsType atau AsType:
Filter( Accounts, Owner = First( Users ) )
Begitu juga, anda boleh menggunakan rujukan rekod dengan fungsi Patch:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
Jika digunakan dalam konteks rekod, seperti dalam Galeri atau kawalan Borang edit, anda mungkin perlu menggunakan pengendali penyahtaksaan global untuk merujuk kepada jenis jadual. Sebagai contoh, formula ini akan berkesan untuk galeri yang memaparkan senarai kenalan yang mana Nama Syarikat adalah carian Pelanggan:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
Untuk kedua-dua fungsi, anda tentukan jenis melalui nama sumber data yang disambungkan kepada jadual. Untuk formula berfungsi, anda juga mesti menambahkan sumber data kepada aplikasi untuk sebarang jenis yang ingin anda uji atau tukar. Contohnya, anda mesti menambah jadual Pengguna sebagai sumber data jika anda mahu menggunakan carian IsType dan AsType dengan Pemilik dan rekod daripada jadual tersebut. Anda hanya boleh menambah sumber data yang anda benar-benar gunakan dalam aplikasi anda; anda tidak perlu menambah semua jadual yang boleh dirujuk carian.
Jika rujukan rekod adalah kosong, IsType akan mengembalikan PALSU dan AsType akan mengembalikan kosong. Semua medan rekod kosong akan menjadi kosong.
Sintaks
AsType( Rujukan Rekod, Jenis Jadual )
- RecordReference - Diperlukan. Rujukan rekod, selalunya medan carian yang boleh merujuk kepada rekod dalam sebarang jadual berbilang.
- TableType - Diperlukan. Penukaran jenis rekod pada jadual tertentu.
IsType(Rujukan Rekod,TableType )
- RecordReference - Diperlukan. Rujukan rekod, selalunya medan carian yang boleh merujuk kepada rekod dalam sebarang jadual berbilang.
- TableType - Diperlukan. Jadual tertentu untuk diuji.
Contoh
Fahami rujukan rekod dan carian polimorfik mengandungi contoh yang luas.
Cipta aplikasi kanvas kosong untuk tablet.
Pada anak tetingkap kiri, pilih Data>Tambah data. Dan kemudian, tambah jadual Akaun dan Kenalan.
Pada anak tetingkap kiri, pilih + (Sisipkan) >Susun atur>Galeri menegak kosong.
Pilih Sambung kepada data dan kemudian pilih Kenalan sebagai sumber data.
Tetapkan tataletak galeri kepada Tajuk dan subtajuk.
Dalam anak tetingkap Data, buka senarai Title1 dan kemudian pilih Nama Penuh.
Pilih kawalan label Subtitle1.
Tetapkan sifat Text bagi Subtitle1 kepada formula ini:
If( IsBlank( ThisItem.'Company Name' ), "--", IsType( ThisItem.'Company Name', Accounts ), "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name', "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name' )
Subtajuk dalam galeri menunjukkan nilai ini:
- "--" jika 'Nama Syarikat' adalah kosong.
- "Akaun: " dan kemudian medan Nama Akaun daripada jadual Akaun jika medan Nama Syarikat merujuk kepada akaun.
- "Kenalan: " dan kemudian medan Nama Penuh daripada jadual Kenalan jika medan Nama Syarikat merujuk kepada kenalan.
Hasil anda mungkin berbeza dengan yang berada dalam topik ini kerana menggunakan data sampel yang diubah suai untuk menunjukkan jenis hasil tambahan.