Funkce AsType a IsType
Platí pro: Aplikace plátna Modelem řízené aplikace Power Pages Power Platform CLI
Zkontroluje odkaz na záznam pro konkrétní typ tabulky (IsType) a považuje referenci za konkrétní typ (AsType).
Poznámka:
PAC CLI příkazy pac power-fx nepodporují IsType.
Description
Přečtěte si část Principy odkazů na záznamy a polymorfního vyhledávání, kde najdete rozsáhlejší úvod a další podrobnosti.
Vyhledávací pole obvykle odkazuje na záznamy v konkrétní tabulce. Protože typ tabulky je dobře znám, můžete přistupovat k polím vyhledávání pomocí jednoduché tečkové notace. Například First( Účty ).'Primární kontakt'.'Celé jméno' přechází z tabulky Účty do záznamu Primární kontakt v tabulce Kontakty a extrahuje pole Celé jméno.
Microsoft Dataverse také podporuje polymorfní vyhledávací pole, která mohou odkazovat na záznamy ze sady tabulek, jako v těchto příkladech.
Vyhledávací pole | Může odkazovat na |
---|---|
Majitel | Uživatelé nebo Týmy |
Zákazník | Účty nebo Kontakty |
Ohledně | Účty, Kontakty, Články znalostí atd. |
Ve vzorcích canvas-app použijte odkazy na záznamy pro práci s polymorfními vyhledáváními. Protože odkaz na záznam může odkazovat na různé tabulky, nevíte, která pole budou při psaní vzorce k dispozici. Notace Record.Field není k dispozici. Tyto vzorce se musí přizpůsobit záznamům, se kterými se aplikace při spuštění setkává.
Funkce IsType otestuje, jestli odkaz na záznam odkazuje na konkrétní typ tabulky. Funkce vrací logickou hodnotu TRUE nebo FALSE.
Funkce AsType považuje odkaz na záznam za specifický typ tabulky, někdy označovaný jako přetypování. Výsledek můžete použít, jako by to byl záznam tabulky, a znovu použít zápis Záznam.Pole pro přístup ke všem polím daného záznamu. Pokud odkaz není specifického typu, dojde k chybě.
Společným použitím těchto funkcí nejprve otestujte typ tabulky záznamu a poté s ním zacházejte jako se záznamem tohoto typu, aby byla pole k dispozici:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
Tyto funkce potřebujete, pouze pokud přistupujete k polím odkazu na záznam. Například můžete použít odkazy na záznamy ve funkci Filter bez IsType nebo AsType:
Filter( Accounts, Owner = First( Users ) )
Podobně můžete použít odkazy na záznamy pomocí funkce Patch:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
Pokud se používá v kontextu záznamu, například v rámci Gallery nebo ovládacího prvku Edit form, možná budete muset použít operátor globální víceznačnosti pro odkaz na typ tabulky. Tento vzorec by byl například účinný pro galerii, která zobrazuje seznam kontaktů, kde Název společnosti je vyhledávání pole Zákazník:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
U obou funkcí určíte typ prostřednictvím názvu zdroje dat, který je připojen k tabulce. Aby vzorec fungoval, musíte do aplikace také přidat zdroj dat pro všechny typy, které chcete vyzkoušet nebo přetypovat. Například musíte přidat tabulku Uživatelé jako zdroj dat, pokud chcete použít funkce IsType a AsType s vyhledáváním Vlastník a záznamy z této tabulky. Můžete přidat pouze zdroje dat, které ve své aplikaci skutečně používáte; nemusíte přidávat všechny tabulky, na které by vyhledávání mohlo odkazovat.
Pokud je odkaz na záznam prázdný, funkce IsType vrátí FALSE a AsType vrátí prázdnou hodnotu. Všechna pole prázdného záznamu bude prázdná.
Syntaxe
AsType( RecordReference, Typ tabulky )
- RecordReference – Povinné. Odkaz na záznam, často vyhledávací pole, které může odkazovat na záznam v kterékoli z více tabulek.
- TableType – povinné. Konkrétní tabulka, do které má být záznam přetypován.
IsType( RecordReference, Typ tabulky )
- RecordReference – Povinné. Odkaz na záznam, často vyhledávací pole, které může odkazovat na záznam v kterékoli z více tabulek.
- TableType – povinné. Konkrétní tabulka, která bude testována.
Příklad
Porozumění odkazům na záznamy a polymorfním vyhledáváním obsahuje rozsáhlé příklady.
Vytvořte prázdnou aplikaci plátna pro tablety.
V levém podokně vyberte Data>Přidat data. A pak přidejte tabulky Účty a Kontakty.
V levém podokně vyberte + (Vložit) >Rozložení>Prázdná svislá galerie.
Vyberte Připojit k datům a potom jako zdroj dat vyberte Kontakty.
Nastavte rozložení galerie na Název a titulek.
V podokně Data otevřete seznam Title1 a vyberte Celé jméno.
Vyberte ovládací prvek popisku Subtitle1.
Nastavte vlastnost Text ovládacího prvku Subtitle1 na tento vzorec.
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' )
Titulek v galerii zobrazuje tyto hodnoty:
- „--“ pokud je 'Název společnosti' prázdný.
- „Účet:“ a poté pole Název účtu z tabulky Účty, když Název společnosti odkazuje na účet.
- „Účet:“ a poté pole Název účtu z tabulky Účty, když Název společnosti odkazuje na účet.
Vaše výsledky se mohou lišit od výsledků v tomto tématu, protože používá ukázková data, která byla upravena, aby zobrazovala další typy výsledků.