有时候我们会接到特别的需求,比如在选择屏幕查询时进行模糊查询,不是要输入字符就行,而是要和SAP标准程序一样,在输入框输入*就可以模糊查询。
基于上面的要求,既然写不出和标准程序一模一样的代码,就按照自己的思维进行。我们知道OpenSQL里面可以使用关键字like进行模糊查询,但是需要拼接%%
PARAMETERS: p_maktx TYPE makt-maktx.
"判断是否输入模糊查询的字段
IF p_maktx IS NOT INITIAL.
DATA(lv_len) = strlen( p_maktx ) - 1.
DATA(lv_fc) = p_maktx+0(1).
DATA(lv_fcl) = p_maktx+lv_len(1).
IF lv_fc = '*'.
REPLACE '*' IN p_maktx WITH '%'.
ENDIF.
IF lv_fcl = '*'.
REPLACE '*' IN p_maktx WITH '%'.
ENDIF.
ELSE.
CONCATENATE '%' p_maktx '%' INTO p_maktx.
ENDIF.
原理不变,变的只是将*替换成%