2020-08-30 16:46发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,这是塞卡尔,
我已经使用了带有"无间隔"选项的Select-options:语句。 现在,我需要限制用户不要在多重选择屏幕的"范围"列中输入值。 我该怎么办......
,在选择选项上不能使用任何扩展名。
选择选项f_fldate表示从wa_flight-FLDATE默认'20140801'到'20141031'无扩展名。
嗨,
这是SAP标准,您可以最大使用无间隔,但我不认为可以禁用RANGE选项。
可以检查一下 如果在select-option-high中包含一些值。
然后您可以停止处理并显示相应的消息。
* REWARD
嗨,谢卡,
欢迎来到SDN。
chkl此示例代码。
报告Z_CONECT_A。 p>
包括类型池SSCR
TYPE-POOLS sscr。
表:marc。
定义选择屏幕
选择选项:
s_matnr用于marc-matnr,
s_werks for marc-werks。
定义要传递给RESTRICTION参数的对象
数据限制类型 sscr_restrict。
用于填充RESTRICT的辅助对象
DATA:op tlist类型sscr_opt_list,
屁股类型sscr_ass。
初始化。
将MATNR选择限制为仅EQ和'BT'。/p>
optlist-name ='OBJECTKEY1'。
optlist-options-eq ='X'。
optlist-options- bt ='X'。
追加optlist来限制-opt_list_tab。
ass-kind ='S'。
ass-name ='S_MATNR'。
ass-sg_main ='I'。
ass-sg_addy =空间。
ass-op_main ='OBJECTKEY1'。
将WERKS选择限制为CP,GE,LT,NE。
optlist- 名称='OBJECTKEY2'。
optlist-options-cp ='X'。
optlist-options-ge ='X'。
optlist-options -lt ='X'。
optlist-options-ne ='X'。
ass-kind =' S'。
ass-name ='S_WERKS'。
ass-op_main ='OBJECTKEY2'。
附加ass到strict-ass_tab中。
调用乐趣 CTION'SELECT_OPTIONS_RESTRICT'
导出
限制=限制
例外情况
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
其他= 9
。
如果sy-subrc <> 0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
rgds
anver
消息的编辑者:Anversha s
我不知道地图参数是否可能受到限制
您可以在
在多个选择屏幕的列中检查是否存在数据。
您可以通过以下方式进行操作:
FORM初始化屏幕。
数据:限制类型sscr_restrict,
opt_list类型sscr_opt_list,
* ......限制选择选项:仅允许包含值........
清除opt_list。
opt_list-name ='OPT_LIST'。
opt_list-options-bt ='X'。
opt_list-options-eq ='X'。
APPEND opt_list来限制-opt_list_tab。
清除屁股。
ass-kind ='B'。
资产名称='SET_SELECTION'。
ass-op_main ='OPT_LIST'。
APPEND驴子到strict-ass_tab。
通话功能'SELECT_OPTIONS_RESTRICT'
限制=限制。
ENDFORM。
您还可以参考以下代码:CHECK OUT SELECT OPTION sel_1_0。
&----
*&报告ZTESTREP
*&
报告ztestrep。
数据限制类型sscr_restrict。
DATA opt_list TYPE sscr_opt_list。
数据屁股类型sscr_ass。
定义选择屏幕对象
第一段:3个选择项
第block_0块的选择屏幕开始,带有FRAME TITLE文本-bl0。
SELECT-OPTIONS sel_0_0用于sy-tvar0。
SELECT-OPTIONS sel_0_1 for sy-tvar1。
用于sy-tvar2的SELECT-OPTIONS sel_0_2。
为sy-tvar3选择选项sel_0_3。
SELECTION-SCREEN END OF BLOCK块_0。
第二个块:2个选择项
第block_1块的选择屏幕开始,其标题为text-bl1。
SELECT-OPTIONS sel_1_0 for sy-subrc。
SELECT-OPTIONS sel_1_1用于sy-repid。
第1个块的选择屏幕结尾。
定义选项列表
全部:允许所有选项
将"全部"移到opt_list-name。
将" X"移动到:opt_list-options-bt,
opt_list-options-cp,
opt_list-options-eq,
opt_list-options-ge
opt_list-options-gt,
opt_list-options-le
opt_list-options-lt,
opt_list-options-nb
opt_list-options-ne
opt_list-options-np。
注意:不允许使用CP和NP
将" NOPATTERN"移动到opt_list-name。
opt_list-options-ne。
禁止上网:不允许使用BT和NB
将" NOINTERVLS"移动到opt_list-name。
将" X"移动到:opt_list-options-cp,
EQ_AND_CP:仅允许EQ和CP
将" EQ_AND_CP"移动到opt_list-name。
opt_list-options-eq。
JUST_EQ:仅允许EQ
将" JUST_EQ"移动到opt_list-name。
将'X'移动到opt_list-options-eq。
将选择屏幕对象分配给选项列表并签名
KIND ='A':适用于所有SELECT-OPTIONS
移动:" A"代表屁股,
'*'到ass-sg_main,
'NOPATTERN'到ass-op_main,
'NOINTERVLS'到ass-op_addy。
KIND ='B':适用于块BLOCK_0中的所有SELECT-OPTIONS,
,即SEL_0_0,SEL_0_1,SEL_0_2
移动:" B"代表屁股,
'BLOCK_0'TO屁股名称,
"我"是ass-sg_main,
'*'TO ass-sg_addy,
'NOINTERVLS'到ass-op_main。
KIND ='S':适用于SELECT-OPTION SEL-0-2
移动:" S"代表屁股,
'SEL_0_2'TO屁股名称,
'EQ_AND_CP'到ass-op_main,
'全部'到ass-op_addy。
KIND ='S':适用于SELECT-OPTION SEL_0_3
'SEL_0_3'TO屁股名称,
'N'TO ass-sg_addy,
'JUST_EQ'到ass-op_main。
调用功能模块
DB =''
too_late = 1
重复= 2
not_during_submit = 3
db_call_after_report_call = 4
selopt_without_options = 5
selopt_without_signs = 6
invalid_sign = 7
report_call_after_db_error = 8
empty_option_list = 9
invalid_kind = 10
repeating_kind_a = 11
OTHERS = 12。
最多设置5个标签!
,在选择选项上不能使用任何扩展名。
嗨,
这是SAP标准,您可以最大使用无间隔,但我不认为可以禁用RANGE选项。
可以检查一下 如果在select-option-high中包含一些值。
然后您可以停止处理并显示相应的消息。
* REWARD
嗨,谢卡,
欢迎来到SDN。
chkl此示例代码。
报告Z_CONECT_A。 p>
包括类型池SSCR
TYPE-POOLS sscr。
表:marc。
定义选择屏幕
选择选项:
s_matnr用于marc-matnr,
s_werks for marc-werks。
定义要传递给RESTRICTION参数的对象
数据限制类型 sscr_restrict。
用于填充RESTRICT的辅助对象
DATA:op tlist类型sscr_opt_list,
屁股类型sscr_ass。
初始化。
将MATNR选择限制为仅EQ和'BT'。/p>
optlist-name ='OBJECTKEY1'。
optlist-options-eq ='X'。
optlist-options- bt ='X'。
追加optlist来限制-opt_list_tab。
ass-kind ='S'。
ass-name ='S_MATNR'。
ass-sg_main ='I'。
ass-sg_addy =空间。
ass-op_main ='OBJECTKEY1'。
将WERKS选择限制为CP,GE,LT,NE。
optlist- 名称='OBJECTKEY2'。
optlist-options-cp ='X'。
optlist-options-ge ='X'。
optlist-options -lt ='X'。
optlist-options-ne ='X'。
追加optlist来限制-opt_list_tab。
ass-kind =' S'。
ass-name ='S_WERKS'。
ass-sg_main ='I'。
ass-sg_addy =空间。
ass-op_main ='OBJECTKEY2'。
附加ass到strict-ass_tab中。
调用乐趣 CTION'SELECT_OPTIONS_RESTRICT'
导出
限制=限制
例外情况
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
其他= 9
。
如果sy-subrc <> 0。
消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
rgds
anver
消息的编辑者:Anversha s
消息的编辑者:Anversha s
我不知道地图参数是否可能受到限制
您可以在
上的selecion屏幕上进行控制在多个选择屏幕的列中检查是否存在数据。
您可以通过以下方式进行操作:
FORM初始化屏幕。
数据:限制类型sscr_restrict,
opt_list类型sscr_opt_list,
屁股类型sscr_ass。
* ......限制选择选项:仅允许包含值........
清除opt_list。
opt_list-name ='OPT_LIST'。
opt_list-options-bt ='X'。
opt_list-options-eq ='X'。
APPEND opt_list来限制-opt_list_tab。
清除屁股。
ass-kind ='B'。
资产名称='SET_SELECTION'。
ass-sg_main ='I'。
ass-op_main ='OPT_LIST'。
APPEND驴子到strict-ass_tab。
通话功能'SELECT_OPTIONS_RESTRICT'
导出
限制=限制。
ENDFORM。
您还可以参考以下代码:CHECK OUT SELECT OPTION sel_1_0。
&----
*&报告ZTESTREP
*&
&----
*&
*&
&----
报告ztestrep。
包括类型池SSCR
TYPE-POOLS sscr。
定义要传递给RESTRICTION参数的对象
数据限制类型sscr_restrict。
用于填充RESTRICT的辅助对象
DATA opt_list TYPE sscr_opt_list。
数据屁股类型sscr_ass。
定义选择屏幕对象
第一段:3个选择项
第block_0块的选择屏幕开始,带有FRAME TITLE文本-bl0。
SELECT-OPTIONS sel_0_0用于sy-tvar0。
SELECT-OPTIONS sel_0_1 for sy-tvar1。
用于sy-tvar2的SELECT-OPTIONS sel_0_2。
为sy-tvar3选择选项sel_0_3。
SELECTION-SCREEN END OF BLOCK块_0。
第二个块:2个选择项
第block_1块的选择屏幕开始,其标题为text-bl1。
SELECT-OPTIONS sel_1_0 for sy-subrc。
SELECT-OPTIONS sel_1_1用于sy-repid。
第1个块的选择屏幕结尾。
初始化。
定义选项列表
全部:允许所有选项
将"全部"移到opt_list-name。
将" X"移动到:opt_list-options-bt,
opt_list-options-cp,
opt_list-options-eq,
opt_list-options-ge
opt_list-options-gt,
opt_list-options-le
opt_list-options-lt,
opt_list-options-nb
opt_list-options-ne
opt_list-options-np。
APPEND opt_list来限制-opt_list_tab。
注意:不允许使用CP和NP
清除opt_list。
将" NOPATTERN"移动到opt_list-name。
将" X"移动到:opt_list-options-bt,
opt_list-options-eq,
opt_list-options-ge
opt_list-options-gt,
opt_list-options-le
opt_list-options-lt,
opt_list-options-nb
opt_list-options-ne。
APPEND opt_list来限制-opt_list_tab。
禁止上网:不允许使用BT和NB
清除opt_list。
将" NOINTERVLS"移动到opt_list-name。
将" X"移动到:opt_list-options-cp,
opt_list-options-eq,
opt_list-options-ge
opt_list-options-gt,
opt_list-options-le
opt_list-options-lt,
opt_list-options-ne
opt_list-options-np。
APPEND opt_list来限制-opt_list_tab。
EQ_AND_CP:仅允许EQ和CP
清除opt_list。
将" EQ_AND_CP"移动到opt_list-name。
将" X"移动到:opt_list-options-cp,
opt_list-options-eq。
APPEND opt_list来限制-opt_list_tab。
JUST_EQ:仅允许EQ
清除opt_list。
将" JUST_EQ"移动到opt_list-name。
将'X'移动到opt_list-options-eq。
APPEND opt_list来限制-opt_list_tab。
将选择屏幕对象分配给选项列表并签名
KIND ='A':适用于所有SELECT-OPTIONS
移动:" A"代表屁股,
'*'到ass-sg_main,
'NOPATTERN'到ass-op_main,
'NOINTERVLS'到ass-op_addy。
APPEND驴子到strict-ass_tab。
KIND ='B':适用于块BLOCK_0中的所有SELECT-OPTIONS,
,即SEL_0_0,SEL_0_1,SEL_0_2
清除屁股。
移动:" B"代表屁股,
'BLOCK_0'TO屁股名称,
"我"是ass-sg_main,
'*'TO ass-sg_addy,
'NOINTERVLS'到ass-op_main。
APPEND驴子到strict-ass_tab。
KIND ='S':适用于SELECT-OPTION SEL-0-2
清除屁股。
移动:" S"代表屁股,
'SEL_0_2'TO屁股名称,
"我"是ass-sg_main,
'*'TO ass-sg_addy,
'EQ_AND_CP'到ass-op_main,
'全部'到ass-op_addy。
APPEND驴子到strict-ass_tab。
KIND ='S':适用于SELECT-OPTION SEL_0_3
清除屁股。
移动:" S"代表屁股,
'SEL_0_3'TO屁股名称,
"我"是ass-sg_main,
'N'TO ass-sg_addy,
'JUST_EQ'到ass-op_main。
APPEND驴子到strict-ass_tab。
调用功能模块
通话功能'SELECT_OPTIONS_RESTRICT'
导出
限制=限制
DB =''
例外情况
too_late = 1
重复= 2
not_during_submit = 3
db_call_after_report_call = 4
selopt_without_options = 5
selopt_without_signs = 6
invalid_sign = 7
report_call_after_db_error = 8
empty_option_list = 9
invalid_kind = 10
repeating_kind_a = 11
OTHERS = 12。
一周热门 更多>