代码之家  ›  专栏  ›  技术社区  ›  Timur

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

  •  1
  • Timur  · 技术社区  · 6 年前

    在我的PBO模块中,我有如下内容:

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

    我想在PAI模块中执行一些用户命令后,再次将“LBL\U测试”设置为可见。我该怎么做?

    顺致敬意, 帖木儿

    2 回复  |  直到 4 年前
        1
  •  3
  •   Oguz    6 年前

    你必须在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.
    
        2
  •  1
  •   József Szikszai    6 年前

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