写程序定义选择界面参数时,离不开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.
如果你在学习或者项目过程中遇到有意思的问题或者想进行知识分享,记得关注我们“菜鸟之家”的公众号哦,关注之后添加管理为好友,由管理邀请进群!
往期推荐
ERP:自开发程序涉及权限问题处理-Tcode权限和数据管理
SAP:解决SMARTFORM中因‘-’导致字符串折行的问题
小手点一点关注,顾问路上不迷路!
扫描二维码
获取更多精彩
菜鸟家园