调用validate_data.w返回后主程序偶发停滞/冻结,需ESC恢复求助
程序执行流程及异常问题
程序执行流程
- 程序要求用户使用二维扫描器读取标签;
- 程序获取该标签相关信息并打开第二个窗口;
- 用户在第二个窗口中需读取另外4个标签,与数据库存储信息进行比对;
- 第二个窗口关闭并返回状态,告知所有信息是否有效;
- 若信息有效则继续处理,无效则返回步骤1。
当前问题
从步骤5返回后,主程序有时无法继续处理信息,需按下ESC键才能恢复,但用户无物理键盘访问权限。补充测试发现:应用会冻结约3分钟后自动恢复扫描,且首次操作后每次都会出现冻结情况。
主程序调用子窗口的两种实现尝试
尝试1
PROCEDURE Processa_Scan: // More code here RUN validate_data.w(INPUT txtscan:SCREEN-VALUE, OUTPUT lSeatOK). IF NOT lSeatOK THEN DO: // Not valid RETURN. END. // More code here END.
尝试2
PROCEDURE Processa_Scan: // More code here IF NOT l-hasvalidseat THEN DO: RUN validate_data.w(INPUT txtscan:SCREEN-VALUE, OUTPUT lSeatOK). IF NOT lSeatOK THEN DO: // Not valid RETURN. END. L-hasvalidseat = TRUE. RUN Processa_Scan. RETURN. END. // More code here END.
子窗口validate_data.w的关闭逻辑
DO: // lStatus is the OUTPUT parameter lStatus = TRUE. APPLY "CLOSE" TO THIS-PROCEDURE. END.
内容的提问来源于stack exchange,提问作者Raphael Frei
相关产品推荐
相关产品推荐

