Del via


Funksjonene AsType og IsType

Gjelder: Lerretsapper Modelldrevne apper Power Platform CLI

Kontrollerer en oppføringsreferanse for en bestemt tabelltype (IsType) og behandler referansen som en bestemt type (AsType).

Merk

PAC CLI pac power-fx-kommandoer støtter ikke IsType.

Description

Les Forstå oppføringsreferanser og polymorfiske oppslag for å få en bredere innføring og mer informasjon.

Et oppslagsfelt refererer vanligvis til oppføringer i en bestemt tabell. Siden tabelltypen er godt etablert, kan du få tilgang til feltene i oppslaget ved å bruke en enkel punktnotasjon. First( Accounts ).'Primary Contact'.'Full Name' går for eksempel fra tabellen Forretningsforbindelser til oppføringen Primær kontakt i Kontakter-tabellen og trekker ut Fullt navn-feltet.

Microsoft Dataverse støtter også polymorfe oppslagsfelter, som kan referere til oppføringer fra et sett med tabeller, slik som i disse eksemplene.

Oppslagsfelt Kan referere til
Eier Brukere eller Teams
Kunde Forretningsforbindelser eller Kontakter
Angående Forretningsforbindelser, Kontakter, Kunnskapsartikler osv.

I formler i lerretsapper kan du bruke oppføringsreferanser til å arbeide med polymorfiske oppslag. Siden en oppføringsreferanse kan referere til ulike tabeller, vet du ikke hvilke felter som kommer til å være tilgjengelige, når du skriver en formel. Notasjonen Record.Field er ikke tilgjengelig. Disse formlene må tilpasses oppføringene som appen treffer på når den kjører.

IsType-funksjonen tester om en oppføringsreferanse refererer til en bestemt tabelltype. Funksjonen returnerer en boolsk verdi som SANN eller USANN.

AsType-funksjonen behandler en oppføringsreferanse som en bestemt tabelltype. Dette kalles av og til konvertering. Du kan bruke resultatet som om det er en oppføring i tabellen, og på nytt bruke notasjonen Record.Field til å få tilgang til alle feltene i denne oppføringen. Det oppstår en feil hvis referansen ikke er av den bestemte typen.

Bruk disse funksjonene sammen for først å teste tabelltypen for en oppføring og deretter behandle den som en oppføring av denne typen, slik at feltene er tilgjengelige:

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

Du trenger bare disse funksjonene hvis du har tilgang til feltene i en oppføringsreferanse. Du kan for eksempel bruke oppføringsreferanser i Filter-funksjonen uten IsType eller AsType:

Filter( Accounts, Owner = First( Users ) )

På samme måte kan du bruke oppføringsreferanser med Patch-funksjonen:

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

Hvis de brukes i en oppføringskontekst, for eksempel i en Gallery- eller Edit form-kontroll, kan det hende at du må bruke den globale tvetydighetsoperatoren til å referere til tabelltypen. Denne formelen vil for eksempel være effektiv for et galleri som viser en liste over kontakter der Firmanavn er et Kunde-oppslag:

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

Du angir typen for begge funksjoner via navnet på datakilden som er koblet til tabellen. Hvis formelen skal fungere, må du også legge til en datakilde i appen for alle typer du vil teste eller endre. Du må for eksempel legge til Brukere-tabellen som en datakilde hvis du vil bruke IsType og AsType med et Eier-oppslag og oppføringer fra denne tabellen. Du kan bare legge til datakildene du faktisk bruker, i appen. Du trenger ikke å legge til alle tabellene som oppslaget kan referere til.

Hvis oppføringsreferansen er tom, returnerer IsType USANN, og AsType returnerer tom. Alle felt i en tom oppføring vil være tomme.

Syntaks

AsType( RecordReference , TableType )

  • RecordReference – obligatorisk. En oppføringsreferanse, ofte et oppslagsfelt som kan referere til en oppføring i enhver tabell blant mange tabeller.
  • TableType – obligatorisk. Den bestemte tabellen som oppføringen skal konverteres til.

IsType( RecordReference, TableType )

  • RecordReference – obligatorisk. En oppføringsreferanse, ofte et oppslagsfelt som kan referere til en oppføring i enhver tabell blant mange tabeller.
  • TableType – obligatorisk. Den bestemte tabellen du vil teste for.

Eksempel

Forstå oppføringsreferanser og polymorfiske oppslag inneholder omfattende eksempler.

  1. Opprett en tom lerretsapp for nettbrett.

  2. Velg Data>Legg til data i den venstre ruten. Legg deretter til tabellene Forretningsforbindelser og Kontakter.

    Tom app med to datakilder: kontoer og kontakter.

  3. I ruten til venstre velger du + (Sett inn) >Oppsett>Tomt loddrett galleri.

    Sett inn en galleri-kontroll med et tomt loddrett oppsett.

  4. Velg Koble til data, og velg deretter Kontakter som datakilden.

  5. Angi oppsettet for galleriet til Tittel og undertittel.

    Åpne oppsettvelgeren fra egenskaper-ruten.

    Angi oppsett til Tittel og undertittel.

  6. I Data-ruten åpner du Title1-listen, og velger deretter Fullt navn.

    Angi tittelverdi.

  7. Velg Subtitle1-etikettkontrollen.

    Angi undertittelverdi.

  8. Angi Text-egenskapen for Subtitle1 til denne formelen:

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

    Skjermen er nå fullført og viser kontoer og kontakter i galleriet.

    Undertittelen i galleriet viser disse verdiene:

    • "--" hvis Firmanavn er tomt.
    • "Forretningsforbindelse: " og feltet Navn på forretningsforbindelse fra tabellen Forretningsforbindelser hvis Firmanavn-feltet refererer til en forretningsforbindelse.
    • "Kontakt: " og feltet Fullt navn fra Kontakter-tabellen hvis Firmanavn-feltet refererer til en kontakt.

    Resultatene kan være forskjellige fra dem i dette emnet fordi det bruker eksempeldata som ble endret for å vise flere resultattyper.