Miklix

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

已出版: 2025年2月16日 UTC 11:56:12
最后更新 2026年1月12日 UTC 08:57:33

本文将介绍如何使用类扩展向 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上固定

Mikkel Christensen

关于作者

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