Изменение редактируемых полей на уровне таблицы

У меня есть 2 таблицы, возможность редактирования полей 1-й таблицы зависит от значения перечисления NoYes из другой связанной таблицы. Я хочу знать лучший способ предотвратить редактирование полей на уровне таблицы.

Я думал бросить исключение на поле validate, но я не знаю, лучший ли это способ.

Спасибо!

2 ответа

Решение

Бросать исключения здесь нехорошо. Лучше, чтобы предотвратить изменения в первую очередь.

Это сделано в active Метод источника данных первой таблицы:

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

У меня есть решение, которое, кажется, работает, на метод validateField() таблицы1.

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

Как вы думаете?

Другие вопросы по тегам