RecordOf және Type функциялары
Мыналарға қолданылады: Canvas қолданбалары
Пайдаланушы анықтаған функциялармен және типтелмеген мәндермен пайдалану үшін пайдаланушы анықталған түрін құрады.
Маңызды
- Бұл функциялар эксперименталды болып табылады.
- Эксперименттік мүмкіндіктер өндірісте пайдалануға арналмаған және толық болмауы мүмкін. Бұл мүмкіндіктер ресми шығарылым алдында қол жетімді, осылайша сіз ертерек қол жеткізіп, кері байланыс бере аласыз. Қосымша ақпарат: Кенеп бағдарламасындағы тәжірибелік, алдын ала қарау және қолданыстан шығарылған функцияларды түсіну
- Бұл әрекет Пайдаланушы анықтаған түрлер тәжірибелік мүмкіндік Параметрлер > Алдағы мүмкіндіктер > Эксперименталды қосулы (ол әдепкі бойынша өшірулі).
- Сіздің пікіріңіз құнды. Бізге Power Apps эксперименттік мүмкіндіктер қауымдастығы форумында ойыңызды айтыңыз.
Сипаттама
Power Fx ішіндегі әрбір функция параметр ретінде беруге болатын мән түрлерін және шығыс түрін анықтайды. Түрлер формуланы жазғанда тексеріледі және олар күтілетін нәрсеге сәйкес келмесе, қателер көрсетіледі. Түрлерді редактор функцияға не өту керек және қателерді мүмкіндігінше ертерек анықтау үшін жақсы опцияларды ұсыну үшін де пайдаланады.
Өзіңіздің пайдаланушы анықтайтын функцияларды жасаған кезде енгізу және шығару түрлерін көрсету қажет. Ондық немесе Мәтін сияқты қарапайым түрлер үшін бұл оңай, себебі бұл негізгі түрлер алдын ала анықталған. Жазбалар немесе кестелер сияқты күрделі түрлер үшін түрін жасау үшін Түр функциясын пайдаланыңыз.
Түр функциясы сонымен қатар типтелмеген нысандармен жұмыс істеуді жеңілдетеді. ParseJSON, IsType және AsType функциялары бар, типтелмеген нысанды пайдалану нүктесінде бағандарды жеке теруді қажет етпейтін терілген нысанға түрлендіруге болады.
Түр функциясы тек аргумент ретінде Түр сипаттамасы ді қабылдайды. Ең қарапайым түр спецификациясы бар түрге сілтеме жасау болып табылады, мысалы Type( Text )
. Жазба немесе кесте үшін тип спецификациясы мәндер түр атауларымен ауыстырылатын әріптік мәндері бар жазбаны немесе кестені анықтауға ұқсас. Мысалы, {Name: "Jane"}
Type( {Name: Text} )
арқылы теріледі. Кестелер Кесте функциясы емес, шаршы жақшалармен көрсетілген және тек бір жазбаны қамтамасыз етуге болады. Мысалы, [1,2,3]
Type( [Number] )
арқылы теріледі.
Жазба түрін кесте түрінен шығару үшін RecordOf функциясын пайдаланыңыз. Мысалы, Type( RecordOf( Library ) )
кітапханадан бір кітаптың түрін қайтарады. Жазба түрінен кесте түрін жасау үшін жазба түрін төртбұрышты жақшаға ораңыз. Мысалы, Type( [ Book ] )
кітапхананы анықтайды.
RecordOf тек Түрі функциясында ғана пайдалануға болады.
Түр функциясы және ол қайтаратын түр мәні Power Fx ішіндегі белгілі орындарда ғана пайдаланылуы мүмкін, мысалы ParseJSON. Canvas қолданбаларында Түр функциясын App.Formulas ішіндегі аталған формуламен пайдалануға болады.
Синтаксис
Жазба( Кесте түрі )
- TableType – Міндетті. Кесте түрінің атауы. Бұл түр спецификациясын қабылдамайды, ол кесте үшін бұрын анықталған түрдің атауы болуы керек.
Түр( Түр сипаттамасы )
- Түр ерекшелігі – Міндетті. Түр спецификациясы.
Мысалдар
Түр функциясы
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 ] );
Нақты тақырып мәтіні "A Study in Scarlet"
түр спецификациясында Text
түр атауымен, кез келген мәтін мәніне арналған толтырғышпен қалай ауыстырылғанына назар аударыңыз.
BookType
түріндегі параметр немесе айнымалы Library
ішіндегі кітаптардың бірін, ал LibraryType
бүкіл кестені сақтай алады. Осы түрлердің көмегімен біз пайдаланушы анықтаған функцияларды анықтай аламыз:
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);
Сондай-ақ, BookType
кітапты қамтитын JSON жолын талдау үшін пайдалануға болады:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
BookType
қолдану ParseJSON нәтижелеріне екінші аргумент ретінде кез келген басқа Power Fx жазба сияқты пайдалануға болатын терілген жазбаға әкеледі.
RecordOf функциясы
Түрі функция мысалында сіз BookType
ден басталып, LibraryType
кестенің айналасына орау арқылы құрастырасыз. Біз бұл түрлерді керісінше анықтай аламыз:
// 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 ) );