选择屏幕元素的动态显示

TABLES:sscrfields.
DATA ucm LIKE sy-ucomm.
DATA ucm_sta LIKE sy-ucomm.


PARAMETERS field1(15) TYPE c  MODIF ID m1.
PARAMETERS field2(15) TYPE c  MODIF ID m2.
SELECTION-SCREEN PUSHBUTTON /1(49) button1 USER-COMMAND com1 MODIF ID m1.
SELECTION-SCREEN PUSHBUTTON /1(49) button2 USER-COMMAND com2 MODIF ID m2.

INITIALIZATION.
  DATA: icon_name TYPE iconname,
        button_text(30) TYPE c,
        quickinfo LIKE smp_dyntxt-quickinfo,
        icon_str(255) TYPE c.
  icon_name = 'ICON_ARROW_RIGHT'.    " 'ICON_DISPLAY_MORE'.
  button_text = 'switch to screen 1'.

  CONCATENATE button_text text-akt
              INTO quickinfo
              SEPARATED BY space.

  CALL FUNCTION 'ICON_CREATE'
    EXPORTING
      name                        = icon_name
      text                        = button_text
      info                        = quickinfo
*       ADD_STDINF                  = 'X'
    IMPORTING
      RESULT                      = icon_str
    EXCEPTIONS
      OTHERS                      = 0. "not interested in errors

* place text and icon on button
  button1 = icon_str.

* Setup button 2 (Date period)
  icon_name = 'ICON_ARROW_LEFT'.
  button_text = 'switch to screen 2'.
  CONCATENATE button_text text-akt
              INTO quickinfo
              SEPARATED BY space.

  CALL FUNCTION 'ICON_CREATE'
    EXPORTING
      name                        = icon_name
      text                        = button_text
      info                        = quickinfo
*       ADD_STDINF                  = 'X'
    IMPORTING
      RESULT                      = icon_str
    EXCEPTIONS
      OTHERS                      = 0. "not interested in errors

* place text and icon on button
  button2 = icon_str.

 

AT SELECTION-SCREEN.

  ucm = sscrfields-ucomm.

AT SELECTION-SCREEN OUTPUT.

  CASE ucm.
    WHEN ''.
      LOOP AT SCREEN.
        IF screen-group1 = 'M2'.
          screen-active = '0'.
        ELSE.
          screen-active = '1'.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    WHEN 'COM1'.
      LOOP AT SCREEN.
        IF screen-group1 = 'M1 '.
          screen-active = '0'.
        ELSE.
          screen-active = '1'.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
      ucm_sta = ucm.
    WHEN 'COM2'.
      LOOP AT SCREEN.
        IF screen-group1 = 'M2'.
          screen-active = '0'.
        ELSE.
          screen-active = '1'.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
      ucm_sta = ucm.
  ENDCASE.


START-OF-SELECTION.
  IF ucm_sta = '' OR ucm_sta ='COM2'.
    WRITE:/ 'screen1:',field1.
  ELSE.
    WRITE:/ 'screen2:',field2.
  ENDIF. 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值