Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Vászonalapú alkalmazások
Felhasználó által definiált típust hoz létre a felhasználó által definiált függvényekkel és nem típusos értékekkel való használatra.
Description
Minden függvény Power Fx meghatározza a paraméterként átadható értékek típusát és a kimenet típusát. A képlet írásakor a rendszer ellenőrzi a típusokat, és megjeleníti a hibákat, ha nem egyeznek meg a várttal. A típusokat a szerkesztő arra is használja, hogy jó lehetőségeket javasoljon arra, hogy mit kell átadni a funkciónak, és a lehető leghamarabb észlelje a hibákat.
Saját felhasználó által definiált függvények létrehozásakor meg kell adnia a bemeneti és kimeneti típusokat. Az olyan egyszerű típusok esetében, mint a Decimális vagy a Szöveg, ez egyszerű, mivel ezek az alaptípusok előre definiáltak. Összetettebb típusok, például rekordok vagy táblák esetén használja a függvényt Type a típus létrehozásához.
A Type függvény megkönnyíti a dinamikus értékek kezelését is. A ParseJSON, az IsType és az AsType függvényekkel a dinamikus érték olyan beírt objektummá alakítható, amelyben az oszlopokat már nem kell egyenként begépelni a használat helyén.
A Type függvény egyetlen argumentuma a TypeSpecification függvény. A legegyszerűbb típusspecifikáció például Type( Text ) egy meglévő típusra való hivatkozás. Egy rekord vagy tábla típusspecifikációja hasonló egy literális értékekkel rendelkező rekord vagy tábla definiálásához, ahol az értékeket típusnevek helyettesítik. Például be lenne írva {Name: "Jane"} . Type( {Name: Text} ) A táblák szögletes zárójelekkel vannak megadva, nem a Table függvénnyel, és csak egy rekord adható meg. Például be lenne írva [1,2,3] . Type( [Number] )
A függvény használatával RecordOf kinyeri a rekordtípust egy táblatípusból.
Type( RecordOf( Library ) ) Például egyetlen könyv típusát adja vissza a könyvtárból. Ha rekordtípusból szeretne táblatípust létrehozni, szögletes zárójelek közé Beburkoló a rekordtípust. Például meghatároz egy könyvtárat Type( [ Book ] ) .
RecordOf csak a függvényen Type belül használható.
A Type függvény és a visszaadott típusérték csak bizonyos helyeken használható a Power Fxben, például a ParseJSON második argumentumában. A Vászonalapú alkalmazásokban a Type függvény egy elnevezett képlettel használható az App.Formulas alkalmazásban.
Syntax
RecordOf( Táblázat )
- TableType – kötelező. A tábla típusneve. Ez nem fogadja el a típusspecifikációt, egy tábla korábban definiált típusának nevének kell lennie.
Type( Típusspecifikáció )
- TypeSpecification – Kötelező. Típusspecifikáció.
Examples
Type függvény
Tekintse meg a következő definíciókat az App.Formulas fájlban:
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 ] );
Figyelje meg, hogy a tényleges címszöveget "A Study in Scarlet" hogyan helyettesíti a típusspecifikációban szereplő típusnév Text , amely bármely szöveges érték helyőrzője. Egy paraméter vagy változó BookType elfér az egyik könyvben Library, miközben LibraryType elfér benne a teljes táblázat. Ezekkel a típusokkal definiálhatjuk ezeket a felhasználó által definiált funkciókat:
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);
A használatával BookType könyvet tartalmazó JSON-sztringet is elemezhet:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
A ParseJSON BookType második argumentumaként való használata egy beírt rekordot eredményez, amely bármely más Power Fx rekordhoz hasonlóan használható.
RecordOf függvény
Type A függvénypéldában egy táblázat körbefuttatásával BookType kell kezdenie és felépítenieLibraryType. Ezeket a típusokat fordítva is definiálhattuk volna:
// 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 ) );