屏幕定义

IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*--200作为第二个子屏幕
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN SKIP.
PARAMETERS: tab1_01 TYPE c LENGTH 10,
            tab1_02 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 100.

*--200作为第二个子屏幕
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN SKIP.
PARAMETERS: tab2_01 TYPE c LENGTH 10,
            tab2_02 TYPE c LENGTH 10.
SELECTION-SCREEN END OF SCREEN 200.

*--将子屏幕存放到页签mytab中,
*--随着页签的mytab的建立,系统自动创建一个名称为MYTAB的变量,用于控制页签的当前子屏幕
SELECTION-SCREENBEGIN OF TABBED BLOCK mytab FOR LINES,
*--两个页签分别为button1  button2 并指定响应事件的功能码 push1 push2
                   TAB (20) button1 USER-COMMAND push1,
                   TAB (20) button2 USER-COMMAND push2,
                   END OF BLOCK mytab.

INITIALIZATION.

  button1 'TAB1'.
  button2 'TAB2'.
  mytab-prog = sy-repid.
  "初始化页签的当前显示页
  mytab-dynnr 100.
  mytab-activetab 'PUSH1'.

AT SELECTION-SCREEN.
  "在选择屏幕中,单击页签时刷新屏幕
  CASE sy-ucomm.
    WHEN 'PUSH1'.
      mytab-dynnr 100.
    WHEN 'PUSH2'.
      mytab-dynnr 200.
    WHEN OTHERS.
      ...
  ENDCASE.

START-OF-SELECTION.

  WRITE mytab-dynnr.

TABLES: mara, marc.
DATABEGIN OF it_tab ,
  matnr LIKE mara-matnr,
  ernam LIKE mara-ernam,
  ersda LIKE mara-ersda,
  matkl LIKE mara-matkl,
  werks LIKE marc-werks,
  lgpro LIKE marc-lgpro,
  END OF it_tab.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01.
SELECT-OPTIONS:
  s_ersda FOR mara-ersda,
  s_ernam FOR mara-ernam,
  s_matnr FOR mara-matnr OBLIGATORY.
PARAMETERS:
  p_werks TYPE marc-werks DEFAULT 1101.
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-s01.
SELECT-OPTIONS:
  s_lgpro FOR marc-lgpro NO-EXTENSION,
  s_matkl FOR mara-matkl NO  INTERVALS.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN  BEGIN  OF  BLOCK  test WITH  FRAME .
PARAMETER  r1  RADIOBUTTON  GROUP  gr1.
PARAMETER  r2  RADIOBUTTON  GROUP  gr1.
PARAMETER  r3  RADIOBUTTON  GROUP  gr1.
SELECTION-SCREEN  END  OF  BLOCK  test.
SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN  BEGIN  OF  BLOCK  radio WITH  FRAME .
PARAMETERS:
p_roh   AS  CHECKBOX,
p_fert  AS  CHECKBOX,
p_halb  AS  CHECKBOX.
SELECTION-SCREEN  END  OF  BLOCK  radio.

PARAMETERS   P_BWART(20AS LISTBOX VISIBLE LENGTH 40 DEFAULT '101'.
***定义下拉列表使用到的类型池。类似于ALV报表时的slis
TYPE-POOLS vrm.
***事件块
AT SELECTION-SCREEN OUTPUT.
***定义内表带表头
  DATA values TYPE vrm_values WITH HEADER LINE.
***内表赋值
  values-key '101'"key的值为p_lang所接受到的值
  values-text '按采购订单收货到库存'."text为对应的文本描述
  APPEND values.
  values-key '102'.
  values-text '按采购订单收货到仓库 - 冲销'.
  APPEND values.
***调用函数实现下拉列表
CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      id              'P_BWART'
      values          = values[]
    EXCEPTIONS
      id_illegal_name 311
      OTHERS          321.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

posted @ 2017-03-17 15:45  快乐VS神  阅读(207)  评论(0编辑  收藏  举报