【问题标题】:D365 Clicked method on command buttonD365 命令按钮上的单击方法
【发布时间】:2019-08-23 21:39:30
【问题描述】:

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

【问题讨论】:

    标签: axapta microsoft-dynamics x++ dynamics-365-operations


    【解决方案1】:

    实现目标的方法是表单数据源上的 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 将是与上述非扩展解决方案进行比较的类比,但如果在此存在现有代码,并且 formdatasource 上已经存在默认逻辑,它可能会覆盖您的字段。这是因为该事件将作为框架在 super() 调用中调用的最后一个方法之一触发,但在放置在 super() 之后的任何代码之前。这使扩展方案复杂化。

    如果是这种情况,您可以查看 OnCreated 事件的默认值,该事件将在之前的事件和这些方法和/或事件中可能已经存在的“基础”/“开箱即用代码”之后触发。这将使用您在 oncreated 事件中指定的值覆盖任何现有的默认/初始化逻辑,同时还为您提供要使用的表单的上下文(与似乎没有要使用的表单控件/值的表级事件相反必须满足您的要求)

    【讨论】:

      猜你喜欢
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 2013-02-27
      • 2013-09-08
      • 2015-11-06
      相关资源
      最近更新 更多