Axapta D365单击命令按钮上的方法
在D365 Finance and Operations中,在TaxExempt表单的General部分,有几个字段,如CodeType、CodeName、CompanyList(下拉菜单)。 用户应键入所需的值(类型和名称)。 在下一节“属性增值税-设置”中有“新建”命令按钮。单击该按钮时,它应该创建一行,其中的值取自常规部分:公司(来自公司列表选择)、增值税代码(来自代码类型)和名称(来自代码名称)。目前,它只创建空行。是否有一些建议如何执行Axapta D365单击命令按钮上的方法,axapta,microsoft-dynamics,x++,dynamics-365-operations,Axapta,Microsoft Dynamics,X++,Dynamics 365 Operations,在D365 Finance and Operations中,在TaxExempt表单的General部分,有几个字段,如CodeType、CodeName、CompanyList(下拉菜单)。 用户应键入所需的值(类型和名称)。 在下一节“属性增值税-设置”中有“新建”命令按钮。单击该按钮时,它应该创建一行,其中的值取自常规部分:公司(来自公司列表选择)、增值税代码(来自代码类型)和名称(来自代码名称)。目前,它只创建空行。是否有一些建议如何执行 实现目标的方法是表单数据源上的initValue
实现目标的方法是表单数据源上的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.
}
}
[数据源]
类taxemptcodetable
{
///
///创建新记录时来自其他表单控件/字段的默认值
///
public void initValue()
{
超级();
TaxExemptCodeTable.Value=CustomFormControl.text();
//等等。
}
}
如果您正在创建扩展,根据现有的基线代码,实际上有多个事件。与上述非扩展解决方案相比,OnInitValue将是类似的解决方案,但如果此解决方案上存在代码,则如果formdatasource上已经存在默认逻辑,则可能会覆盖您的字段。这是因为该事件将作为框架在super()调用中调用的最后一个方法之一触发,但在放置在super()之后的任何代码之前。这使扩展场景复杂化
如果是这种情况,您可以查看OnCreated事件上的默认值,该事件将在以前的事件之后触发,以及这些方法和/或事件上可能已经存在的“基本”/“开箱即用代码”。这将使用您在oncreated事件中指定的值覆盖任何现有的默认/init逻辑,同时还将为您提供要处理的表单上下文(与表级事件相反,表级事件没有表单控件/值可供使用,而表单控件/值似乎是您的需求所必需的)