FORM中诡异的VALIDATE事件

Form的validate行为可以由一个总的form级别的validation属性来控制.
可以通过set_form_property来设置成PROPERTY_TRUE 和 PROPERTY_FALSE
当程序的焦点离开当前validation_unit时候,就会触发该validation_unit的validate事件.
Validation unit的级别又是通过form的validation unit属性来设置的,有以下属性值:
Default, form, block, record, item.
也就是说当设置validation unit为block时,只有当焦点离开一个block,才会触发validate.
根据valiation unit的不同,又分为validate form, validate block, validate record, validate item.
Validate form: validate form中所有block
Validate block: validate block中所有record
Validate record: 如果该record为valid,则停止,否则validate该record中所有item, 然后触发
WHEN-VALIDATE-RECORD Triiger
Validate item: 如果当前item为valid,则停止, 否则执行该item标准check,包括LOV(如果
validate_from_list属性为true),最后触发WHEN-VALIDATE-ITEM Trigger.
也可以通过validate方法,来强制validate数据(注意:此时若form的validation属性设置为false,则强制 validate方法也不能validate数据),该方法的有一个参数,可以设定validate的级别:Default_scope, form_scope, block_scope, record_scope, item_scope.
Validate trigger主要有2个,WHEN-VALIDATE-ITEM以及WHEN-VALIDATE-RECORD,2个trigger都有form级别以及block级别,另外WHEN-VALDATE-ITEM还有item级别。

posted @ 2012-06-01 13:39  刘伟聪  阅读(337)  评论(0编辑  收藏  举报