ABAP选择屏幕隐藏OPTION复选框中的参数

需求:最近做权限检查的时候,屏幕上有一个检查字段为多值,但是业务需求是输入多值,我们使用NO INTERVALS,将字段改成单值,但是后面的选择框中还有多值输入,需要我们修改成只能填写单值,如下图:
在这里插入图片描述
需求如下:
在这里插入图片描述
具体的实现方式,是通过函数SELECT_OPTIONS_RESTRICT进行控制,具体代码如下:

REPORT ztest_xiax02.

TABLES : marc.

* Define the object to be passed to the RESTRICTION
DATA : restrict TYPE sscr_restrict,
       optlist  TYPE sscr_opt_list,
       ass      TYPE sscr_ass.

*定义选择屏幕
SELECT-OPTIONS : s_matnr FOR marc-matnr NO INTERVALS,
                 s_werks FOR marc-werks.

INITIALIZATION.
* 限制MATNR参数只能使用‘EQ’ 和‘BT’.
  optlist-name = 'OBJECTKEY1'.
  optlist-options-eq = 'X'.
*  optlist-options-bt = 'X'.
  APPEND optlist TO restrict-opt_list_tab.

  ass-kind = 'S'.
  ass-name = 'S_MATNR'.
  ass-sg_main = 'I'.
  ass-sg_addy = space.
  ass-op_main = 'OBJECTKEY1'.
  APPEND ass TO restrict-ass_tab.

* 限制 WERKS 参数只能使用CP, GE, LT, NE.
  optlist-name = 'OBJECTKEY2'.
  optlist-options-cp = 'X'.
  optlist-options-bt = 'X'.
  optlist-options-ge = 'X'.
  optlist-options-lt = 'X'.
  optlist-options-ne = 'X'.
  APPEND optlist TO restrict-opt_list_tab.

  ass-kind = 'S'.
  ass-name = 'S_WERKS'.
  ass-sg_main = 'I'.
  ass-sg_addy = space.
  ass-op_main = 'OBJECTKEY2'.
  APPEND ass TO restrict-ass_tab.

  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      restriction            = restrict
    EXCEPTIONS
      too_late               = 1
      repeated               = 2
      selopt_without_options = 3
      selopt_without_signs   = 4
      invalid_sign           = 5
      empty_option_list      = 6
      invalid_kind           = 7
      repeated_kind_a        = 8
      OTHERS                 = 9.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值