Miklix

通过 Dynamics 365 中的扩展添加显示或编辑方法

已出版: 2025年2月16日 UTC 11:56:12

在本文中,我解释如何使用类扩展向 Dynamics 365 for Operations 中的表和表单添加显示方法,包括 X++ 代码示例。


为了使尽可能多的人能够访问本页面,本页面由英文机译而成。遗憾的是,机器翻译技术尚不完善,因此可能会出现错误。如果您愿意,可以在此处查看原始英文版本:

Add Display or Edit Method via Extension in Dynamics 365

虽然计划在 Dynamics 中使用显示或编辑方法通常会让您考虑是否可以以不同的方式设计解决方案,但有时它们是最好的方法。

在以前版本的 Dynamics 和 Axapta 中,在表格和表单上创建显示或编辑方法非常容易,但是当我最近碰巧必须在 Dynamics 365 中创建我的第一个编辑方法时,我发现这样做的过程有些不同。

显然有几种有效的方法,但我发现最好的方法(无论是在直观性还是代码美观性方面)是使用类扩展。是的,您可以使用类扩展将方法添加到类以外的其他元素类型 - 在本例中是表,但它也适用于表单。

首先,创建一个新类。您可以随意命名,但出于某种原因,它必须带有后缀“_Extension”。假设您需要向 CustTable 添加一个显示方法,例如,您可以将其命名为 MyCustTable_Extension。

该类必须用 ExtensionOf 修饰,以便系统知道您正在扩展什么,如下所示:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
}

现在,您只需在这个类中实现您的显示方法,就像您在早期版本的 Dynamics 中直接在表上所做的那样 - “this”甚至引用该表,因此您可以访问字段和其他方法。

例如,具有简单(且完全无用)的显示方法(仅返回客户的帐号)的类可能如下所示:

[ExtensionOf(tableStr(CustTable))]
public final class MyCustTable_Extension
{
    public display CustAccount displayAccountNum()
    {
        ;

        return this.AccountNum;
    }
}

现在,要将显示方法添加到表单(或表单扩展,如果您不能直接编辑表单),您需要手动向表单添加一个字段,并确保使用正确的类型(此示例中为字符串)。

然后,在控件上,将 DataSource 设置为 CustTable(或 CustTable 数据源的任何名称),将 DataMethod 设置为 MyCustTable_Extension.displayAccountNum(确保包含类名,否则编译器找不到该方法)。

您已完成 :-)

更新:向表单添加显示方法时不再需要包含扩展类名,但在最初发布时是需要的。我在这里保留这些信息,以防有些读者仍在使用旧版本。

分享至 Bluesky在 Facebook 上分享在 LinkedIn 上分享在 Tumblr 上分享分享至 X在 LinkedIn 上分享在Pinterest上固定

米克尔·邦·克里斯滕森

关于作者

米克尔·邦·克里斯滕森
迈克尔 是 miklix.com 的创建者和所有者。他拥有 20 多年的专业计算机程序员/软件开发人员经验,目前全职受雇于一家大型欧洲 IT 公司。不写博客时,他把业余时间花在各种兴趣、爱好和活动上,这在一定程度上反映在本网站涵盖的各种主题上。