Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Tuval uygulamaları
Kullanıcı tanımlı işlevler ve türü belirtilmemiş değerlerle kullanılmak üzere kullanıcı tanımlı bir tür oluşturur.
Önemli
- Bu işlevler deneyseldir.
- Deneysel özellikler üretim amaçlı kullanıma yönelik değildir ve tamamlanmamış olabilir. Bu özellikler, önceden erişebilmeniz ve geri bildirim sağlamanız amacıyla resmi sürümden önce kullanıma sunulur. Daha fazla bilgi: Tuval uygulamasında deneysel, önizleme ve kullanımdan kaldırılan özellikleri anlama
- Bu davranış yalnızca 'deki > deneysel özelliği açık olduğunda kullanılabilir (varsayılan olarak kapalıdır).
- Geri bildiriminiz değerlidir. Düşüncelerinizi Power Apps deneysel özellik topluluk forumunda bize bildirin.
Description
Power Fx içindeki her fonksiyon, parametre olarak geçilebilecek değer türlerini ve çıktının türünü tanımlar. Bir formül yazarken türler kontrol edilir ve beklenenle uyuşmadıklarında hatalar gösterilir. Türler ayrıca editör tarafından işleve nelerin geçirileceği konusunda iyi seçenekler önermek ve hataları mümkün olduğunca erken tespit etmek için kullanılır.
Kendi kullanıcı tanımlı işlevlerinizi oluştururken, giriş ve çıkış türlerini belirtmeniz gerekir. Ondalık veya Metin gibi basit tipler için bu kolaydır çünkü bu temel tipler önceden tanımlanmıştır. Kayıtlar veya tablolar gibi daha karmaşık türler için, türü oluşturmak için işlevini kullanın Type .
İşlev ayrıca Type dinamik değerlerin daha kolay çalışmasını sağlar. ParseJSON, IsType ve AsType işlevleriyle dinamik bir değer, artık kullanım noktasında sütunların tek tek yazılması gerekmeyen bir türlenmiş nesneye dönüştürülebilir.
işlevi tek Type bağımsız değişkeni olarak TypeSpecification alır. En basit tip tanımlaması, var olan bir tipe, örneğin Type( Text )'e referans vermektir. Bir kayıt veya tablo için tür belirtimi, değerlerin tür adlarıyla değiştirildiği değişmez değerlere sahip bir kayıt veya tablo tanımlamaya benzer. Örneğin {Name: "Jane"}, Type( {Name: Text} ) ile yazılabilir. Tablolar köşeli parantezlerle belirtilir, Tablo işleviyle değil ve yalnızca bir kayıt sağlanabilir. Örneğin [1,2,3], Type( [Number] ) ile yazılabilir.
Bir tablo türünden RecordOf kayıt türünü ayıklamak için işlevini kullanın. Örneğin, Type( RecordOf( Library ) ) kütüphaneden tek bir kitabın türünü döndürür. Kayıt türünden tablo türü oluşturmak için, kayıt türünü köşeli parantez içine alın. Örneğin, Type( [ Book ] ) bir kütüphaneyi tanımlar.
RecordOf yalnızca işlevi içinde Type kullanılabilir.
Type İşlev ve döndürdüğü tür değeri yalnızca Power Fx'te ParseJSON'a ikinci bağımsız değişken gibi belirli yerlerde kullanılabilir. Tuval uygulamalarında, Type işlev App.Formulas'ta adlandırılmış bir formülle kullanılabilir.
Sözdizimi
RecordOf( TableType )
- TableType – Gerekli. Bir tablonun tür adı. Bu bir tür belirtimini kabul etmez, bir tablo için önceden tanımlanmış bir türün adı olması gerekir.
Type( TypeSpecification )
- TypeSpecification – Gerekli. Bir tür belirtimi.
Örnekler
Type fonksiyon
App.Formulas'taki aşağıdaki tanımları göz önünde bulundurun:
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 ] );
Tür belirtiminde gerçek başlık metni "A Study in Scarlet"'in, herhangi bir metin değeri için bir yer tutucu olan tür adı Text ile değiştirildiğine dikkat edin.
BookType tipindeki bir parametre veya değişken Library içindeki kitaplardan birini tutabilirken, LibraryType tüm tabloyu tutabilir. Bu türler yerindeyken, bu kullanıcı tanımlı işlevleri tanımlayabiliriz:
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);
Ayrıca bir kitap içeren JSON dizesini ayrıştırmak için BookType de kullanabilirsiniz:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
BookType'un ikinci argümanı olarak kullanılması, diğer Power Fx kayıtları gibi kullanılabilen türlendirilmiş bir kayıtla sonuçlanır.
RecordOf fonksiyon
İşlev örneğinde Type , ile BookType başlar ve etrafında bir tablo kaydırarak oluşturursunuz LibraryType . Bu türleri tersten şu şekilde tanımlayabilirdik:
// 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 ) );