我们知道SE11或SE16N中并不支持物料外部编码的模糊查询,比如:se11中模糊查询64771-062-*找不到符合条件的数据,
但实际上是有一条符合条件的物料。
如果想支持外部编码的模糊查询,就需要使用到函数 MGV_SELOP_AFTER_START_OF_SEL,将select-option中的带星号的模糊查询转换成为符合条件的内部编码。
简单写个代码供参考:
1 REPORT ztest_selop. 2 3 TABLES:mara. 4 DATA: gv_flg TYPE c. 5 DATA:gt_mara TYPE STANDARD TABLE OF mara WITH HEADER LINE. 6 SELECT-OPTIONS s_matnr FOR mara-matnr. 7 8 START-OF-SELECTION. 9 "件号模糊查询支持 10 CLEAR gv_flg. 11 LOOP AT s_matnr . 12 IF s_matnr-low CS '*'. 13 gv_flg = 'X'. 14 EXIT. 15 ENDIF. 16 IF s_matnr-high CS '*'. 17 gv_flg = 'X'. 18 EXIT. 19 ENDIF. 20 ENDLOOP. 21 22 * 模糊查询 23 IF gv_flg = 'X'. 24 CALL FUNCTION 'MGV_SELOP_AFTER_START_OF_SEL' 25 EXPORTING 26 selopt_name = 'MATNR' 27 * MAT_ALL = 28 * MAT_HEAD = 29 * MAT_VERS = 30 * MAT_UNVE = 31 TABLES 32 range = s_matnr[]. 33 ENDIF. 34 35 SELECT * 36 FROM mara 37 INTO TABLE gt_mara 38 WHERE matnr IN s_matnr. 39 40 LOOP AT gt_mara. 41 WRITE:/ gt_mara-matnr. 42 ENDLOOP.
测试:输入刚才se11中输入的64771-062-*
结果,成功找到64771-062-001
以上。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/19347.html