在我的 PBO 模块中,我有这样的东西:
LOOP AT SCREEN.
IF screen-name EQ 'LBL_TEST'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
我想在 PAI 模块中的一些用户命令之后再次设置“LBL_TEST”可见。我该怎么做?
最好的问候,帖木儿
您必须在 PBO 中进行。您可以在操作完成时设置一个全局参数,然后检查它。像:
DATA: gv_checker.
PROCESS AFTER INPUT.
case ok_code.
when 'some_opp'.
gv_checker = 'X'.
endcase.
PROCESS BEFORE OUTPUT.
LOOP AT SCREEN.
IF screen-name EQ 'LBL_TEST'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
if IF screen-name EQ 'LBL_TEST' and gv_checker = 'X'.
screen-invisible = '0'.
MODIFY SCREEN.
endif.
ENDLOOP.
你不能在 PBO 中检查 sy-ucomm 的值吗?(我没有检查过自己,也不知道,这就是我问的原因。)如果没有,你可以声明一个全局变量:
DATA: gv_ucomm TYPE sy-ucomm.
将 sy-ucomm 的值移动到 PAI 中的这个全局变量中:
gv_ucomm = sy-ucomm.
并检查它在 PBO 中的值:
IF gv_ucomm EQ '...'.
... "turn on field
ELSE.
... "turn off field
ENDIF.