Comparteix a través de


Funcions AsType i IsType

S'aplica a: Aplicacions de llenç Aplicacions Power Pages Power Platform basades en models CLI

Comprova una referència de registre per a un tipus de taula específic (IsType) i tracta la referència com a tipus específic (AsType).

Nota

Les ordres PAC CLI pac power-fx no admeten IsType.

Descripció

Llegiu Entendre les referències de registres i cerques polimòrfiques per a una introducció més àmplia i més detalls.

Un camp de cerca sol fer referència als registres d'una taula concreta. Com que el tipus de taula està ben establert, podeu accedir als camps de la cerca mitjançant una simple notació de punts. Per exemple, Primer( Comptes )."Contacte principal"."Nom complet" va de la taula Comptes al registre Contacte principal de la taula Contactes i n'extreu el camp Nom complet.

El Microsoft Dataverse també admet camps de cerca polimòrfica, que poden fer referència als registres d'un conjunt de taules, com en aquests exemples.

Camp de cerca Pot fer referència a
Propietari Usuaris o Equips
Client Comptes o Contactes
Referent a Comptes, Contactes, Articles de la Knowledge Base, etc.

A les fórmules d'aplicació de llenç, utilitzeu referències de registres per treballar amb cerques polimòrfiques. Com que una referència de registre pot fer referència a diferents taules, no se sap quins camps hi ha disponibles en escriure una fórmula. La notació Record.Field no està disponible. Aquestes fórmules s'han d'adaptar als registres que troba l'aplicació quan s'executa.

La funció IsType prova si una referència de registre fa referència a un tipus de taula específic. La funció retorna un valor cert o fals booleà.

La funció AsType tracta una referència de registre com a tipus de taula específic, de vegades anomenada transmissió. Podeu utilitzar el resultat com si es tractés d'un registre de la taula i tornar a utilitzar la notació Registre.Camp per accedir a tots els camps del registre. Un error es produeix si la referència no és del tipus específic.

Utilitzeu aquestes funcions juntes per provar primer el tipus de taula d'un registre i, a continuació, proveu-lo com un registre d'aquest tipus perquè els camps estiguin disponibles:

If( IsType( First( Accounts ).Owner, Users ),
    AsType( First( Accounts ).Owner, Users ).'Full Name',
    AsType( First( Accounts ).Owner, Teams ).'Team Name'
)

Només necessiteu aquestes funcions si esteu accedint als camps d'una referència de registre. Per exemple, podeu utilitzar referències de registres a la funció Filter sense IsType o AsType:

Filter( Accounts, Owner = First( Users ) )

De la mateixa manera, podeu utilitzar referències de registres amb la funció Patch:

Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )

Si s'utilitza en un context de registres, com ara dins d'una Galeria o el control d'un Formulari d'edició, pot ser que hàgiu d'utilitzar l'operador de desambiguament global per fer referència al tipus de taula. Per exemple, aquesta fórmula seria eficaç per a una galeria que mostra una llista de contactes en què Nom de l'empresa és una cerca de Client:

If( IsType( ThisItem.'Company Name', Accounts ),
    AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Per a totes dues funcions, especifiqueu el tipus mitjançant el nom de la font de dades connectada a la taula. Per tal que la fórmula funcioni, també heu d'afegir una font de dades a l'aplicació per a tots els tipus que voleu provar o convertir. Per exemple, heu d'afegir la taula Usuaris com a font de dades si voleu utilitzar IsType i AsType amb una cerca de Propietari i registres de la taula. Només podeu afegir les fonts de dades que utilitzeu a l'aplicació; no cal que afegiu totes les taules a les quals podria fer referència una cerca.

Si la referència del registre està en blanc, IsType retorna fals i AsType retorna en blanc. Tots els camps d'un registre en blanc estaran en blanc.

Sintaxi

AsType( RecordReference, TableType )

  • RecordReference: obligatori. Una referència de registre, sovint un camp de cerca que pot fer referència a un registre de qualsevol de les taules.
  • TableType: necessari. La taula específica a la qual s'ha de convertir el registre.

IsType( RecordReference, TableType )

  • RecordReference: obligatori. Una referència de registre, sovint un camp de cerca que pot fer referència a un registre de qualsevol de les taules.
  • TableType: necessari. La taula específica per a la qual es provarà.

Exemple

Entendre referències de registres i cerques polimòrfiques conté exemples extensos.

  1. Creeu una aplicació del llenç en blanc per a tauletes.

  2. A la subfinestra esquerra, seleccioneu Dades>Afegeix dades. A continuació, afegiu taules de Comptes i Contactes.

    Aplicació en blanc amb dues fonts de dades: comptes i contactes

  3. A la subfinestra esquerra, seleccioneu + (Insereix) >Disposició>Galeria vertical enblanc.

    Inseriu un control de galeria amb una disposició vertical en blanc

  4. Seleccioneu Connecta't a les dades i, a continuació, seleccioneu Contactes com a font de dades.

  5. Definiu la disposició de la galeria a Títol i subtítol.

    Obriu el selector de disseny des de la subfinestra de propietats.

    Definiu el disseny a Títol i subtítol.

  6. A la subfinestra Dades, obriu la llista Title1 i seleccioneu Nom complet.

    Defineix el valor del títol.

  7. Seleccioneu el control d'etiqueta Subtitle1.

    Defineix el valor dels subtítols.

  8. Definiu la propietat Text de Subtitle1 a aquesta fórmula:

    If( IsBlank( ThisItem.'Company Name' ), "--",
        IsType( ThisItem.'Company Name', Accounts ),
            "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
        "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
    )
    

    La pantalla s'ha completat mostrant els comptes i els contactes barrejats a la galeria.

    El subtítol de la galeria mostra aquests valors:

    • "--" si "Nom de l'empresa" està en blanc.
    • "Compte: " i, a continuació, el camp Nom del compte de la taula Comptes si el camp Nom de l'empresa fa referència a un compte.
    • "Contacte: " i, a continuació, el camp Nom complet de la taula Contactes si el camp Nom de l'empresa fa referència a un contacte.

    Els resultats poden diferir dels que hi ha en aquest tema, ja que utilitzen dades d'exemple modificades per mostrar tipus addicionals de resultats.