Kongsi melalui


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.

  1. Cipta aplikasi kanvas kosong untuk tablet.

  2. Pada anak tetingkap kiri, pilih Data>Tambah data. Dan kemudian, tambah jadual Akaun dan Kenalan.

    Aplikasi kosong dengan dua sumber data: akaun dan kenalan.

  3. Pada anak tetingkap kiri, pilih + (Sisipkan) >Susun atur>Galeri menegak kosong.

    Sisipkan kawalan galeri dengan tataletak menegak kosong.

  4. Pilih Sambung kepada data dan kemudian pilih Kenalan sebagai sumber data.

  5. Tetapkan tataletak galeri kepada Tajuk dan subtajuk.

    Buka pemilih tataletak daripada anak tetingkap sifat.

    Tetapkan reka letak kepada Tajuk dan sari kata.

  6. Dalam anak tetingkap Data, buka senarai Title1 dan kemudian pilih Nama Penuh.

    Tetapkan nilai tajuk.

  7. Pilih kawalan label Subtitle1.

    Tetapkan nilai sari kata.

  8. 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'
    )
    

    Skrin kini selesai menunjukkan akaun dan kenalan bercampur dalam galeri.

    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.