在用户命令后再次将屏幕中的文本字段设置为可见

Set text field in screen visible again after user command

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

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

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

此致, 帖木儿

你不能检查 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.

您必须在 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.