• 参考选择屏幕(控制选择屏幕两个屏幕,单值输入……通过函数实现单值输入)


      1 TABLES:likp,vbap,vbak,vttp.
      2 DATA:gl_restrict TYPE sscr_restrict.
      3 
      4 SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
      5 SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
      6 SELECT-OPTIONS: s_vstel FOR likp-vstel NO INTERVALS,               "装运点
      7                 s_lfdat FOR likp-lfdat NO INTERVALS    NO-EXTENSION ,                            "交货日期
      8                 s_lfart FOR likp-lfart DEFAULT 'LF' NO INTERVALS MODIF ID lf,              "交货类型
      9                 s_prodh FOR vbap-prodh NO INTERVALS,                          "产品层次
     10                 s_vbeln1 FOR likp-vbeln,                                       "交货单号
     11                 s_vtweg FOR vbak-vtweg NO INTERVALS.                          "销售渠道
     12 
     13 SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-002.
     14 * 配送方式
     15 SELECTION-SCREEN BEGIN OF LINE.
     16 SELECTION-SCREEN COMMENT 1(8) text-003.
     17 SELECTION-SCREEN POSITION 33.
     18 PARAMETERS r_rd1 RADIOBUTTON GROUP sg1 DEFAULT 'X' USER-COMMAND rd_click.
     19 SELECTION-SCREEN COMMENT 34(4) text-004 FOR FIELD r_rd1.
     20 SELECTION-SCREEN POSITION 45.
     21 PARAMETERS r_rd2 RADIOBUTTON GROUP sg1.
     22 SELECTION-SCREEN COMMENT 46(4) text-005 FOR FIELD r_rd2.
     23 SELECTION-SCREEN END OF LINE.
     24 * 拣配状态
     25 SELECTION-SCREEN BEGIN OF LINE.
     26 SELECTION-SCREEN COMMENT 1(8) text-006.
     27 SELECTION-SCREEN POSITION 33.
     28 PARAMETERS p_ck1 AS CHECKBOX.
     29 SELECTION-SCREEN COMMENT 34(4) text-007 FOR FIELD p_ck1.
     30 SELECTION-SCREEN POSITION 45.
     31 PARAMETERS p_ck2 AS CHECKBOX.
     32 SELECTION-SCREEN COMMENT 46(4) text-008 FOR FIELD p_ck2.
     33 SELECTION-SCREEN END OF LINE.
     34 
     35 SELECTION-SCREEN END OF BLOCK bk2.
     36 SELECTION-SCREEN END OF BLOCK bk1.
     37 SELECTION-SCREEN END OF SCREEN 100.
     38 
     39 * subscreen 200
     40 SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
     41 SELECTION-SCREEN BEGIN OF BLOCK bk3 WITH FRAME TITLE text-015.
     42 PARAMETERS: p_vbeln TYPE likp-vbeln   MODIF ID mop.
     43 SELECTION-SCREEN: PUSHBUTTON 63(5) pubu USER-COMMAND mailbutt.
     44 SELECT-OPTIONS: s_vbeln FOR likp-vbeln NO-DISPLAY.
     45 SELECTION-SCREEN END OF BLOCK bk3.
     46 SELECTION-SCREEN END OF SCREEN 200.
     47 
     48 * tab screen
     49 SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 25 LINES,
     50                   TAB (20) button1 USER-COMMAND push1,
     51                   TAB (20) button2 USER-COMMAND push2,
     52                   END OF BLOCK mytab.
     53 
     54 INITIALIZATION.
     55   PERFORM frm_set_tab.
     56   PERFORM frm_select_option.
     57 
     58 AT SELECTION-SCREEN OUTPUT.
     59   PERFORM frm_output_set.
     60 
     61 *&---------------------------------------------------------------------*
     62 *& 参数输入检查
     63 *&---------------------------------------------------------------------*
     64 AT SELECTION-SCREEN.
     65   PERFORM frm_set_screen.
     66 *&---------------------------------------------------------------------*
     67 *&      Form  frm_set_tab
     68 *&---------------------------------------------------------------------*
     69 *       text
     70 *----------------------------------------------------------------------*
     71 FORM frm_set_tab.
     72   DATA: lv_tab TYPE char1.
     73 
     74   button1 = '查询1'.
     75   button2 = '查询2'.
     76   mytab-prog = sy-repid.
     77   IMPORT p1 = lv_tab FROM MEMORY ID 'ZDQWM_099_TAB'.
     78   IF lv_tab IS INITIAL.
     79     mytab-dynnr = 100.
     80     mytab-activetab = 'PUSH1'.
     81   ELSE.
     82     IF lv_tab = 'A'.
     83       mytab-dynnr = 100.
     84       mytab-activetab = 'PUSH1'.
     85     ENDIF.
     86     IF lv_tab = 'B'.
     87       mytab-dynnr = 200.
     88       mytab-activetab = 'PUSH2'.
     89     ENDIF.
     90   ENDIF.
     91 *  mytab-dynnr = 100.
     92 *  mytab-activetab = 'PUSH1'.
     93 ENDFORM.                    "frm_set_tab
     94 *&---------------------------------------------------------------------*
     95 *&      Form  frm_set_screen
     96 *&---------------------------------------------------------------------*
     97 *       text
     98 *----------------------------------------------------------------------*
     99 FORM frm_set_screen.
    100 
    101   CASE sy-ucomm.
    102     WHEN 'PUSH1'.
    103       mytab-dynnr = 100.
    104       EXPORT p1 = 'A' TO MEMORY ID 'ZDQWM_099_TAB'.
    105     WHEN 'PUSH2'.
    106       mytab-dynnr = 200.
    107       EXPORT p1 = 'B' TO MEMORY ID 'ZDQWM_099_TAB'.
    108     WHEN 'MAILBUTT'.
    109       PERFORM show_box.
    110 
    111     WHEN OTHERS.
    112       ...
    113   ENDCASE.
    114 
    115 ENDFORM.                    "frm_set_screen
    116 *&---------------------------------------------------------------------*
    117 *&      Form  FRM_OUTPUT_SET
    118 *&---------------------------------------------------------------------*
    119 *       text
    120 *----------------------------------------------------------------------*
    121 *  -->  p1        text
    122 *  <--  p2        text
    123 *----------------------------------------------------------------------*
    124 FORM frm_output_set .
    125   IF p_vbeln IS INITIAL.
    126     WRITE icon_enter_more  AS ICON TO pubu.
    127   ELSE.
    128     WRITE icon_display_more AS ICON TO pubu.
    129   ENDIF.
    130 ENDFORM.                    " FRM_OUTPUT_SET
    131 
    132 *&---------------------------------------------------------------------*
    133 *&      Form  frm_select_option
    134 *&---------------------------------------------------------------------*
    135 *       text
    136 *----------------------------------------------------------------------*
    137 FORM frm_select_option.
    138 
    139   REFRESH gl_restrict-ass_tab.
    140   PERFORM frm_set_key USING 'KEY1' 'S_VSTEL'.
    141   PERFORM frm_set_key USING 'KEY2' 'S_PRODH'.
    142   PERFORM frm_set_key USING 'KEY3' 'S_VTWEG'.
    143   PERFORM frm_set_key USING 'KEY4' 'S_LFART'.
    144   PERFORM frm_set_key USING 'KEY10' 'S_VBELN2'.
    145 *    PERFORM frm_set_key USING 'KEY11' 'S_POS'.
    146   CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'                 "只执行一次
    147     EXPORTING
    148       restriction            = gl_restrict
    149     EXCEPTIONS
    150       too_late               = 1
    151       repeated               = 2
    152       selopt_without_options = 3
    153       selopt_without_signs   = 4
    154       invalid_sign           = 5
    155       empty_option_list      = 6
    156       invalid_kind           = 7
    157       repeated_kind_a        = 8
    158       OTHERS                 = 9.
    159   IF sy-subrc <> 0.
    160     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    161     WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    162   ENDIF.
    163 
    164 ENDFORM.                    "frm_select_option
    165 *&---------------------------------------------------------------------*
    166 *&      Form  frm_set_key
    167 *&---------------------------------------------------------------------*
    168 *       text
    169 *----------------------------------------------------------------------*
    170 *      -->L_KEY      text
    171 *      -->L_NAME     text
    172 *----------------------------------------------------------------------*
    173 FORM frm_set_key USING l_key l_name.
    174   DATA: wl_restrict TYPE sscr_restrict,
    175         wl_optlist TYPE sscr_opt_list,
    176         wl_ass TYPE sscr_ass.
    177 
    178   CONSTANTS:  cl_s TYPE char1 VALUE 'S',
    179               cl_x TYPE c VALUE 'X',
    180               cl_i TYPE char1 VALUE 'I'.
    181 
    182   wl_optlist-name = l_key.      "选项框id,不同select-option不能重复
    183   wl_optlist-options-eq = cl_x.
    184   APPEND wl_optlist TO gl_restrict-opt_list_tab.
    185   CLEAR: wl_optlist.
    186 
    187   wl_ass-kind = cl_s.
    188   wl_ass-name = l_name.   "select-option id
    189   wl_ass-sg_main = cl_i.
    190   wl_ass-sg_addy = space.
    191   wl_ass-op_main = l_key.
    192   APPEND wl_ass TO gl_restrict-ass_tab.
    193   CLEAR: wl_ass.
    194 ENDFORM.                    "frm_set_key
    195 *&---------------------------------------------------------------------*
    196 *&      Form  SHOW_BOX
    197 *&---------------------------------------------------------------------*
    198 *       text
    199 *----------------------------------------------------------------------*
    200 *  -->  p1        text
    201 *  <--  p2        text
    202 *----------------------------------------------------------------------*
    203 FORM show_box .
    204   DATA: wh_excluded_options TYPE rsoptions.
    205   DATA: w_message TYPE char100.
    206 *输入单值,排除其他
    207   wh_excluded_options-ne = 'X'.
    208   wh_excluded_options-bt = 'X'.
    209   wh_excluded_options-nb = 'X'.
    210   wh_excluded_options-ge = 'X'.
    211   wh_excluded_options-gt = 'X'.
    212   wh_excluded_options-le = 'X'.
    213   wh_excluded_options-lt = 'X'.
    214   wh_excluded_options-cp = 'X'.
    215   wh_excluded_options-np = 'X'.
    216 
    217   CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
    218     EXPORTING
    219       title             = '批量处理'
    220       just_incl         = 'X'         "只有包含输入
    221       excluded_options  = wh_excluded_options
    222     TABLES
    223       range             = s_vbeln
    224     EXCEPTIONS
    225       no_range_tab      = 1
    226       cancelled         = 2
    227       internal_error    = 3
    228       invalid_fieldname = 4
    229       OTHERS            = 5.
    230   IF sy-subrc <> 0.
    231     IF sy-subrc = 2.
    232       MESSAGE '取消批量处理' TYPE 'S'.
    233       EXIT.
    234     ENDIF.
    235     CALL FUNCTION 'MESSAGE_TEXT_BUILD'
    236       EXPORTING
    237         msgid               = sy-msgid
    238         msgnr               = sy-msgno
    239         msgv1               = sy-msgv1
    240         msgv2               = sy-msgv2
    241         msgv3               = sy-msgv3
    242         msgv4               = sy-msgv4
    243       IMPORTING
    244         message_text_output = w_message.
    245     MESSAGE w_message TYPE 'S' DISPLAY LIKE 'E'.
    246     EXIT.
    247   ENDIF.
    248 ENDFORM.                    " SHOW_BOX
    View Code

     

  • 相关阅读:
    Catalan数(卡特兰数)
    100个乘客登机问题
    [设计模式]抽象工厂模式
    栈-队和队-栈
    java实现字符串反转
    java实现字符串按词反转
    windows上安装maven及eclipse中配置maven
    Windows 10 安装 Docker
    Win7操作系统安装IE10提示“安装前需要更新与安装程序版本”
    解决Jenkins权限配置错误,导致登录时出现没有Overall/read权限
  • 原文地址:https://www.cnblogs.com/ruingy/p/3643044.html
Copyright © 2020-2023  润新知