Select-options restrict

2021-10-30 19:16发布


          点击此处--->   EasySAP.com 群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)

写程序定义选择界面参数时,离不开parametersselect-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.


如果你在学习或者项目过程中遇到有意思的问题或者想进行知识分享,记得关注我们“菜鸟之家”的公众号哦,关注之后添加管理为好友,由管理邀请进群!




S4

ERP-Tcode

Script formLogo

SAP/退debug

SAPSMARTFORM-

STRANSWORD/EXCEL

MRPMD01

smartformsPDF

MRPMD01

SAPREAD_TEXT

ABAP DO VARYING

SAP

TR

CI_COBL

range table

soamanager,!

参与公众号内容讨论, 请扫码加入群(目前主群人员已满200,需要进主群的,进入附加群后联系管理员拉入主群)

赞赏支持