SAP选择界面联动搜索帮助

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_werks FOR marc-werks OBLIGATORY DEFAULT '1100' NO INTERVALS NO-EXTENSION.
SELECT-OPTIONS: s_matnr FOR marc-matnr OBLIGATORY NO INTERVALS NO-EXTENSION,
                s_verid FOR mkal-verid OBLIGATORY NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK blk1.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_verid-low.
  PERFORM frm_verid_f4.



FORM frm_verid_f4 .

  DATA: lt_ddshretval TYPE TABLE OF ddshretval.
  DATA: lt_dynpread TYPE TABLE OF dynpread,
        ls_dynpread TYPE dynpread,
        lv_werks    TYPE werks_d,
        lv_matnr    TYPE matnr.

  ls_dynpread-fieldname = 'S_WERKS-LOW'.
  APPEND ls_dynpread TO lt_dynpread.

  ls_dynpread-fieldname = 'S_MATNR-LOW'.
  APPEND ls_dynpread TO lt_dynpread.

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
    TABLES
      dynpfields           = lt_dynpread
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10
      OTHERS               = 11.

  CLEAR: ls_dynpread.

  LOOP AT lt_dynpread INTO ls_dynpread.
    CASE ls_dynpread-fieldname.
      WHEN 'S_WERKS-LOW'.
        lv_werks = ls_dynpread-fieldvalue.
      WHEN 'S_MATNR-LOW'.
        lv_matnr = ls_dynpread-fieldvalue.
    ENDCASE.
    CLEAR:ls_dynpread.
  ENDLOOP.

  SELECT verid,text1,matnr,werks,adatu,bdatu,bstmi,bstma
     INTO TABLE @DATA(local_mkal)
     FROM mkal
     WHERE werks = @lv_werks
     AND  matnr = @lv_matnr
     AND  bdatu GE @sy-datum
     AND  adatu LE @sy-datum
     AND  mksp NE '1'
    ORDER BY verid.


  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'VERID'
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'S_VERID-LOW'
      window_title    = '选择生产版本'
      value_org       = 'S'
    TABLES
      value_tab       = local_mkal
      return_tab      = lt_ddshretval
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.


ENDFORM.

效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值