Partekatu bidez


RecordOfFuntzioak Type

Honi dagokio: Canvas aplikazioei

Erabiltzaileak definitutako mota bat eraikitzen du erabiltzaileak definitutako funtzioekin eta idatzi gabeko balioekin erabiltzeko.

Garrantzitsua da

Deskribapenak

Power Fx ko funtzio bakoitzak parametro gisa pasa daitezkeen balio motak eta irteera mota definitzen ditu. Motak egiaztatzen dira formula bat idazten duzunean eta erroreak agertzen dira espero denarekin ados ez badatoz. Editoreak motak ere erabiltzen ditu funtziora zer pasatzeko aukera onak iradokitzeko eta akatsak ahalik eta lehen detektatzeko.

Erabiltzaileak definitutako funtzioak sortzerakoan, sarrera eta irteera motak zehaztu behar dituzu. Dezimal edo Testua bezalako mota sinpleetarako, erraza da oinarrizko mota hauek aurrez definituta baitaude. Mota konplexuagoetarako, hala nola erregistroak edo taulak, erabili funtzioa Type mota sortzeko.

Funtzio honek Type balio dinamikoekin lan egitea errazten du. ParseJSON, IsType eta AsType funtzioekin, balio dinamiko bat tipatutako objektu bihur daiteke, non zutabeak jada ez baitira banan-banan idatzi behar erabilera-puntuan.

Funtzioak TypeTypeSpecification argumentu bakarra hartzen du. Motaren zehaztapen errazena lehendik dagoen mota bati erreferentzia egitea da, adibidez Type( Text ). Erregistro edo taula baterako motaren zehaztapena balio literalak dituzten erregistro edo taula definitzearen antzekoa da, non balioak mota-izenekin ordezkatzen diren. Adibidez, {Name: "Jane"}Type( {Name: Text} )-rekin idatziko litzateke. Taulak kortxeteekin zehazten dira, ez Taula funtzioa, eta erregistro bakarra eman daiteke. Adibidez, [1,2,3]Type( [Number] )-rekin idatziko litzateke.

Erabili funtzioa RecordOf erregistro mota taula batetik ateratzeko. Adibidez, Type( RecordOf( Library ) ) liburu bakar baten mota itzuliko luke liburutegitik. Erregistro mota, Doitu batetik taula mota bat egiteko erregistro mota kortxete artean. Adibidez, Type( [ Book ] ) liburutegi bat definitzen du. RecordOf Funtzioaren Type barruan soilik erabil daiteke.

Funtzioa Type eta itzultzen duen motaren balioa Power Fx-en leku zehatzetan soilik erabil daitezke, adibidez, ParseJSON-en bigarren argumentuan. Canvas aplikazioetan, funtzioa Type izendatutako formula batekin erabil daiteke App.Formulas-en.

Sintaxia

RecordOf( Taula mota )

  • TableType – Beharrezkoa. Taula baten motaren izena. Honek ez du motaren zehaztapenik onartzen, aurretik zehaztutako mota baten izena izan behar du taula baterako.

Type( TypeSpecification )

  • TypeSpecification – Beharrezkoa. Motaren zehaztapena.

Adibideak

Type funtzioa

Kontuan izan honako definizio hauek App.Formulasn:

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

Kontuan izan nola benetako tituluaren testua "A Study in Scarlet" motaren zehaztapenean Text motaren izenarekin ordezkatzen den, edozein testu-balioren leku-markak. BookType motako parametro edo aldagai batek Libraryko liburuetako bat eduki dezake, eta LibraryType taula osoa eduki dezake. Mota hauek ezarrita, erabiltzaileak definitutako funtzio hauek defini ditzakegu:

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

Liburu bat duen JSON kate bat analizatzeko BookType ere erabil dezakezu:

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

BookType ParseJSON rako bigarren argumentu gisa erabiltzeak beste edozein Power Fx erregistro bezala erabil daitekeen idatzitako erregistroa lortzen du.

RecordOf funtzioa

Funtzioaren adibidean Type , taula bat inguratuz hasi BookType eta eraiki LibraryType behar duzu. Mota hauek alderantziz definitu genitzake:

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