Axapta 修改表值

Axapta 修改表值,axapta,x++,Axapta,X++,我想创建一个条件,在修改/更新表数据之前检查同一数据源中的其他表字段 例如,我有一个表student,该表中的字段是“status”、“name”和“score”。状态为枚举类型,默认为“不允许”。用户可以使用数据网格表单更改状态字段 我想创建一个条件,如果分数>50,状态可以更改为“允许”,否则不能更改。谢谢使用验证怎么样 使用表或数据源上的validateField或validateWrite,可以测试所选值是否有效 也可以使用数据源或控件上的验证方法 在AOT的表或表单节点中搜索数千个示例

我想创建一个条件,在修改/更新表数据之前检查同一数据源中的其他表字段

例如,我有一个表student,该表中的字段是“status”、“name”和“score”。状态为枚举类型,默认为“不允许”。用户可以使用数据网格表单更改状态字段


我想创建一个条件,如果分数>50,状态可以更改为“允许”,否则不能更改。谢谢

使用验证怎么样

使用表或数据源上的validateField或validateWrite,可以测试所选值是否有效

也可以使用数据源或控件上的验证方法

在AOT的表或表单节点中搜索数千个示例


适用于大多数“检查输入字段的值”。

正如Jan所写,解决此问题的一种方法是覆盖student表的
validateField
方法。每次用户以表的形式更改表的字段时,都会调用此方法。在该方法中,您可以编写一些代码来处理对
状态
字段的更改,例如

public boolean validateField(FieldId _fieldId)
{
    boolean ret;

    ret = super();

    switch (_fieldId)
    {
        case fieldNum(MyStudentTable, Status):
            if (this.Status == MyStatus::Allow
             && this.Score <= 50)
            {
                ret = checkFailed("Score must be greater than 50 to Change the Status."); // TODO create a label   
            }
            break;
    }

    return ret;
}
public boolean validateField(FieldId\u FieldId)
{
布尔ret;
ret=super();
开关(_fieldId)
{
案例字段号(MyStudentTable,状态):
如果(this.Status==MyStatus::Allow
&&这个,得分