Dynamics 365表字段校验和绑定更新

文章讲述了如何在D365中定制字段验证,包括Name和Age规则,以及如何在A/B字段修改时自动更新C字段。
摘要由CSDN通过智能技术生成

字段校验

  1. 在D365项中新建一个Table。
  2. 双击点开,选择Methods->Override->validateField
    在这里插入图片描述
  3. 以表名称位TestTable举例,假设其拥有Id(Integer),Name(str),Age(Integer) 三个字段
    初始代码为:
public boolean validateField(FieldId _fieldIdToCheck)
    {
        boolean ret;
        ret = super(_fieldIdToCheck);
        // 若super校验正确进入自定义校验
        return ret?ret:Your_Class::function1(this, _fieldIdToCheck);
    }

将校验逻辑添加至super方法之后,例如在此判断Name和Age在修改或者插入时是否符合规则,则Your_Class代码示例为:

public class Your_Class
{
		public static boolean function1(TestTable _line,FieldId fieldId)
		{
				// 若修改的是Name字段的值,判断当前所选中修改后的行数据的Name是否大于20
				if (fieldId == fieldNum(TestTable, Name))
				{
						return strLen(_line.Name)>20;
				}
				// 若修改的是Age字段的值,判断Age
				if (fieldId == fieldNum(TestTable, Age))
				{
						return _line.Age <= 100 && _line.Age >= 18;
				}
		}
}

注意,此方法将在数据校验时调用,避免在这个方法中的super()被调用前直接更新数据,保证安全性

绑定更新

  1. 依旧以TestTable举例,此时我们为其添加三个新的字段A(Integer),B(Integer)和C(Integer)并要求在A或B更新值时自动更新C的值使A+B=C
  2. 进入TestTable,选择Methods->Override->modifiedField
  3. 与数据校验相似,我们将modifiedField简化为以下代码
public void modifiedField(FieldId _fieldId)
    {
        super(_fieldId);
        Your_Class::function2(this, _fieldId);
    }
  1. 在Your_Class中添加新的方法function2:
public static void function2(TestTable _line,Field _field)
{
		if (_field == fieldNum(TestTable, A) || _field == fieldNum(TestTable, B))
		{
				// 当更新的字段为A或者B时,自动计算C的值
				_line.C = _line.A+_line.B;
		}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值