Del via


AsType- og IsType-funktioner

Gælder for: Lærred-apps Modeldrevne apps Power Platform CLI

Kontrollerer en postreference for en bestemt tabeltype (IsType) og behandler referencen som en bestemt type (AsType).

Bemærk

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

Description

Læs om Forstå postreferencer og polymorfe opslag for at få vist en bredere introduktion og flere detaljer.

Et opslagsfelt henviser som regel til poster i en bestemt tabel. Da tabeltypen er veletableret, kan du få adgang til felterne i opslaget ved hjælp af en simpel punktnotation. Det kan f.eks. være, at Første( Konti ).'Primær kontakt'.'Fulde navn' går fra tabellen Konti til posten Primær kontakt i tabellen Kontakter og udtrækker feltet Fulde navn.

Microsoft Dataverse understøtter også polymorfe opslagsfelter, der kan referere til poster fra et sæt tabeller, som i disse eksempler.

Opslagsfelt Kan referere til
Ejer Brugere eller Teams
Kunde Konti eller Kontakter
Angående Konti, Kontakter, Videnartikler osv.

I lærredappformularer skal du bruge postreferencer for at arbejde med polymorfe opslag. Da en postreference kan referere til forskellige tabeller, ved du ikke, hvilke felter der er tilgængelige, når du skriver en formel. Record.Field-notationen er ikke tilgængelig. Disse formler skal tilpasses de poster, som appen støder på, når den kører.

Funktionen IsType kontrollerer, om en postreference refererer til en bestemt tabeltype. Funktionen returnerer den booleske værdi SAND eller FALSK.

Funktionen AsType behandler en postreference som en bestemt tabeltype, der undertiden kaldes en støbning. Du kan bruge resultatet, som om det var en post i tabellen, og igen bruge notationen Post.Felt til at få adgang til alle felterne i den pågældende post. Der opstår en fejl, hvis referencen ikke er af den specifikke type.

Brug disse funktioner sammen til først at teste tabeltypen af en post og derefter behandle den som en post af den pågældende type, så felterne er tilgængelige:

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

Du skal kun bruge disse funktioner, hvis du har adgang til felterne i en postreference. Du kan f.eks. bruge postreferencer i funktionen Filter uden IsTypeeller AsType:

Filter( Accounts, Owner = First( Users ) )

På samme måde kan du bruge postreferencer vha. funktionen Patch:

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

Hvis det bruges i en postkontekst, f.eks. i et Gallery- eller Edit form-kontrolelement, kan det være nødvendigt at bruge den globale operator til fjernelse af flertydige udtryk til at referere til tabeltypen. Formlen vil f.eks. være effektiv for et galleri, hvor der vises en liste over kontakter, hvor Kontonavn er et Kunde-opslag:

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

Til begge funktioner skal du angive typen gennem navnet på den datakilde, der er knyttet til tabellen. Hvis formlen skal fungere, skal du også føje en datakilde til appen for de typer, du vil teste eller konvertere. Du skal f.eks. tilføje tabellen Brugere som en datakilde, hvis du vil bruge IsType og AsType med et opslag af typen Ejer og poster fra den pågældende tabel. Du kan kun tilføje de datakilder, du rent faktisk bruger i din app. Du behøver ikke at tilføje alle de tabeller, som et opslag kan referere til.

Hvis postreferencen er tom, returnerer IsType værdien FALSK, og AsType returnerer en tom værdi. Alle felter i en tom post vil være tomme.

Syntaks

AsType( Postreference, Tabeltype )

  • RecordReference - kræves. En postreference, ofte et opslagsfelt, der kan referere til en post i den ene af flere tabeller.
  • TableType - påkrævet. Den specifikke tabel, som posten skal støbes til.

IsType( Postreference, Tabeltype )

  • RecordReference - kræves. En postreference, ofte et opslagsfelt, der kan referere til en post i den ene af flere tabeller.
  • TableType - påkrævet. Den specifikke tabel, der skal testes for.

Eksempel

Forstå postreferencer og polymorfe opslag indeholder omfattende eksempler.

  1. Opret en tom lærredapp til tablets.

  2. Vælg Data>Tilføj data i venstre rude. Tilføj derefter tabellerne Konti og Kontakter.

    Tom app med to datakilder: konti og kontakter.

  3. Vælg + (Indsæt) >Layout>Tomt lodret galleri.

    Indsæt et Gallery-kontrolelement med et tomt lodret layout.

  4. Vælg Opret forbindelse til data, og vælg derefter Kontakter som datakilde.

  5. Indstil galleriets layout til Titel og undertitel.

    Åbn layoutvælgeren fra ruden Egenskaber.

    Indstil layout til Titel og undertitel.

  6. Åbn listen Title1 i ruden Data, og vælg derefter Fulde navn.

    Indstil titelværdi.

  7. Vælg Subtitle1-kontrolelementet til etiketter.

    Indstil undertitelværdi.

  8. Indstil egenskaben Text af Subtitle1 til denne formel:

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

    Skærmen er nu fuldført og viser konti og kontakter blandet sammen i galleriet.

    Undertitlen i galleriet vises disse værdier:

    • "--" hvis "Kontonavn" er tomt.
    • "Konto: " og derefter feltet Kontonavn fra tabellen Konti, hvis feltet Kontonavn refererer til et firma.
    • "Kontakt: " og derefter feltet Fulde navn fra tabellen Kontakter, hvis feltet Kontonavn refererer til en kontakt.

    Resultaterne kan adskille sig fra dem i denne emne, da der bruges eksempeldata, der blev ændret for at vise yderligere typer resultater.