먼저, 예를 들어 재정의 테이블의 방법 insert()
이 :
이
public void insert()
{
;
this.FieldB = this.FieldA * 2;
super();
}
그런 update()
오버라이드 (override)를, 예를 들면 :
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();
}
이는 예입니다, 방법을 재정의해야하는 자신의 판단을 사용하십시오.
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();
}
추신 : 마지막으로, 필드는 형태로 수동으로 수정하는 경우에만 사용됩니다 modifiedField()
를 오버라이드 (override) doinsert()
, doupdate()
또는 skipDataMethods()
을 사용하는 경우 insert()
및 update()
이 호출되지 않습니다.
출처
2011-05-03 10:35:44
10p
modifiedField를 재정의해야합니까? 삽입, 업데이트 방법은 양식을 통한 사용자 편집을 다루지 않습니까? 또한 답변 해 주셔서 감사합니다. –
'modifiedField()'가 무시되고 사용자가 FieldA를 변경하면 FieldB가 즉시 변경됩니다. 그렇지 않으면 레코드가 저장 될 때만 변경됩니다. 데이터 일관성에 중요하지 않으며 사용자의 편의를 위해서만 추가됩니다. – 10p
@ 10p :'insert()'와'update()'가 호출 될 때? 좀 더 설명해 주시겠습니까? – piku