Споделяне чрез


Функции AsType и IsType

Отнася се за: Canvas apps Model-driven apps Power Pages Power Platform CLI

Проверява справка за запис за определен тип таблица (IsType) и третира референцията като специфичен тип (AsType).

Бележка

Командите PAC CLI pac power-fx не поддържат IsType.

Описание

Прочети Разберете референтните записи и полиморфните търсения за по-широко въведение и повече подробности.

Полето за търсене обикновено се отнася до записи в определена таблица. Тъй като типът на таблицата е добре установен, можете да получите достъп до полетата на справка, като използвате проста точкова нотация. Например, First( Accounts ).'Primary Contact'.'Full Name' преминава от Сметки таблица към Първичен контакт запис в Контакти таблица и извлича Пълно име поле.

Microsoft Dataverse също поддържа полиморфни полета за търсене, които могат да се отнасят до записи от набор от таблици, както в тези примери.

Справочно поле Може да посочва
Собственик Потребители или Екипи
Клиент Акаунти или Контакти
Относно Акаунти, Контакти, Статии от базата знания и т.н.

Във формулите на приложение за платно използвайте препратки на записи, за да работите с полиморфни справки. Тъй като препратката към запис може да се отнася до различни таблици, вие не знаете кои полета ще бъдат налични, когато пишете формула. Нотацията Record.Field не е налична. Тези формули трябва да се адаптират към записите, които приложението среща, когато се изпълнява.

Функцията IsType тества дали препратката към запис се отнася до определен тип таблица. Функцията връща булева TRUE или FALSE.

Функцията AsType третира референцията на запис като специфичен тип таблица, понякога наричана кастинг. Можете да използвате резултата, сякаш е запис на таблицата, и отново да използвате Record.Field нотация за достъп до всички полета на този запис. Възниква грешка, ако препратката не е от конкретния тип.

Използвайте тези функции заедно, за да тествате първо типа таблица на запис и след това да го третирате като запис от този тип, така че полетата да са налични:

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

Тези функции ви трябват само ако имате достъп до полетата на референтен запис. Например, можете да използвате справки за записи във функцията Filter без IsType или AsType:

Filter( Accounts, Owner = First( Users ) )

По същия начин можете да използвате справки за записи с функция Patch:

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

Ако се използва в контекст на запис, например в Галерия или Редактиране на формуляр контрол, може да се наложи да използвате глобален двузначен оператор за препратка към типа таблица. Например, тази формула би била ефективна за галерия, която показва списък с контакти където Името на компанията е справка Клиент:

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

И за двете функции посочвате типа чрез името на източник на данни, който е свързан с таблицата. За да работи формулата, трябва също да добавите източник на данни към приложението за всички типове, които искате да тествате или предавате. Например, трябва да добавите Потребители таблица като източник на данни, ако искате да използвате IsType и AsType с Собственик справка и записи от тази таблица. Можете да добавите само източниците на данни, които действително използвате в приложението си; не е необходимо да добавяте всички таблици, на които дадена справка може да се позовава.

Ако референцията е празна, IsType връща НЕВЯРНО и AsType връща празно. Всички полета на празен запис ще бъдат празни.

Синтаксис

AsType( RecordReference, TableType )

  • RecordReference - Задължително. Справка за запис, често поле за справка, което може да се отнася към запис във всяка от множество таблици.
  • TableType - Задължително. Конкретната таблица, към която трябва да бъде предаден записът.

IsType( RecordReference, TableType )

  • RecordReference - Задължително. Справка за запис, често поле за справка, което може да се отнася към запис във всяка от множество таблици.
  • TableType - Задължително. Конкретната таблица, за която да се тества.

Пример

Разберете референтните записи и полиморфните търсения съдържа обширни примери.

  1. Създайте празно приложение за платно за таблети.

  2. В левия прозорец изберете Действия>Добавяне на данни. И след това добавете Сметки и Контакти таблици.

    Празно приложение с два източника на данни: акаунти и контакти.

  3. В левия прозорец изберете + (Вмъкване) >Оформление>Празна вертикална галерия.

    Вмъкнете контрола галерия с оформление на празна вертикала.

  4. Изберете Свържете се с данни и след това изберете Контакти като източник на данни.

  5. Задайте оформлението на галерията на Заглавие и подзаглавие.

    Отворете контролата за избор на оформление от екрана със свойства.

    Задаване на оформление на Заглавие и подзаглавие.

  6. В екрана Данни отворете списъка Title1, след което изберете Full Name.

    Задаване на стойност на заглавието.

  7. Изберете етикета на контрола Subtitle1.

    Задаване на стойност на субтитри.

  8. Задайте свойството Текст на Subtitle1 на тази формула:

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

    Екранът вече е завършен, показвайки акаунти и контакти, смесени в галерията.

    Подзаглавието в галерията показва тези стойности:

    • "--" ако 'Име на компанията' е празно.
    • "Акаунт:" и след това Име на акаунта поле от Акаунти таблица, ако Име на фирмата полето се отнася до акаунт.
    • "Контакт:" и след това Пълно име поле от Контакти таблица, ако Име на фирмата полето се отнася до контакт.

    Резултатите ви може да се различават от тези в тази тема, тъй като използват примерни данни, които са били модифицирани, за да показват допълнителни видове резултати.