Form 6i中Validate Item触发器校验文本框长度失效问题求助
Form 6i 条码扫描校验触发器失效排查方案
确认触发器绑定对象与类型
确保WHEN-VALIDATE-ITEM触发器是绑定在fgdetail.refstr文本项上,而非块或其他项。Form 6i中触发器绑定错误是常见失效原因,需检查触发器的“触发对象”设置是否准确。排查字符串长度判断逻辑
扫描的条码可能包含前后空格,导致实际长度不符合预期。修改代码为:if LENGTH(TRIM(:fgdetail.refstr)) = 10 then message('testing date'); message('testing data'); pause; end if;同时确认项的
Data Type为Character,若为数字类型,LENGTH()的计算逻辑会不同。验证触发器触发时机
WHEN-VALIDATE-ITEM仅在项失去焦点时触发(如按Tab、点击其他项)。若扫描条码后直接回车,需检查项的Key-Enter是否覆盖了失焦逻辑,或设置回车后强制失焦。另外,若项的Required属性设为Yes且未输入内容,会优先触发必填校验,跳过自定义逻辑。测试消息显示与触发器执行状态
在触发器开头添加测试代码,确认触发器是否被触发:message('Trigger executed'); pause; if LENGTH(:fgdetail.refstr) = 10 then message('testing date'); message('testing data'); end if;若未显示测试消息,说明触发器未绑定正确;若显示测试消息但未触发后续逻辑,需检查输入内容的实际长度(可通过
message(LENGTH(:fgdetail.refstr));输出实际长度排查)。检查项的属性限制
查看fgdetail.refstr的Maximum Length属性,若设置小于10,则无法输入10位字符,自然不会触发逻辑。需将该值设为≥10。
内容的提问来源于stack exchange,提问作者Muhammad Fahim Aamir
相关产品推荐
相关产品推荐

