搜索帮助的条件动态默认值

在做搜索帮助时,需要传入几个默认的条件,但是默认的条件是动态的,

就比如一个账号希望展示的是其他国家的公司,一个希望展示的中国的公司

TABLES: t001.

SELECT-OPTIONS: s_bukrs FOR t001-bukrs.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_bukrs-low.

  DATA: lt_return TYPE TABLE OF ddshretval.

  SELECT bukrs,butxt,land1 FROM t001 INTO TABLE @DATA(lt_data).

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield         = 'BUKRS'           "内表中用于搜索帮助的字段
      dynpprog         = sy-repid
      dynpnr           = sy-dynnr
      dynprofield      = 'S_BUKRS-LOW'     "屏幕字段
      value_org        = 'S'
      callback_form    = 'F4HELP_SETUP'
      callback_program = sy-repid
    TABLES
      value_tab        = lt_data           "用于展示数据的内表
      return_tab       = lt_return
    EXCEPTIONS
      parameter_error  = 0
      no_values_found  = 0
      OTHERS           = 0.
  IF sy-subrc = 0.

  ENDIF.


FORM f4help_setup TABLES   record_tab    STRUCTURE seahlpres
                  CHANGING shlp        TYPE shlp_descr
                           callcontrol LIKE ddshf4ctrl.

  DATA: ls_intdescr LIKE shlp_intds.

  SET PARAMETER ID 'LND' FIELD 'US'.

  IF line_exists( shlp-fieldprop[ 3 ] )."至于是第几个需要shlp-fielddescr[ domname = 'BUKRS' ]-fieldname判断
    shlp-fieldprop[ 3 ]-defaultval = 'LND'.
    shlp-fieldprop[ 3 ]-shlpseldis = 'X'."设置了则在点开搜索帮助时不可以更改
  ENDIF.

  shlp-intdescr-dialogtype = 'C'.   "设置显示模式
  callcontrol-no_maxdisp   = ''.
  callcontrol-maxrecords   = '50'.    "最大显示数量

ENDFORM.

使用PARAMETERID可以实现,具体可以多看看集合搜索帮助里的MAT1

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值