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

本文介绍如何在ABAP程序中使用SELECTION-SCREEN配置选屏选项,通过定义多个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、付费专栏及课程。

余额充值