我想在修改/更新表数据之前创建检查同一数据源中其他表字段的条件。
例如我有表学生,该表中的字段是" status"," name"和"得分"。状态为枚举类型,默认为"不允许"。用户可以使用数据网格表单更改状态字段。
我想创建状态可以更改为"允许"如果得分> 50否则就无法改变。感谢
答案 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;
}