脚本宝典收集整理的这篇文章主要介绍了ABAP限制SELECT-OPTIONS,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
写程序定义选择界面参数时,离不开parameters和select-options,今天我们就来聊一聊使用select-options时的一些限定情况。
现有case如下,一个计划录入的程序,在显示计划选项下,需指定一天或者一段时间来展示对应的计划数据,也就是说只允许输入单值或者区间
我们第一印象是不是想在定义select-options时增加NO-EXTENSION来减少上图的多输入选项?
那这样就能满足只能输入单值或者区间了吗?然并卵,并不是这样的,当我们在low值里双击时,即可指定跟多输入按钮一样的选项
从上图我们可以看出,既有选择选项(SIGN为I),也有选择中排除选项(SIGN为E),总结起来,大概就是下图中这些选项(本例日期类型,所以下图中某些选项属性本身是没有的)
那么,是不是意味着,我需要哪些选项,我就启用哪些选项呢,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,请注明来意。