abap多标签页实现(tabstrip)

如图:

image

可以通过画屏幕即call screen或者纯代码实现。以下代码为纯代码实现方式

data flag(1) type c.

* SUBSCREEN 1

selection-screen begin of screen 100 as subscreen.
selection-screen begin of block b1 with frame.
parameters: p1(10) type c,
            p2(10) type c,
            p3(10) type c.
selection-screen end of block b1.
selection-screen end of screen 100.

* SUBSCREEN 2

selection-screen begin of screen 200 as subscreen.
selection-screen begin of block b2 with frame.
parameters: q1(10) type c obligatory,
            q2(10) type c obligatory,
            q3(10) type c obligatory.
selection-screen end of block b2.
selection-screen end of screen 200.

* STANDARD SELECTION SCREEN

selection-screen: begin of tabbed block mytab for 10 lines,
                  tab (20) button1 user-command push1,
                  tab (20) button2 user-command push2,
                  tab (20) button3 user-command push3
                                   default screen 300,
                  end of block mytab.

initialization.
  button1 = text-010.
  button2 = text-020.
  button3 = text-030.
  mytab-prog = sy-repid.
  mytab-dynnr = 100.
  mytab-activetab = 'BUTTON1'.

at selection-screen.
  case sy-dynnr.
    when 1000.
      case sy-ucomm.
        when 'PUSH1'.
          mytab-dynnr = 100.
          mytab-activetab = 'BUTTON1'.
        when 'PUSH2'.
          mytab-dynnr = 200.
          mytab-activetab = 'BUTTON2'.
      endcase.
    when 100.
      message s888(sabapdocu) with text-040 sy-dynnr.
    when 200.
      message s888(sabapdocu) with text-040 sy-dynnr.
  endcase.

module init_0100 output.
  loop at screen.
    if screen-group1 = 'MOD'.
      case flag.
        when 'X'.
          screen-input = '1'.
        when ' '.
          screen-input = '0'.
      endcase.
      modify screen.
    endif.
  endloop.
endmodule.

module user_command_0100 input.
  message s888(sabapdocu) with text-050 sy-dynnr.
  case sy-ucomm.
    when 'TOGGLE'.
      if flag = ' '.
        flag = 'X'.
      elseif flag = 'X'.
        flag = ' '.
      endif.
  endcase.
endmodule.

start-of-selection.
  write: / 'P1:', p1,'Q1:', q1,
         / 'P2:', p2,'Q2:', q2,
         / 'P3:', p3,'Q3:', q3.

300屏幕是创建的,显示的是前两个屏幕的值,只要屏幕上变量名称和100,200定义相同即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值