Jagamisviis:


RecordOf ja Type funktsioonid

Kehtib: Lõuendirakendused

Konstrueerib kasutaja määratletud tüübi kasutaja määratletud funktsioonide ja tippimata väärtustega kasutamiseks.

Oluline

  • Need funktsioonid on eksperimentaalsed.
  • Eksperimentaalsed funktsioonid ei ole mõeldud tootmises kasutamiseks ja ei pruugi olla täielikud. Need funktsioonid on saadaval enne ametlikku väljalaset, et saaksite varakult juurde pääseda ja tagasisidet anda. Lisateave: Katse-, eelvaate- ja iganenud lõuendirakenduste funktsioonide mõistmine
  • See käitumine on saadaval ainult siis, kui kasutaja määratletud tüüpide eksperimentaalne funktsioon sätetes > Eelseisvad funktsioonid > Eksperimentaalne on sisse lülitatud (see on vaikimisi välja lülitatud).
  • Teie tagasiside on väärtuslik. Andke meile teada, mida arvate eksperimentaalsete funktsioonide kogukonna foorumist Power Apps .

Kirjeldus

Iga funktsioon Power Fx määratleb väärtuste tüübid, mida saab parameetritena edastada, ja väljundi tüübi. Tüüpe kontrollitakse valemi kirjutamisel ja kuvatakse vead, kui need ei nõustu eeldatuga. Tüüpe kasutab ka toimetaja, et soovitada häid võimalusi, mida funktsiooni edasi anda ja vigu võimalikult varakult avastada.

Oma kasutaja määratletud funktsioonide loomisel peate määrama sisend- ja väljundtüübid. Lihtsate tüüpide puhul, nagu kümnendkoht või tekst, on see lihtne, kuna need põhitüübid on eelnevalt määratletud. Keerukamate tüüpide (nt kirjete või tabelite) korral saate selle funktsiooni abil Type luua tüübi.

Funktsioon Type muudab dünaamiliste väärtustega töötamise lihtsamaks. Funktsioonide ParseJSON, IsType ja AsType abil saab dünaamilise väärtuse teisendada tipitud objektiks, kus veerge ei pea enam kasutuskohas eraldi tippima.

Funktsiooni Type ainsaks argumendiks on TypeSpecification . Lihtsaim tüübispetsifikatsioon on viidata näiteks Type( Text ) olemasolevale tüübile. Kirje või tabeli tüübimääratlus sarnaneb sõnasõnaliste väärtustega kirje või tabeli määratlemisega, kus väärtused asendatakse tüübinimedega. Näiteks,kirjutatakse {Name: "Jane"} koos Type( {Name: Text} ). Tabelid on määratud nurksulgudega, mitte funktsiooniga Tabel , ja esitada saab ainult ühe kirje. Näiteks,kirjutatakse [1,2,3] koos Type( [Number] ).

Kasutage seda RecordOf funktsiooni kirjetüübi ekstraktimiseks tabelitüübist. Näiteks Type( RecordOf( Library ) ) tagastaks raamatukogust ühe raamatu tüübi. Tabelitüübi tegemiseks kirje tüüp Pakendamine kirje tüüp nurksulgudes. Näiteks Type( [ Book ] ) määratleb teegi. RecordOf saab kasutada ainult funktsioonis Type .

Funktsiooni Type ja tagastatavat tüübiväärtust saab kasutada ainult Power Fx-is kindlates kohtades (nt ParseJSON-i teine argument). Lõuendirakendustes Type saab funktsiooni kasutada nimega valemiga rakenduses App.Formulas.

Süntaks

RecordOf( TableType )

  • TableType – nõutav. Tabeli tüübi nimi. See ei aktsepteeri tüübispetsifikatsiooni, see peab olema tabeli jaoks eelnevalt määratletud tüübi nimi.

Type( TypeSpecification )

  • TypeSpecification – nõutav. Tüübi spetsifikatsioon.

Näited

Type funktsioon

Kaaluge järgmisi definitsioone jaotises 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 ] );

Pange tähele, kuidas tegelik pealkirja tekst "A Study in Scarlet" asendatakse tüübikirjelduses tüübi nimega Text , mis on mis tahes tekstiväärtuse kohatäide. Parameeter või tüübimuutuja BookType mahutab ühe raamatu sisse Library, samas mahutab LibraryType kogu tabeli. Kui need tüübid on paigas, saame määratleda järgmised kasutaja määratletud funktsioonid:

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);

Võite kasutada BookType ka raamatut sisaldava JSON-stringi sõelumiseks:

ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)

ParseJSON-i BookType teise argumendina kasutamise tulemuseks on tipitud kirje, mida saab kasutada nagu iga teist Power Fx kirjet.

RecordOf funktsioon

Type Funktsiooni näites alustate BookType ja koostate LibraryType selle ümber tabeli mähkimisega. Oleksime võinud need tüübid määratleda vastupidises suunas:

// 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 ) );