Funkcje AsType i IsType

Dotyczy: Aplikacje kanwy Aplikacje oparte na modelu Power Platform CLI

Sprawdza odwołanie do rekordu dla określonego typu tabeli (IsType) i sprawdza odwołanie jako określony typ (AsType).

Uwaga

Polecenia power-fx PAC CLI nie obsługują funkcji IsType.

Popis

Przeczytaj artykuł Opis odwołań do rekordów i wyszukiwań polimorficznych ułatwiających szersze wprowadzenie i więcej szczegółowych informacji.

Pole wyszukiwania zwykle odwołuje się do rekordów w określonej tabeli. Ponieważ typ tabeli jest dobrze ustalony, dostęp do pól wyszukiwania można uzyskać za pomocą prostej notacji kropkowej. Na przykład: First( Accounts ).'Primary Contact'.'Full Name' pochodzi z tabeli Konta do rekordu Kontakt podstawowy w tabeli Kontakty i wyodrębnia pole Imię i nazwisko.

Microsoft Dataverse obsługuje również pola wyszukiwania, które mogą odwoływać się do rekordów z zestawu tabel, jak po przykładach.

Pole wyszukiwania Może odwołać się do
Właściciel Użytkownicy lub Zespoły
Klient Konta lub Kontakty.
Dotyczy Konta, Kontakty, Artykuły merytoryczne, itp.

W formułach aplikacji kanwy użyj odwołań do rekordów, aby pracować z wyszukiwaniami polimorficznymi. Ponieważ odwołanie do rekordu może odwoływać się do różnych tabel, nie wiesz, które pola będą dostępne podczas pisania formuły. Notacja Record.Field nie jest dostępna. Te formuły muszą zostać zaadaptowane do rekordów, które aplikacja napotyka podczas działania.

Funkcja IsType sprawdza, czy odwołanie do rekordu odwołuje się do określonego typu tabeli. Funkcja zwraca wartość logiczną PRAWDA lub FAŁSZ.

Funkcja AsType umożliwia użycie odwołania do rekordu jako określonego typu tabeli, czasami określanego jako rzutowanie do danej tabeli. Możesz użyć wyniku tak, jakby był rekordem tabeli i ponownie użyć notacji Record.Field, aby uzyskać dostęp do wszystkich pól tego rekordu. Błąd występuje, jeśli odwołanie nie jest określonego typu.

Użyj tych funkcji razem, aby najpierw przetestować typ tabeli rekordu, a następnie potraktować go jako rekord tego typu, aby pola były dostępne:

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

Te funkcje są potrzebne tylko wtedy, gdy jest uzyskiwany dostęp do pól w odwołaniu do rekordu. Można na przykład użyć odwołań do rekordów w funkcji Filter bez użycia IsType lub AsType:

Filter( Accounts, Owner = First( Users ) )

W podobny sposób można użyć odwołań do rekordów za pomocą funkcji Patch:

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

Jeśli jest używany w kontekście rekordu, na przykład w kontrolce Gallery lub Edit form, w celu odwołania do typu tabeli może być używany globalny operator rozsyłania. Na przykład ta formuła obowiązuje w przypadku galerii, w której jest wyświetlana lista kontaktów, w których Nazwa firmy jest wyszukiwana przez Klienta:

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

W przypadku obu funkcji typ określasz za pomocą nazwy źródła danych, które jest połączone z tabelą. Aby formuła została wykorzystana, należy także dodać do aplikacji źródło danych dla każdego typu, który ma być badany lub rzutowany. Na przykład tabelę Użytkownicy należy dodać jako element źródło danych, jeśli chcesz użyć typów IsType i AsType z odnośnikiem Właściciel i rekordów z tej tabeli. Możesz dodać tylko te źródła danych, których faktycznie używasz w swojej aplikacji; nie musisz dodawać wszystkich tabel, do których może odnosić się wyszukiwanie.

Jeśli odwołanie do rekordu jest puste, pole IsType zwraca wartość FALSE, a AsType zwraca puste pole. Wszystkie pola w pustym rekordzie będą puste.

Składnia

AsType( RecordReference, TableType )

  • RecordReference – wartość wymagana. Odwołanie do rekordu, często pole odnośnika, które może odwoływać się do rekordu w dowolnej z wielu tabel.
  • TableType – wymagany. Konkretna tabela, do której należy rzutować rekord.

IsType( RecordReference, TableType )

  • RecordReference – wartość wymagana. Odwołanie do rekordu, często pole odnośnika, które może odwoływać się do rekordu w dowolnej z wielu tabel.
  • TableType – wymagany. Tabela, dla której chcesz przetestować.

Przykład

Zrozumienie odwołań do rekordów i wyszukiwań polimorficznych zawiera wiele przykładów.

  1. Utwórz pustą aplikację kanwy na tablety.

  2. W lewym okienku nawigacji, wybierz Dane>Dodaj dane. Następnie dodaj tabele Konta i Kontakty.

    Pusta aplikacja z dwoma źródłami danych: konta i kontakty.

  3. W lewym okienku wybierz pozycję + (Wstaw) >Układ>Pusta galeria pionowa.

    Wstaw kontrolkę Galeria z Pustą pionową orientacją.

  4. Wybierz opcję Połącz z danymi, a następnie wybierz Kontakty jako źródło danych.

  5. Ustaw układ galerii jako Tytuł i podtytuł.

    Otwieranie selektora układu z poziomu okienka właściwości.

    Ustawianie układu względem tytułu i napisu.

  6. Na liście Dane otwórz listę Tytuł1, a następnie wybierz pozycję Nazwa konta.

    Ustawianie wartości tytułu.

  7. Wybierz kontrolkę etykiety Podtytuł1.

    Ustawianie wartości podtytułu.

  8. Ustaw właściwość Text w Subtitle1 na następującą formułę:

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

    Ekran jest gotowy. Pokazuje rozmieszane konta i kontakty w galerii.

    Podtytuły w galerii są wyświetlane na następujących wartościach:

    • "--", jeśli Nazwa firmy jest pusta.
    • "Konto: " a następnie pole Nazwa konta w tabeli Konta, jeśli pole Nazwa firmy odwołuje się do klienta.
    • "Kontakt: " a następnie pole Pełna nazwa w tabeli Kontakty, jeśli pole Nazwa firmy odwołuje się do kontaktu.

    Wyniki mogą różnić się od tych występujących w tym temacie, ponieważ korzystają z przykładowych danych zmodyfikowanych w celu przedstawienia dodatkowych typów wyników.