RecordOf- ja Type-funktiot
Koskee: Pohjaan perustuvat sovellukset
Muodostaa käyttäjän määrittämän tyypin, jota käytetään käyttäjän määrittämien funktioiden ja tyypittämättömien arvojen yhteydessä.
Tärkeä
- Nämä toiminnot ovat kokeellisia.
- Kokeellisia ominaisuuksia ei ole tarkoitettu tuotantokäyttöön, ja niiden toiminnallisuus voi olla rajoitettu. Nämä toiminnot ovat käytettävissä ennen virallista julkaisua, jotta voit käyttää niitä aikaisessa vaiheessa ja antaa palautetta. Lisätietoja: Tietoja in kokeellisista, esiversio- ja käytöstä poistetuista ominaisuuksista pohjaan perustuvissa sovelluksissa
- Tämä toiminta on käytettävissä vain, kun kokeellinen Käyttäjän määrittämät tyypit -ominaisuus on otettu käyttöön (se on oletusarvoisesti pois käytöstä) kohdassa Asetukset > : Tulevat ominaisuudet > Kokeellinen.
- Palautteesi on arvokasta. Kerro meille mielipiteesi Power Appsin kokeellisten ominaisuuksien yhteisön keskustelupalstalla.
Jokainen Power Fx:n funktio määrittää parametrina välitettävien arvojen tyypit ja tulosteen tyypin. Tyypit tarkistetaan, kun kirjoitat kaavaa, ja virheet näytetään, jos ne eivät vastaa odotettua. Editori käyttää tyyppejä myös ehdottaakseen hyviä vaihtoehtoja siihen, mitä väittää funktioon, ja tunnistaakseen virheet mahdollisimman varhaisessa vaiheessa.
Kun luot omia käyttäjän määrittämiä funktiota, sinun on määritettävä syöte- ja tulostyypit. Yksinkertaisille tyypeille, kuten Decimal - tai Text, tämä on helppoa, koska nämä perustyypit on määritetty ennalta. Jos kyseessä on monimutkaisempi tyyppi, kuten tietueet tai taulukot, luo tyyppi Type-funktiolla.
Type-funktio helpottaa myös tyypittämättömien objektien käsittelyä. ParseJSON-, IsType- ja AsType-funktioilla tyypittämätön objekti voidaan muuntaa tyypitetyksi objektiksi, jossa sarakkeita ei enää tarvitse tyypittää yksitellen käyttöpaikassa.
Type-funktio ottaa TypeSpecification-argumentin ainoana argumenttina. Yksinkertaisin tyyppimäärittely on viitata olemassa olevaan tyyppiin, esimerkiksi Type( Text )
. Tietueen tai taulukon tyyppimääritys muistuttaa tietueen tai taulukon määrittelemistä literaaliarvoilla siten, että arvot korvataan tyyppinimillä. Esimerkiksi, {Name: "Jane"}
tyypitetään seuraavasti: Type( {Name: Text} )
. Taulukot määritetään hakasulkeilla, ei Table-funktiolla, ja vain yksi tietue voidaan antaa. Esimerkiksi, [1,2,3]
tyypitetään seuraavasti: Type( [Number] )
.
RecordOf-funktion avulla voit purkaa tietuetyypin taulukkotyypistä. Esimerkiksi Type( RecordOf( Library ) )
palauttaisi kirjastosta yksittäisen kirjan tyypin. Jos haluat tehdä taulukkotyypin tietuetyypistä, sulje tietuetyyppi hakasulkeisiin. Esimerkiksi Type( [ Book ] )
määrittää kirjaston.
RecordOf-funktiota voi vain käyttää Type-funktiossa.
Type-funktiota ja sen palauttamaa tyyppiarvoa voidaan vain käyttää tietyissä paikoissa Power Fx:ssä, kuten ParseJSON-funktion toisessa argumentissa. Pohjaan perustuvissa sovelluksissa Type-funktiota voidaan käyttää nimetyn kaavan kanssa: App.Formulas.
RecordOf( TableType )
- TableType – vaaditaan. Taulukon tyypin nimi. Tässä ei hyväksytä tyyppimääritystä, vaan arvon on oltava aiemmin määritetty taulukon tyyppi.
Type( TypeSpecification )
- TypeSpecification – pakollinen. Tyyppimääritys.
Harkitse seuraavia määritelmiä App.Formulas-kohdassa:
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 ] );
Huomaa, miten varsinainen otsikkoteksti "A Study in Scarlet"
korvataan tyyppimäärityksen tyyppinimellä Text
, joka on minkä tahansa tekstiarvon paikkamerkki.
BookType
-tyypin parametri tai muuttuja voi sisältää yhden Library
-objektin kirjoista, kun taas LibraryType
voi sisältää koko taulukon. Kun nämä tyypit ovat käytössä, voimme määrittää nämä käyttäjän määrittämät funktiot:
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);
Voit myös käyttää BookType
-tyyppiä jäsentämään JSON-merkkijonon, joka sisältää kirjan:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
Jos käytät BookType
-tyyppiä toisena argumenttina ParseJSON-funktiolle, tuloksena on tyypitetty tietue, jota voidaan käyttää muiden Power Fx -tietueiden tavoin.
Type-funktioesimerkissä aloitat BookType
-tyypillä ja rakennat LibraryType
-tyypin paketoimalla taulukon sen ympärille. Olisimme voineet määritellä nämä tyypit käänteisesti:
// 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 ) );