ABAP-选择屏幕

选择屏幕页签设置及按钮设置

复制代码
****批量打包模板导入
SELECTION-SCREEN BEGIN OF SCREEN 9001 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
PARAMETERS:p_file TYPE string.
SELECTION-SCREEN END OF BLOCK bk1.
SELECTION-SCREEN END OF SCREEN 9001.

****批量指定开票内容打包模板导入
SELECTION-SCREEN BEGIN OF SCREEN 9002 AS SUBSCREEN .
SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-002.
PARAMETERS:p_file2 TYPE string.
SELECTION-SCREEN END OF BLOCK bk2.
SELECTION-SCREEN END OF SCREEN 9002.

****下载按钮
SELECTION-SCREEN FUNCTION KEY 1.
****页签
SELECTION-SCREEN:BEGIN OF TABBED BLOCK mytab FOR 25 LINES,
                 TAB (20) p_tab1 USER-COMMAND tab1,
                 TAB (20) p_tab2 USER-COMMAND tab2,
                 END OF BLOCK mytab.
复制代码

初始化图标

FORM frm_botton.
  DATA: lv_functxt TYPE smp_dyntxt.
  lv_functxt-icon_id   = icon_export. "图标,可以通过ICON查找
  lv_functxt-icon_text = text-003."描述
  sscrfields-functxt_01 = lv_functxt.
ENDFORM.                    " FRM_BOTTON

初始化页签设置

FORM frm_init_tab .
  p_tab1 = text-001.
  p_tab2 = text-002.
  mytab-prog = sy-repid.
  mytab-dynnr = 9001.
ENDFORM.                    " FRM_INIT_TAB

PBO设置页签转换及图标属性变化

复制代码
*&---------------------------------------------------------------------*
*&AT SELECTION-SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
  DATA: lv_functxt TYPE smp_dyntxt.
  CASE sy-dynnr.
    WHEN 1000.
      CASE sy-ucomm.
        WHEN 'TAB1'.
          mytab-dynnr = 9001.
          mytab-activetab = 'P_TAB1'.
          lv_functxt-icon_id   = icon_export. "图标,可以通过ICON查找
          lv_functxt-icon_text = text-003."描述
          sscrfields-functxt_01 = lv_functxt.
        WHEN 'TAB2'.
          mytab-dynnr = 9002.
          mytab-activetab = 'P_TAB2'.
          lv_functxt-icon_id   = icon_export. "图标,可以通过ICON查找
          lv_functxt-icon_text = text-004."描述
          sscrfields-functxt_01 = lv_functxt.
        WHEN 'FC01'.
          PERFORM frm_download_excel.
      ENDCASE.
  ENDCASE.
复制代码

再次进入选择屏幕时,进入上次退出的页签

复制代码
REPORT ZTEST_SELECT_SCREEN.SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.

PARAMETERS: p_bukrs  TYPE bukrs DEFAULT 'E100' .
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) TEXT-c01.
PARAMETERS: p_check AS CHECKBOX.
SELECTION-SCREEN COMMENT 35(15) TEXT-c02.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 100.

SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-001.

PARAMETERS: p_bukrs2 TYPE bukrs DEFAULT 'E100' .

SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN END OF SCREEN 200.

SELECTION-SCREEN  BEGIN OF TABBED BLOCK mytab FOR 12 LINES.
SELECTION-SCREEN  TAB (15) TEXT-003  USER-COMMAND but1.
SELECTION-SCREEN  TAB (15) TEXT-004  USER-COMMAND but2.
SELECTION-SCREEN  END OF BLOCK mytab.

*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
  CLEAR g_dynnr.
  mytab-prog = sy-repid.
  IMPORT g_dynnr FROM MEMORY ID 'SCREEN'.     "传入上次执行的屏幕号
  IF g_dynnr = space.
    mytab-dynnr = 100.
    mytab-activetab = 'BUT1'.
  ELSE.
    CASE g_dynnr.
      WHEN 100.
        mytab-dynnr = 100.
        mytab-activetab = 'BUT1'.
      WHEN 200.
        mytab-dynnr = 200.
        mytab-activetab = 'BUT2'.
    ENDCASE.
  ENDIF.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
  CASE sy-dynnr.
    WHEN 1000.
      CASE sy-ucomm.
        WHEN 'BUT1'.
          mytab-dynnr = 100.
          g_dynnr     = 100.
          EXPORT g_dynnr TO MEMORY ID 'SCREEN'.     "录入ABAP内存屏幕号
        WHEN 'BUT2'.
          mytab-dynnr = 200.
          g_dynnr     = 200.
          EXPORT g_dynnr TO MEMORY ID 'SCREEN'.
        WHEN OTHERS.
      ENDCASE.
  ENDCASE.
复制代码

 

posted @   阿胖的阿多  阅读(358)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示