D365命令按钮上的点击方法

D365 Clicked method on command button

在 D365 Finance and Operations 的 TaxExempt 表格的 General Section 中,有几个字段,例如 CodeType、CodeName、CompanyList(下拉菜单)。 用户应键入所需的值(类型和名称)。 在下一节 属性 VAT - setup 中有命令按钮 New。单击该按钮时,它应该使用从常规部分获取的值创建行:公司(来自公司列表选择)、销售税代码(来自代码类型)和名称(来自代码名称)。目前,它只创建空行。是否有一些建议如何执行?

实现您的目标的方法是表单数据源上的 initValue。在 super() 调用之后,添加来自表单上其他字段的默认值。示例可能如下所示:

[DataSource]
class TaxExemptCodeTable
{
    /// <summary>
    /// Default values from other form controls/fields on new record creation
    /// </summary>
    public void initValue()
    {
        super();

        TaxExemptCodeTable.Value = CustomFormControl.text();

        //etc.
    }
}

如果您正在创建一个扩展,根据现有的基线代码,实际上有多个事件。 OnInitValue 将是与上面提到的 non-extension 解决方案进行比较的模拟,但是如果存在现有代码,并且在表单数据源上已经存在默认逻辑,则它可能会覆盖您的字段。这是因为该事件将作为框架在 super() 调用中最后调用的方法之一触发,但在 super() 之后放置的任何代码之前触发。这使扩展方案复杂化。

如果是这种情况,您可以查看将在先前事件之后触发的 OnCreated 事件的默认值以及这些方法中可能已经存在的 "base"/"out of the box code" and/or 事件。这将用您在 oncreated 事件中指定的值覆盖任何现有的 defaulting/init 逻辑,同时还为您提供要使用的表单的上下文(与没有表单 table 级别的事件相反) =24=] 使用这对您的要求来说似乎是强制性的)