Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
S'aplica a: Aplicacions de llenç
Construeix un tipus definit per l'usuari per utilitzar-lo amb funcions definides per l'usuari i valors sense tip.
Important
- Aquestes funcions són experimentals.
- Les característiques experimentals no estan pensades per a l'ús de producció i poden no estar completes. Aquestes funcions estan disponibles abans d'un llançament oficial perquè pugueu obtenir accés anticipat i proporcionar comentaris. Per a més informació: Entendre les característiques experimentals, de versió preliminar i retirades a les aplicacions de llenç
- Aquest comportament només està disponible quan la característica experimental Tipus definits per l'usuari a Configuració > Properes característiques > experimentals està activada (està desactivada per defecte).
- Els vostres comentaris són valuosos. Feu-nos saber què en penseu al fòrum Power Apps dela comunitat de característiques experimentals.
Descripció
Cada funció de defineix Power Fx els tipus de valors que es poden passar com a paràmetres i el tipus de sortida. Els tipus es comproven quan escriviu una fórmula i es mostren errors si no concorden amb el que s'espera. Els tipus també són utilitzats per l'editor per suggerir bones opcions sobre què passar a la funció i detectar errors el més aviat possible.
Quan creeu les vostres pròpies funcions definides per l'usuari, heu d'especificar els tipus d'entrada i sortida. Per a tipus senzills com Decimal o Text, això és fàcil ja que aquests tipus bàsics estan predefinits. Per a tipus més complexos, com ara registres o taules, utilitzeu la Type funció per crear el tipus.
La Type funció també facilita el treball amb els valors dinàmics. Amb les funcions ParseJSON, IsType i AsType , es pot convertir un valor dinàmic en un objecte tipat en el qual les columnes ja no s'han d'escriure individualment en el punt d'ús.
La Type funció pren un TypeSpecification com a únic argument. L'especificació de tipus més senzilla és fer referència a un tipus existent, per exemple Type( Text ). Una especificació de tipus per a un registre o una taula és similar a la definició d'un registre o d'una taula amb valors literals, on els valors se substitueixen per noms de tipus. Per exemple, {Name: "Jane"} s'escriuria amb Type( {Name: Text} ). Les taules s'especifiquen amb claudàtors, no amb la funció Taula , i només es pot proporcionar un registre. Per exemple, [1,2,3] s'escriuria amb Type( [Number] ).
Utilitzeu la RecordOf funció per extreure el tipus de registre d'un tipus de taula. Per exemple, Type( RecordOf( Library ) ) retornaria el tipus d'un sol llibre de la biblioteca. Per crear un tipus de taula a partir d'un tipus de registre, Empaqueta el tipus de registre entre claudàtors. Per exemple, Type( [ Book ] ) defineix una biblioteca.
RecordOf només es pot utilitzar dins de la Type funció.
La Type funció i el valor de tipus que retorna només es poden utilitzar en llocs específics del Power Fx, com ara el segon argument de ParseJSON. A les aplicacions de llenç, la Type funció es pot utilitzar amb una fórmula amb nom a App.Formulas.
Sintaxi
RecordOf( Tipus de taula )
- TypeTable: obligatori. El nom del tipus d'una taula. Això no accepta una especificació de tipus, ha de ser el nom d'un tipus definit prèviament per a una taula.
Type( Especificació de tipus )
- TypeSpecification – Obligatori. Una especificació de tipus.
Exemples
Type funció
Considereu les definicions següents a 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 ] );
Observeu com el text "A Study in Scarlet" del títol real es substitueix pel nom Text del tipus a l'especificació del tipus, un marcador de posició per a qualsevol valor de text. Un paràmetre o variable de tipus BookType pot contenir un dels llibres Library, mentre que LibraryType pot contenir tota la taula. Amb aquests tipus, podem definir aquestes funcions definides per l'usuari:
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);
També podeu utilitzar el BookType per analitzar una cadena JSON que conté un llibre:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
L'ús BookType com a segon argument de ParseJSON dóna com a resultat un registre escrit que es pot utilitzar com qualsevol altre Power Fx registre.
RecordOf funció
A l'exemple de Type la funció, comenceu i BookType construïu LibraryType embolicant-hi una taula. Podríem haver definit aquests tipus a l'inrevés amb:
// 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 ) );