也就是属性里面 type选项是M 模块池
它本身就需要在分配TCODE的时候分配屏幕号, 而且不能直接在SE38运行
所以不管怎么返回, 最终乎悄他会返回在初始的屏幕号 .
2. 如果程序有message XXXX type E的报错, 也是没办法返回的, 除非退出. 因为对于代码来说, , 他结束了整个程序.
如果不亏首是上述情况, 请补充问题
ABAP--关于ABAP流程处理的一些命令的说明(stop,exit,return,check,reject)
Stop 命令
使用该命令的程序位置
INITIALIZATION, AT
SELECTION-SCREEN, START-OF-SELECTION和GET
事件中
处理说明
1、 当在INITIALIZATION事件执行该命令,系统将直接触发应用服务器和客户端屏幕元素的发送;
2、 在其他事件中将直接触发END-OF-SELECTION事件的执行,如果不想执行END-OF-SELECTION,请使用RETURN或者 EXIT.
注意事项
EXIT命令
使用该命令的程序位置
用于循环和程序模块中:DO和其他处理模块中(event block, dialog module,procedure (function module, method, subroutine))...ENDDO,WHILE...ENDWHILE,LOOP...ENDLOOP,SELECT...ENDSELECT
处理说明
1、 循环处理中,EXIT只跳出当前的循环;
2、 在START-OF-SELECTION, GET,END-OF-SELECTION事件中,将直接触发List输出,将不执行END-OF-SELECTION事件如果没有List输出,系统将直接返回选择屏幕;
3、 对于procedure系统返回调用处;
注意事项
Sap推荐EXIT只是用于循环哗销处理,对于处理模块请使用Return。
RETURN命令
使用该命令的程序位置
用于处理模块中(eventblock, dialog module, procedure (function module, method, subroutine))
处理说明
1、 对于procedure ,RETURN将无条件退出当前的处理模块,不影响后续模块的执行;
2、 对于START-OF-SELECTION, GET,END-OF-SELECTION事件中,将直接触发List输出,将不执行END-OF-SELECTION事件如果没有List输出,系统将直接返回选择屏幕;
注意事项
RETURN不管存在多少层次的循环,将直接退出当前处理模块,这乱让游一点和EXIT不同
CHECK命令
使用该命令的程序位置
用于循环和程序模块中:DO和其他处理模块中(event block,dialog module, procedure (function module, method, subroutine))...ENDDO,WHILE...ENDWHILE,LOOP...ENDLOOP,SELECT...ENDSELECT
处理说明
1、 循环处理中,CHECK只是不执行本次循环的后续处理,继续调到下一次循环;
2、 在START-OF-SELECTION, GET,END-OF-SELECTION事件中,只是中断本事件滑差内的后续代码的执行 ,不影响其他后续模块的处理,这和EXIT,RETURN是不同的;
3、 对于没有循环procedure系统返回调用处;
4、 对逻辑数据库的GET事件,系统退出本次纪录和子节点的读取处理,将继续下一条纪录的处理;
注意事项
Sap推荐CHECK只是用于循环处理,对于处理模块请使用Return。
REJECT命令
使用该命令的程序位置
用于逻辑数据库的GET处理事件中
处理说明
REJECT的处理类似CHECK,但和CHECK不同的是:REJECT如果在循环内也同样退出本次的处理,而CHECK只是退出循环,不退出处理
注意事项
可能有2种可能,一种就如前面所说的,SET PF-STATUS 'SET_PF1'. 这个语句之后的'SET_PF1' 没有定义。还有另一种可能就是调用ALV输出的时候,是否用饥兄的是CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
如果是的话,看是否烂敬袭有下面这条i_callback_pf_status_set = 'SET_PF1' 。也稿启可能是这里没定义,可以将其注释掉即可~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)