• 屏幕上创建页签


    tab效果在很多地方都有出现,很多时候方便用户操作,SAP也提供同样的功能,特别是在屏幕开发时,经常用到,这里做下笔记,整个简单的tab页签。

    语法:

    SELECTION-SCREEN BEGIN OF TABBED BLOCK <b> FOR n LINES.

    1.选择屏幕,一个页面单独一个子屏幕:

     1 TABLES: sscrfields,mara.
     2 
     3 * sub screen 100.
     4 SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
     5 SELECTION-SCREEN BEGIN OF BLOCK 110 WITH FRAME TITLE mytitle2.
     6 SELECT-OPTIONS: mat1 FOR mara-matnr NO INTERVALS.
     7 SELECTION-SCREEN SKIP 1.
     8 SELECTION-SCREEN END OF BLOCK 110.
     9 SELECTION-SCREEN END OF SCREEN 100.
    10 
    11 * sub screen 200.
    12 SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    13 SELECT-OPTIONS: mat2 FOR mara-matnr.
    14 SELECTION-SCREEN END OF SCREEN 200.
    15 
    16 * tab
    17 SELECTION-SCREEN:BEGIN OF TABBED BLOCK mytab FOR 5 LINES,
    18                  TAB (20) button1 USER-COMMAND push1,
    19                  TAB (20) button2 USER-COMMAND push2,
    20 END OF BLOCK mytab.

    这里定义了2个子屏幕:100 ,200.

    2.在 INITIALIZATION 事件中分配初始值:

    1 INITIALIZATION.
    2   mytitle2 = 'Tab Op.'.
    3   mytab = 'Tab'.
    4   button1 = 'tab1'.
    5   button2 = 'tab2'.
    6   mytab-prog = sy-repid.
    7   mytab-dynnr = 100. 

    3.添加Tab单击页签时触发的事件:

    1 AT SELECTION-SCREEN.
    2   CASE sy-ucomm.
    3     WHEN 'PUSH1'.
    4       mytab-dynnr = 100.
    5       mytab-activetab = 'button1'.
    6     WHEN 'PUSH2'.
    7       mytab-dynnr = 200.
    8       mytab-activetab = 'button2'.
    9   ENDCASE.

    到这里,tab页签效果就出来了:

    完整代码:

     1 *&---------------------------------------------------------------------*
     2 *& Report  ZABAPX_SSCR
     3 *&
     4 *&---------------------------------------------------------------------*
     5 *&
     6 *&
     7 *&---------------------------------------------------------------------*
     8 
     9 REPORT  zabapx_sscr.
    10 TABLES: sscrfields,mara.
    11 
    12 * sub screen 100.
    13 SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
    14 SELECTION-SCREEN BEGIN OF BLOCK 110 WITH FRAME TITLE mytitle2.
    15 SELECT-OPTIONS: mat1 FOR mara-matnr NO INTERVALS.
    16 SELECTION-SCREEN SKIP 1.
    17 SELECTION-SCREEN END OF BLOCK 110.
    18 SELECTION-SCREEN END OF SCREEN 100.
    19 
    20 * sub screen 200.
    21 SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    22 SELECT-OPTIONS: mat2 FOR mara-matnr.
    23 SELECTION-SCREEN END OF SCREEN 200.
    24 
    25 * tab
    26 SELECTION-SCREEN:BEGIN OF TABBED BLOCK mytab FOR 5 LINES,
    27                  TAB (20) button1 USER-COMMAND push1,
    28                  TAB (20) button2 USER-COMMAND push2,
    29 END OF BLOCK mytab.
    30 
    31 INITIALIZATION.
    32   mytitle2 = 'Tab Op.'.
    33   mytab = 'Tab'.
    34   button1 = 'tab1'.
    35   button2 = 'tab2'.
    36 
    37   mytab-prog = sy-repid.
    38   mytab-dynnr = 100.
    39 
    40 AT SELECTION-SCREEN.
    41   CASE sy-ucomm.
    42     WHEN 'PUSH1'.
    43       mytab-dynnr = 100.
    44       mytab-activetab = 'button1'.
    45     WHEN 'PUSH2'.
    46       mytab-dynnr = 200.
    47       mytab-activetab = 'button2'.
    48   ENDCASE.
  • 相关阅读:
    System path '/Users/hxy/Library/Caches/PyCharm2018.2' is invalid.
    HBase安装指南
    centos6.8下hadoop3.1.1完全分布式安装指南
    PHP服务化搭建之nginx动静分离实战
    Laravel6实现第三方 微信登录
    laravel开发大型电商网站之异常设计思路分析
    Laravel实现大型商城网站之用户注册短信发送项目实战功能开发
    Redis 实现美团的外卖派单系统“附近的人”筛选实战原理分析
    Navicat远程连接MySQL8,必知防坑策略
    laravel大量填充项目测试数据的正确方法
  • 原文地址:https://www.cnblogs.com/cancer_xu/p/scr_tabbed.html
Copyright © 2020-2023  润新知