在 table 级别修改字段的可编辑性

Modifying fields editability on a table level

我有 2 个 table,第一个 table 字段的可编辑性取决于来自另一个相关 table 的 NoYes 枚举值。我想知道防止在 table 级别编辑字段的最佳方法。

我想在 validatefield 上抛出一个例外,但我不知道这是否是最好的方法。

谢谢!

在这里抛出异常是不好的。更好的做法是首先阻止更改。

这是在第一个table的active数据源方法中完成的:

this.object(fieldNum(table1,field1)).allowEdit(table2.field2);

我有一个似乎有效的解决方案,在 table1 的 validateField() 方法上。

public boolean validateField(FieldId _fieldIdToCheck)
{
    boolean ret;
    Table1 table1;

    ret = super(_fieldIdToCheck);

    select field1 from table1
        where table1.recid == this.recid;

    if (table1.field1)
    {
        ret = checkFailed("No editable");
    }

    return ret;
}

你怎么看?