Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Aplikasi kanvas
Menyusun jenis yang ditentukan pengguna untuk digunakan dengan fungsi yang ditentukan pengguna dan nilai yang tidak diketik.
Penting
- Fungsi-fungsi ini bersifat eksperimental.
- Fitur eksperimental tidak dimaksudkan untuk penggunaan produksi dan mungkin tidak lengkap. Fitur-fitur ini tersedia sebelum rilis resmi sehingga Anda bisa mendapatkan akses awal dan memberikan umpan balik. Informasi lebih lanjut: Memahami fitur eksperimental, pratinjau, dan dihentikan di aplikasi kanvas
- Perilaku ini hanya tersedia jika fitur Eksperimental Jenis yang ditentukan pengguna di Setelan > Fitur yang > akan datang Eksperimental diaktifkan (dinonaktifkan secara default).
- Umpan balik Anda sangat berharga. Beri tahu kami pendapat Anda di Power Apps forum komunitas fitur eksperimental.
Description
Setiap fungsi dalam Power Fx mendefinisikan jenis nilai yang dapat diteruskan sebagai parameter dan jenis output. Jenis diperiksa saat Anda menulis rumus dan kesalahan ditampilkan jika tidak sesuai dengan apa yang diharapkan. Jenis juga digunakan oleh editor untuk menyarankan opsi yang baik untuk apa yang harus dimasukkan ke dalam fungsi dan mendeteksi kesalahan sedini mungkin.
Saat membuat fungsi yang ditentukan pengguna sendiri, Anda perlu menentukan jenis input dan output. Untuk tipe sederhana seperti Desimal atau Teks, ini mudah karena tipe dasar ini telah ditentukan sebelumnya. Untuk jenis yang lebih kompleks, seperti rekaman atau tabel, gunakan Type fungsi untuk membuat jenis.
Fungsi ini Type juga membuat nilai dinamis lebih mudah dikerjakan. Dengan fungsi ParseJSON, IsType, dan AsType , nilai dinamis dapat dikonversi ke objek yang ditik di mana kolom tidak perlu lagi di ketik secara individual pada titik penggunaan.
Fungsi mengambil TypeTypeSpecification sebagai satu-satunya argumennya. Spesifikasi tipe yang paling sederhana adalah mereferensikan tipe yang ada, misalnya Type( Text ). Spesifikasi jenis untuk rekaman atau tabel mirip dengan mendefinisikan rekaman atau tabel dengan nilai literal, di mana nilai diganti dengan nama jenis. Misalnya,akan {Name: "Jane"} diketik dengan Type( {Name: Text} ). Tabel ditentukan dengan tanda kurung siku, bukan fungsi Tabel , dan hanya satu rekaman yang dapat disediakan. Misalnya,akan [1,2,3] diketik dengan Type( [Number] ).
RecordOf Gunakan fungsi untuk mengekstrak jenis catatan dari jenis tabel. Misalnya, Type( RecordOf( Library ) ) akan mengembalikan jenis buku tunggal dari perpustakaan. Untuk membuat jenis tabel dari jenis rekaman, Wrap jenis rekaman dalam tanda kurung siku. Misalnya, Type( [ Book ] ) mendefinisikan pustaka.
RecordOf hanya dapat digunakan dalam Type fungsi .
Fungsi Type dan nilai jenis yang dikembalikannya hanya dapat digunakan di tempat tertentu di Power Fx, seperti argumen kedua ke ParseJSON. Di aplikasi Canvas, Type fungsi dapat digunakan dengan rumus bernama di App.Formulas.
Sintaks
RecordOf( TableType )
- TableType – Wajib. Nama jenis tabel. Ini tidak menerima spesifikasi jenis, itu harus menjadi nama jenis yang ditentukan sebelumnya untuk tabel.
Type( TypeSpecification )
- TypeSpecification – Diperlukan. Spesifikasi tipe.
Contoh
fungsi Type
Pertimbangkan definisi berikut dalam App.Formulas:
Library =
[ { Title: "A Study in Scarlet", Author: "Sir Arthur Conan Doyle", Published: 1887 },
{ Title: "And Then There Were None", Author: "Agatha Christie", Published: 1939 },
{ Title: "The Marvelous Land of Oz", Author: "L. Frank Baum", Published: 1904 } ];
// Type definition for a single book
BookType := Type( { Title: Text, Author: Text, Published: Number } );
// Type definition for a table of books
LibraryType := Type( [ BookType ] );
Perhatikan bagaimana teks "A Study in Scarlet" judul yang sebenarnya diganti dengan nama Text jenis dalam spesifikasi jenis, tempat penampung untuk nilai teks apa pun. Parameter atau variabel jenis BookType dapat menampung salah satu buku Library, sementara LibraryType dapat menampung seluruh tabel. Dengan jenis-jenis ini, kita dapat mendefinisikan fungsi yang ditentukan pengguna ini:
SortedBooks( books: LibraryType ): LibraryType =
SortByColumns( Library, Author, SortOrder.Ascending, Title, SortOrder.Ascending );
PublishedInLeapYear( book: BookType ): Boolean =
Mod( book.Published, 4 ) = 0 And
(Mod( book.Published, 100 ) <> 0 Or Mod( book.Published, 400 ) = 0);
Anda juga dapat menggunakan untuk BookType mengurai string JSON yang berisi buku:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
Menggunakan BookType sebagai argumen kedua untuk ParseJSON menghasilkan rekaman yang diketik yang dapat digunakan seperti rekaman lainnya Power Fx .
fungsi RecordOf
Type Dalam contoh fungsi, Anda mulai dengan dan membangun LibraryType dengan BookType membungkus tabel di sekitarnya. Kita bisa mendefinisikan jenis-jenis ini secara terbalik dengan:
// Type definition for a table of books
RecordOfLibraryType := Type( [ { Title: Text, Author: Text, Published: Number } ] );
// Type definition for a single book
RecordOfBookType := Type( RecordOf( RecordOfLibraryType ) );