Сначала переопределите метод таблицы insert()
, например:
public void insert()
{
;
this.FieldB = this.FieldA * 2;
super();
}
Затем переопределите update()
, например:
public void update()
{
if (this.FieldA == this.orig().FieldA && this.FieldB != this.orig().FieldB)
{
this.FieldA = this.FieldB / 2;
}
else
{
this.FieldB = this.FieldA * 2;
}
super();
}
Это только примеры, используйте ваше собственное мнение о том, какметоды должны быть переопределены.Наконец, переопределите modifiedField()
, который будет использоваться только тогда, когда поля изменяются вручную в формах:
public void modifiedField(fieldId _fieldId)
{
;
super(_fieldId);
switch (_fieldId)
{
case fieldnum(MyTable, FieldA) :
this.FieldB = this.FieldA * 2;
break;
case fieldnum(MyTable, FieldB) :
this.FieldA = this.FieldB / 2;
break;
}
if (this.isFormDataSource())
this.dataSource().refresh();
}
PS Имейте в виду, что insert()
и update()
не вызываются при использовании doinsert()
, doupdate()
или skipDataMethods()
.