今天一本程序中出现这样的需求:需要在AT SELECTION-SCREEN中出一个消息,不是E型(因为需要继续往后执行),但要显示成E型,出完消息后程序不中止返回选择屏幕,而要使用STOP回到AT SELECTION-SCREEN OUTPUT处理屏幕字段的状态(STOP语句在程序中有END-OF-SELECTION事件的时候会首先跳到这个事件)。这个时候(AT SELECTION-SCREEN中的消息TYPE 'S' DISPLAY LIKE 'E',在STOP中止的时候)原本在AT SELECTION-SCREEN中一条语句“SET CURSOR FIELD XXX”就不能正确起作用了(注意),这个时候,SET CURSOR的动作要在AT SELECTION-SCREEN OUTPUT事件中进行。但为了SET CURSOR而设置的全局FLAG变量会在进入AT SELECTION-SCREEN OUTPUT就被清空,所以后来想到两个方法解决:1、把在AT SELECTION-SCREEN中出消息,SET CURSOR动作的执行条件放到 AT SELECTION-SCREEN OUTPUT中来 2、为了保证出消息的FLAG标志变量起作用,把这个变量写到ABAP内存中去。
阅读(991) | 评论(0) | 转发(0) |