修改了表值

时间:2015-01-09 02:08:10

标签: axapta x++

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

例如我有表学生,该表中的字段是" status"," name"和"得分"。状态为枚举类型,默认为"不允许"。用户可以使用数据网格表单更改状态字段。

我想创建状态可以更改为"允许"如果得分> 50否则就无法改变。感谢

2 个答案:

答案 0 :(得分:0)

使用验证怎么样?

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

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

搜索AOT的Tables或Forms节点以获取数千个示例。

This answer适用于大多数"检查输入字段的值"。

答案 1 :(得分:0)

正如Jan已经写过的,解决这个问题的一种方法是覆盖学生表的validateField方法。每次用户以表格的形式更改表格的字段时,都会调用此方法。在该方法中,您可以编写一些代码来处理Status字段的更改,例如。

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;
}