1.先TABLES:mara这是先定义参考表,select-options必须制定参考表
REPORT ztest_sum. TABLES:mara. SELECT-OPTIONS:s_matnr FOR mara-matnr. "select-options是一个值输入区间,其定义时必须制定参考表及参考字段 parameters:p_matnr1 like mara-matnr. " 建立单一的屏幕输入对象,其参考对象比较灵活,可以参考数据表字段,也可以参照具体数据元素。 parameters:p_matnr2 type matnr.
2.动态定义输入域的参考对象
动态对象的定义实际上是通过修改参考对象的地址来实现类型的变换,当参考对象的值与数据字典中的字段一致时,则会参考该数据字典字段类型建立屏幕对象,如下例:
DATA name TYPE string. SELECT-OPTIONS:s_matnr1 FOR (name). AT SELECTION-SCREEN OUTPUT. name = 'MARA-MATNR'.
屏幕输入域显示参数控制
select-options和parameters的显示参数控制机制基本类似,包括以下内容
1.OBLIGATORY必输项控制,selection-options一般只对下限值字段(LOW)字段有效。
2.NO-DISPLY显示控制,程序运行后屏幕上不显示该对象。
3.NO-EXTENSION多行输入控制,该属性仅仅针对于select-options有效,效果如下
4.VISIBLE LENGHT vlen显示长度控制,控制对象的显示长度,其取值范围为1~18.
5.NO INTERVALS输入范围值控制,仅仅针对select-options有效,加上该参数后,在屏幕上指挥显示上限值输入字段。
6.MODIF ID modid编辑组控制,设置对象为组,然后控制该组的是否显示是否文本框可以输入等,需要用到loop screen
PARAMETERS:p_matnr1 LIKE mara-matnr MODIF ID g1. PARAMETERS:p_matnr2 TYPE matnr MODIF ID g1. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF NOT screen-group1 IS INITIAL. IF screen-group1 = 'G1'. screen-input = 0. "文本框不可输入状态,可输入参数就为1 screen-invisible = 0. "显示该屏幕对象,不显示的话参数为1 MODIFY SCREEN. ENDIF. ENDIF. ENDLOOP.
效果如下: