在 D365 Finance and Operations 中,在表单 TaxExempt 的 General Section 中,有几个字段,例如 CodeType、CodeName、CompanyList(下拉菜单)。用户应输入所需的值(类型和名称)。在下一部分财产增值税 - 设置中有命令按钮新建。当单击该按钮时,它应该使用取自常规部分的值创建行:公司(来自公司列表选择)、销售税代码(来自代码类型)和名称(来自代码名称)。目前,它只创建空行。是否有一些建议如何执行?
2879 次
1 回答
3
将实现您的目标的方法是表单数据源上的 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 事件中指定的值覆盖任何现有的默认/初始化逻辑,同时还为您提供要使用的表单的上下文(与似乎没有要使用的表单控件/值的表级事件相反对您的要求是强制性的)
于 2019-06-14T13:41:22.657 回答