Funkcijas RecordOf un Type
Attiecas uz: Audekla programmām
Konstruē lietotāja definētu tipu lietošanai ar lietotāja definētām funkcijām un neierakstītām vērtībām.
Svarīgi
- Šīs funkcijas ir eksperimentālas.
- Eksperimentālie līdzekļi nav paredzēti izmantošanai ražošanā, un tie var nebūt pilnīgi. Šie līdzekļi ir pieejami pirms oficiālā laidiena, lai jūs varētu iegūt agrīnu piekļuvi un sniegt atsauksmes. Papildinformācija: Izpratne par izmēģinājuma, priekšskatījuma un novecojušajiem līdzekļiem pamatnes programmā
- Šī problēma ir pieejama tikai tad, ja lietotāja definēto tipu eksperimentālais līdzeklis iestatījumosGaidāmie līdzekļi > Eksperimentālie > līdzekļi ir ieslēgts (pēc noklusējuma tas ir izslēgts).
- Jūsu atsauksmes ir vērtīgas. Paziņojiet mums, ko jūs domājat eksperimentālo funkciju kopienas forumā Power Apps .
Katra funkcija Power Fx definē vērtību tipus, kurus var nodot kā parametrus, un izvades veidu. Tipi tiek pārbaudīti, kad rakstāt formulu, un kļūdas tiek parādītas, ja tie neatbilst gaidītajam. Tipus redaktors izmanto arī, lai ieteiktu labas iespējas, ko nodot funkcijai un pēc iespējas ātrāk atklāt kļūdas.
Veidojot savas lietotāja definētās funkcijas, jums jānorāda ievades un izvades veidi. Vienkāršiem tipiem, piemēram , decimāldaļai vai tekstam, tas ir vienkārši, jo šie pamatveidi ir iepriekš definēti. Sarežģītākiem tipiem, piemēram, ierakstiem vai tabulām, izmantojiet funkciju Tips , lai izveidotu tipu.
Funkcija Type arī atvieglo darbu ar neierakstītiem objektiem. Izmantojot funkcijas ParseJSON, IsType un AsType , neierakstītu objektu var pārvērst par ierakstītu objektu, kurā lietošanas vietā vairs nav atsevišķi jāraksta kolonnas.
Funkcijai Type tiek izmantots parametrs TypeSpecific , jo tas ir vienīgais arguments. Vienkāršākā tipa specifikācija ir, piemēram Type( Text )
, atsaukties uz esošu tipu. Tipa specifikācija ierakstam vai tabulai ir līdzīga ieraksta vai tabulas ar burtiskām vērtībām definēšanai, kur vērtības tiek aizstātas ar tipu nosaukumiem. Piemēram,tiktu {Name: "Jane"}
rakstīts ar Type( {Name: Text} )
. Tabulas ir norādītas ar kvadrātiekavām, nevis funkciju Tabula , un var nodrošināt tikai vienu ierakstu. Piemēram,tiktu [1,2,3]
rakstīts ar Type( [Number] )
.
Izmantojiet funkciju RecordOf , lai izvilktu ieraksta tipu no tabulas tipa. Piemēram,atgrieztu Type( RecordOf( Library ) )
vienas grāmatas veidu no bibliotēkas. Lai tabulas tipu izveidotu no ieraksta tipa, aptiniet ieraksta tipu kvadrātiekavās. Piemēram, Type( [ Book ] )
definē bibliotēku.
RecordOf var izmantot tikai funkcijā Type .
Funkciju Tips un tās atgriezto tipa vērtību var izmantot tikai noteiktās vietās, piemēram Power Fx, otrajā argumentā ParseJSON. Kanvas programmās funkciju Tips var izmantot ar nosauktu formulu programmā App.Formulas.
RecordOf( TableType )
- TableType - Obligāts. Tabulas tipa nosaukums. Tas nepieņem tipa specifikāciju, tam ir jābūt iepriekš definēta tabulas tipa nosaukumam.
Type( TypeSpecification )
- TypeSpecification – Obligāts. Tipa specifikācija.
Apsveriet tālāk norādītās definīcijas programmā 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 ] );
Ievērojiet, kā faktiskais virsraksta teksts "A Study in Scarlet"
tiek aizstāts ar tipa nosaukumu Text
tipa specifikācijā, kas ir jebkuras teksta vērtības vietturis. Tipa parametrs vai mainīgais BookType
var turēt vienu no grāmatām Library
, bet LibraryType
var turēt visu galdu. Izmantojot šos tipus, mēs varam definēt šīs lietotāja definētās funkcijas:
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);
Varat arī izmantot, BookType
lai parsētu JSON virkni, kurā ir grāmata:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
Izmantojot BookType
kā otro argumentu ParseJSON , tiek iegūts ierakstīts ieraksts, ko var izmantot tāpat kā jebkuru citu Power Fx ierakstu.
Funkcijas Type piemērā jūs sākat ar BookType
un veidojat LibraryType
, aptinot ap to tabulu. Mēs būtu varējuši definēt šos veidus apgrieztā veidā ar:
// 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 ) );