选择屏幕定义select-option时,
需要判断是否只有某三个值,例如1.5.10
从而继续下面逻辑,
目前想到的方法是:
IF S_sel-low CN ‘1’‘5’‘10’
OR S_sel-high CN ‘1’‘5’‘10’.
…
ENDIF.
只能确保框里不可输其他值,
但BT (5.10)的情况还不能排除,
该当如何,请各位帮帮忙,一直没有查到合适解法
“Devil组”引证GPT后的撰写:
用FIND方法来检查select-option是否包含指定的值。
以下是一个示例代码,可以检查S_sel-low和S_sel-high是否包含1、5、10中的一个或多个值:
IF sy-subrc = 0.
DATA(lv_value) = '1,5,10'.
DATA(lv_position) = 0.
WHILE lv_position >= 0.
FIND FIRST OCCURRENCE OF ',' IN lv_value MATCH OFFSET lv_position.
IF sy-subrc = 0.
DATA(lv_substring) = lv_value+1(lv_position-1).
ELSE.
DATA(lv_substring) = lv_value+1.
ENDIF.
IF S_sel-low CP lv_substring OR S_sel-high CP lv_substring.
" S_sel-low 或 S_sel-high 中包含指定值
...
EXIT.
ENDIF.
lv_value = lv_value+lv_position+1.
ENDWHILE.
ENDIF.
将要检查的值设置为"1,5,10",然后使用FIND方法循环查找这个值中的每个子字符串。如果S_sel-low或S_sel-high包含任何一个子字符串,将继续执行下一步逻辑。
这个方法可以有效地检查select-option中是否包含指定的值,包括BT(5.10)的情况。