在写ABAP程序过程中,经常会遇到一些按照业务顾问要求定义好的分类、枚举等内容,在程序中写死了又不利于以后维护,(何况业务的问题说变就变,说不定那天业务顾问脑袋短路了,就提出新的分类要求,如此一来程序中各处用到的都要做相应的修改,特别是讨厌的输出显示部分),如果将这些分类等对应内容存放到selection-screen中的selection-option中,即解决了程序中的调用问题(selection-option是一个灵活的内表,可以存放单值、多值、区间等数据),又给用户提供了进行分类修改和自定义的界面
在选屏中添加SELECTION-OPTION。
SELECTION-SCREEN: BEGIN OF BLOCK FRAME02 WITH FRAME TITLE TEXT-003.
SELECTION-SCREEN COMMENT /1(30) COMM1. "
SELECT-OPTIONS S_MASS1 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS2 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS3 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS4 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS5 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS6 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS7 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS8 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS9 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS10 FOR ANLA-ANLKL NO INTERVALS.
SELECTION-SCREEN COMMENT /1(30) COMM2. "
SELECT-OPTIONS S_MASS11 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS12 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS13 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS14 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS15 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS16 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS17 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS18 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS19 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS20 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS21 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS22 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS23 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS24 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS25 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS26 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS27 FOR ANLC-BUKRS NO INTERVALS.
SELECTION-SCREEN: END OF BLOCK FRAME02.
INITIALIZATION.
* 设置选择屏幕-××××类型默认值
S_MASS1-SIGN = 'I'. S_MASS1-OPTION = 'EQ'. S_MASS1-LOW = '00001000'. APPEND S_MASS1.
S_MASS2-SIGN = 'I'. S_MASS2-OPTION = 'EQ'. S_MASS2-LOW = '00001001'. APPEND S_MASS2.
S_MASS3-SIGN = 'I'. S_MASS3-OPTION = 'EQ'. S_MASS3-LOW = '00002000'. APPEND S_MASS3.
S_MASS4-SIGN = 'I'. S_MASS4-OPTION = 'EQ'. S_MASS4-LOW = '00002200'. APPEND S_MASS4.
S_MASS5-SIGN = 'I'. S_MASS5-OPTION = 'EQ'. S_MASS5-LOW = '00003000'. APPEND S_MASS5.
S_MASS6-SIGN = 'I'. S_MASS6-OPTION = 'EQ'. S_MASS6-LOW = '00004000'. APPEND S_MASS6.
S_MASS7-SIGN = 'I'. S_MASS7-OPTION = 'EQ'. S_MASS7-LOW = '00004200'. APPEND S_MASS7.
S_MASS8-SIGN = 'I'. S_MASS8-OPTION = 'EQ'. S_MASS8-LOW = '00004400'. APPEND S_MASS8.
S_MASS9-SIGN = 'I'. S_MASS9-OPTION = 'EQ'. S_MASS9-LOW = '00005000'. APPEND S_MASS9.

* 设置选择屏幕-×××××类型默认值
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '020'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '030'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '100'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '101'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '103'. APPEND S_MASS11.
…… ……(略)
然后在选屏中结合 设置变式 ,就可以满足未来分类变化的需要了
在选屏中添加SELECTION-OPTION。
SELECTION-SCREEN: BEGIN OF BLOCK FRAME02 WITH FRAME TITLE TEXT-003.
SELECTION-SCREEN COMMENT /1(30) COMM1. "
SELECT-OPTIONS S_MASS1 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS2 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS3 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS4 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS5 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS6 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS7 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS8 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS9 FOR ANLA-ANLKL NO INTERVALS.
SELECT-OPTIONS S_MASS10 FOR ANLA-ANLKL NO INTERVALS.
SELECTION-SCREEN COMMENT /1(30) COMM2. "
SELECT-OPTIONS S_MASS11 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS12 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS13 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS14 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS15 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS16 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS17 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS18 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS19 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS20 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS21 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS22 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS23 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS24 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS25 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS26 FOR ANLC-BUKRS NO INTERVALS.
SELECT-OPTIONS S_MASS27 FOR ANLC-BUKRS NO INTERVALS.
SELECTION-SCREEN: END OF BLOCK FRAME02.
填充这些SELECTION-OPTION。
INITIALIZATION.
* 设置选择屏幕-××××类型默认值
S_MASS1-SIGN = 'I'. S_MASS1-OPTION = 'EQ'. S_MASS1-LOW = '00001000'. APPEND S_MASS1.
S_MASS2-SIGN = 'I'. S_MASS2-OPTION = 'EQ'. S_MASS2-LOW = '00001001'. APPEND S_MASS2.
S_MASS3-SIGN = 'I'. S_MASS3-OPTION = 'EQ'. S_MASS3-LOW = '00002000'. APPEND S_MASS3.
S_MASS4-SIGN = 'I'. S_MASS4-OPTION = 'EQ'. S_MASS4-LOW = '00002200'. APPEND S_MASS4.
S_MASS5-SIGN = 'I'. S_MASS5-OPTION = 'EQ'. S_MASS5-LOW = '00003000'. APPEND S_MASS5.
S_MASS6-SIGN = 'I'. S_MASS6-OPTION = 'EQ'. S_MASS6-LOW = '00004000'. APPEND S_MASS6.
S_MASS7-SIGN = 'I'. S_MASS7-OPTION = 'EQ'. S_MASS7-LOW = '00004200'. APPEND S_MASS7.
S_MASS8-SIGN = 'I'. S_MASS8-OPTION = 'EQ'. S_MASS8-LOW = '00004400'. APPEND S_MASS8.
S_MASS9-SIGN = 'I'. S_MASS9-OPTION = 'EQ'. S_MASS9-LOW = '00005000'. APPEND S_MASS9. 
* 设置选择屏幕-×××××类型默认值
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '020'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '030'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '100'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '101'. APPEND S_MASS11.
S_MASS11-SIGN = 'I'. S_MASS11-OPTION = 'EQ'. S_MASS11-LOW = '103'. APPEND S_MASS11.
…… ……(略) 然后在选屏中结合 设置变式 ,就可以满足未来分类变化的需要了
本文介绍如何在ABAP程序中使用SELECTION-SCREEN配置选屏选项,通过定义多个SELECT-OPTIONS实现灵活的参数输入,便于后续业务分类的变化。
713

被折叠的 条评论
为什么被折叠?



