使用SELECT-OPTIONS存放分类、枚举等内容,提高程序的可定制性。

 在写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.

填充这些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.
     …… ……(略) 

然后在选屏中结合 设置变式 ,就可以满足未来分类变化的需要了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值