Test page使用及Record操作的两个异常问题咨询
问题解答
问题1:代码赋值字段无UI确认提示
UI手动修改字段触发的确认提示属于客户端表单交互逻辑,一般写在字段的OnModified前端事件中。直接通过代码调用setValue方法时,默认仅触发服务器端的字段赋值逻辑,不会自动执行前端交互事件,因此不会弹出确认提示。
你调整后的代码仍未触发事件,是因为没有主动调用字段的modified事件触发逻辑,按如下方式修改代码即可触发完整的字段修改事件链:
Testpagename.openedit(); Testpagename.fieldname.setvalue(12); // 主动触发modified事件,执行关联的校验、提示逻辑 Testpagename.fieldname.modified(true); Testpagename.close();
问题2:无法捕获重复值报错
该问题常见原因有两个:
- 重复校验逻辑写在表单UI层,直接操作表Record时不会触发UI层校验,只有将重复校验逻辑配置在表级唯一索引或
validateField表方法中,服务器端直接操作Record时才会触发校验抛错。 asserterror语句使用方式错误,必须将完整的会抛出错误的代码块包裹在asserterror的作用域内,才能正常捕获错误,正确写法如下:
asserterror { Testpagename.openedit(); Testpagename.fieldname.setvalue(12); Testpagename.close(); Recordname.init(); Recordname.validate(fieldname, 12); Recordname.insert(true); }
另外需要确认insert方法的参数没有配置跳过错误/跳过重复校验的属性,避免错误被静默处理。
内容的提问来源于stack exchange,提问作者pankaj sharma
相关产品推荐
相关产品推荐

