bb583083775 2023-03-08 09:57 采纳率: 50%
浏览 17
已结题

ABAP 选择屏幕中如何判断select-option中限定的值

选择屏幕定义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)的情况还不能排除,
该当如何,请各位帮帮忙,一直没有查到合适解法

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-03-08 10:06
    关注

    “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)的情况。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月8日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分