Изменение редактируемых полей на уровне таблицы
У меня есть 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;
}
Как вы думаете?