ABAP限制SELECT-OPTIONS

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了ABAP限制SELECT-OPTIONS脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

写程序定义选择界面参数时,离不开parameters和select-options,今天我们就来聊一聊使用select-options时的一些限定情况。

现有case如下,一个计划录入的程序,在显示计划选项下,需指定一天或者一段时间来展示对应的计划数据,也就是说只允许输入单值或者区间

ABAP限制SELECT-OPTIONS

我们第一印象是不是想在定义select-options时增加NO-EXTENSION来减少上图的多输入选项?

ABAP限制SELECT-OPTIONS

那这样就能满足只能输入单值或者区间了吗?然并卵,并不是这样的,当我们在low值里双击时,即可指定跟多输入按钮一样的选项

ABAP限制SELECT-OPTIONS

从上图我们可以看出,既有选择选项(SIGN为I),也有选择中排除选项(SIGN为E),总结起来,大概就是下图中这些选项(本例日期类型,所以下图中某些选项属性本身是没有的)

ABAP限制SELECT-OPTIONS

那么,是不是意味着,我需要哪些选项,我就启用哪些选项呢,yes,在这里给你一个大大的赞,确实是这样的。

本例中只需要单值和区间,也就是说,只需要EQ和BT,并且Sign为I,代码示例如下:

 DATA: ls_restrict TYPE sscr_restrict,
      ls_optlist  TYPE sscr_opt_list,
      ls_ass      TYPE sscr_ass.
ls_optlist-name       = 'OBJECTKEY'.
ls_optlist-options-eq = abap_true.   " 单值
ls_optlist-options-bt = abap_true.   " 区间
APPEND ls_optlist TO ls_restrict-opt_list_tab.
ls_ass-kind           = 'S'.
ls_ass-name           = 'S_PERID'.   " 选择字段
ls_ass-sg_main        = 'I'.         " Sign
ls_ass-sg_addy        = space.
ls_ass-op_main        = 'OBJECTKEY'.
APPEND ls_ass TO ls_restrict-ass_tab.
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
  EXPORTING
    restriction            = ls_restrict
  EXCEPTIONS
    too_late               = 1
    repeated               = 2
    selopt_without_options = 3
    selopt_without_signs   = 4
    invalid_sign           = 5
    empty_option_list      = 6
    invalid_kind           = 7
    repeated_kind_a        = 8
    OTHERS                 = 9.

脚本宝典总结

以上是脚本宝典为你收集整理的ABAP限制SELECT-OPTIONS全部内容,希望文章能够帮你解决ABAP限制SELECT-OPTIONS所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: