1

在我的 PBO 模块中,我有这样的东西:

  LOOP AT SCREEN.
    IF screen-name EQ 'LBL_TEST'.
      screen-invisible = '1'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

我想在 PAI 模块中的一些用户命令之后再次设置“LBL_TEST”可见。我该怎么做?

最好的问候,帖木儿

4

2 回答 2

3

您必须在 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.
于 2018-02-23T06:06:04.213 回答
1

你不能在 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.
于 2018-02-22T16:47:27.770 回答