Funkcijos RecordOf ir Type
Taikoma: drobės programoms
Sukuria vartotojo apibrėžtą tipą, skirtą naudoti su vartotojo apibrėžtomis funkcijomis ir neįvestomis reikšmėmis.
Svarbu
- Šios funkcijos yra eksperimentinės.
- Eksperimentinės funkcijos nėra skirtos naudoti gamyboje ir gali būti neišbaigtos. Šios funkcijos pasiekiamos prieš oficialų išleidimą, kad galėtumėte gauti išankstinę prieigą ir pateikti atsiliepimų. Daugiau informacijos: Nebenaudojamų, eksperimentinių ir peržiūros funkcijų supratimas ir nebenaudojamos funkcijos drobės programose
- Šis veikimas galimas tik tada, kai įjungta vartotojo apibrėžtų tipų eksperimentinė funkcija parametruose > Būsimos funkcijos > Eksperimentinis (ji išjungta pagal numatytuosius nustatymus).
- Jūsų atsiliepimai yra vertingi. Praneškite mums, ką manote eksperimentinių funkcijų bendruomenės forume Power Apps .
Aprašą
Kiekviena funkcija Power Fx apibrėžia reikšmių tipus, kuriuos galima perduoti kaip parametrus, ir išvesties tipą. Tipai tikrinami, kai rašote formulę, ir rodomos klaidos, jei jie nesutinka su tuo, ko tikimasi. Redaktorius taip pat naudoja tipus, kad pasiūlytų geras parinktis, ką perduoti į funkciją ir kuo anksčiau aptikti klaidas.
Kurdami savo vartotojo apibrėžtas funkcijas, turite nurodyti įvesties ir išvesties tipus. Paprastiems tipams, tokiems kaip dešimtainis arba tekstas, tai lengva, nes šie pagrindiniai tipai yra iš anksto nustatyti. Sudėtingesniems tipams, pvz., įrašams arba lentelėms, naudokite funkciją Type , kad sukurtumėte tipą.
Funkcija Tipas taip pat palengvina darbą su neįvestais objektais. Naudojant funkcijas ParseJSON, IsType ir AsType , neįvestą objektą galima konvertuoti į įvestą objektą, kuriame stulpelių nebereikia atskirai įvesti naudojimo vietoje.
Funkcija Tipas naudoja TypeSpecification kaip vienintelį argumentą. Paprasčiausia tipo specifikacija yra, pavyzdžiui Type( Text )
, nurodyti esamą tipą. Įrašo arba lentelės tipo specifikacija yra panaši į įrašo ar lentelės su pažodinėmis reikšmėmis apibrėžimą, kur reikšmės pakeičiamos tipų pavadinimais. Pavyzdžiui,būtų {Name: "Jane"}
įvestas su Type( {Name: Text} )
. Lentelės nurodomos laužtiniais skliaustais, o ne funkcija Lentelė , ir galima pateikti tik vieną įrašą. Pavyzdžiui,būtų [1,2,3]
įvestas su Type( [Number] )
.
Naudokite funkciją RecordOf, kad išskleistumėte įrašo tipą iš lentelės tipo. Pavyzdžiui,grąžintų Type( RecordOf( Library ) )
vienos knygos tipą iš bibliotekos. Norėdami, kad lentelės tipas būtų iš įrašo tipo, įrašo tipą rašykite laužtiniuose skliaustuose. Pavyzdžiui,apibrėžia Type( [ Book ] )
biblioteką.
RecordOf galima naudoti tik funkcijoje Type .
Funkciją Type ir jos pateiktą tipo reikšmę galima naudoti tik konkrečiose vietose, pvz Power Fx., antrasis argumentas ParseJSON. Drobės programose funkciją Tipas galima naudoti su pavadinta formule App.Formulas.
Sintaksė
RecordOf( TableType )
- TableType – būtina. Lentelės tipo pavadinimas. Tai nepriima tipo specifikacijos, tai turi būti anksčiau apibrėžto lentelės tipo pavadinimas.
Type( TypeSpecification )
- TypeSpecification – būtina. Tipo specifikacija.
Pavyzdžiai
Funkcija Type
Apsvarstykite šiuos "App.Formulas" apibrėžimus :
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 ] );
Atkreipkite dėmesį, kaip tikrasis pavadinimo tekstas "A Study in Scarlet"
tipo specifikacijoje pakeičiamas tipo pavadinimu Text
, bet kurios teksto reikšmės vietos rezervavimo ženklu. Parametras arba tipo BookType
kintamasis gali laikyti vieną iš knygų Library
, o LibraryType
gali laikyti visą lentelę. Turėdami šiuos tipus, galime apibrėžti šias vartotojo apibrėžtas 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);
Taip pat galite naudoti BookType
norėdami išanalizuoti JSON eilutę, kurioje yra knyga:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
Naudojant BookType
kaip antrąjį "ParseJSON " argumentą , gaunamas įvestas įrašas, kurį galima naudoti kaip bet kurį kitą Power Fx įrašą.
Funkcija RecordOf
Funkcijos Tipas pavyzdyje pradedate BookType
ir kuriate LibraryType
apvyniodami aplink ją lentelę. Šiuos tipus galėjome apibrėžti atvirkščiai:
// 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 ) );