点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我有一个要求,希望排除所有不在0010000000和0069999999之间的合作伙伴编号。一种简单的方法是填写范围并比较Select-Options中的所有值:
将初始行追加到lr_range ASSIGNING。 -sign ='I'。 -option ='NB'。 -low ='0010000000'。 -high ='0069999999'。 如果s_partnr不是INITIAL。 在s_partnr []处分配 。 如果 -low不是初始值并且 -低IN lr_range []。 pi_error = abap_true。 出口。 万一。 如果 -high不是初始值,并且 -高IN lr_range []。 pi_error = abap_true。 出口。 万一。 结局。 万一。
("
但是这种方式并没有利用范围背后的所有逻辑,这意味着如果用户在Select-Options中输入" sign = I option = GT low = 0010000008 high = empty",则要求 不会实现,因为它将包含高于0069999999的值。
我尝试了以下操作:
LOOP AT s_partnr []分配。 IF IN lr_range []。 "带或不带括号 pi_error = abap_true。 出口。 万一。 结局。
没有工作。 我认为,以这种方式可以将Select-Option值视为一个范围,但是正在比较的值是整个工作区(例如:IBT0000000009999999999)。
你能帮我吗?
提前谢谢!
通常,在您要使用S_PARTNR时(在SELECT或条件语句中),并添加其他范围,即可达到此要求:
请注意,您的示例不需要范围,可以使用运算符BETWEEN编写:
为什么我的提案无法"在他们点击Execute时立即显示错误消息"?
否 ,这不是唯一的解决方案,而是最简单的解决方案。
请检查是否符合您的要求
或此
一周热门 更多>