Přidejte metodu zobrazení nebo úprav prostřednictvím rozšíření v Dynamics 365
Vydáno: 16. února 2025 v 11:55:00 UTC
V tomto článku vysvětluji, jak pomocí rozšíření třídy přidat metodu zobrazení do tabulky a formuláře v Dynamics 365 for Operations, včetně příkladů kódu X++.
Add Display or Edit Method via Extension in Dynamics 365
Zatímco plánování použití metod zobrazení nebo úprav v Dynamics je něco, co by vás mělo obecně přimět zvážit, zda byste možná nemohli navrhnout své řešení jiným způsobem, občas jsou tou nejlepší cestou.
V předchozích verzích Dynamics a Axapta bylo velmi snadné vytvářet metody zobrazení nebo úprav na tabulkách a formulářích, ale když jsem nedávno musel vytvořit svou první metodu úprav v Dynamics 365, zjistil jsem, že postup je poněkud odlišný.
Zjevně existuje několik platných přístupů, ale ten, který považuji za nejlepší (jak z hlediska intuitivity, tak z hlediska krásy kódu), je použití rozšíření třídy. Ano, pomocí rozšíření tříd můžete přidat metody k jiným typům prvků než jsou třídy – v tomto případě tabulka, ale funguje to i pro formuláře.
Nejprve vytvořte novou třídu. Můžete jej pojmenovat, jak chcete, ale z nějakého důvodu musí mít příponu „_Extension“. Řekněme, že potřebujete přidat metodu zobrazení do CustTable, můžete ji například pojmenovat MyCustTable_Extension.
Třída musí být ozdobena ExtensionOf, aby systém věděl, co rozšiřujete, například takto:
public final class MyCustTable_Extension
{
}
Nyní můžete v této třídě implementovat svou metodu zobrazení, jako byste to udělali přímo na stole v dřívějších verzích Dynamics – „toto“ dokonce odkazuje na tabulku, takže můžete přistupovat k polím a dalším metodám.
Například třída s jednoduchou (a zcela zbytečnou) metodou zobrazení, která pouze vrací číslo účtu zákazníka, by mohla vypadat takto:
public final class MyCustTable_Extension
{
public display CustAccount displayAccountNum()
{
;
return this.AccountNum;
}
}
Chcete-li nyní do formuláře přidat metodu zobrazení (nebo rozšíření formuláře, pokud formulář nemůžete upravit přímo), musíte do formuláře přidat pole ručně a ujistit se, že používáte správný typ (v tomto příkladu řetězec).
Pak byste na ovládacím prvku nastavili DataSource na CustTable (nebo jakýkoli název vašeho zdroje dat CustTable) a DataMethod na MyCustTable_Extension.displayAccountNum (nezapomeňte uvést název třídy, jinak kompilátor nemůže najít metodu).
A máte hotovo :-)
Aktualizace: Při přidávání metody zobrazení do formuláře již není nutné uvádět název třídy rozšíření, ale v původní době publikování tomu tak bylo. Informace zde nechávám pro případ, že by někteří čtenáři stále používali starší verze.