Seçim ekranının bileşenlerinden olan Select-Options ifadeleri bize seçim tablosu bildirir. Seçim tablosundaki veriler, bazen harici formattan dahili formata dönüştürme sırasında, sistem INPUT alanındaki girdinin sıfır eklenmesini sağlamaz.
Bunu dinamik olarak sağlamak için aşağıdaki methodu kullanabilirsiniz.
Static method tanımlıyoruz.
CLASS-METHODS CONV_INPUT_RANGE EXPORTING E_DURUM TYPE ZUTIL_S_DURUM CHANGING IT_INPUT TYPE ANY TABLE.
METHOD CONV_INPUT_RANGE. DATA: EXREF TYPE REF TO CX_ROOT. TRY. DATA: LT_TABLE TYPE REF TO CL_ABAP_TABLEDESCR, LT_DATA TYPE REF TO DATA. GET REFERENCE OF IT_INPUT INTO LT_DATA. LT_TABLE ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA_REF( LT_DATA ). LOOP AT IT_INPUT ASSIGNING FIELD-SYMBOL(<FS_OUT>). LOOP AT LT_TABLE->KEY ASSIGNING FIELD-SYMBOL(<FS_FIELDS>). ASSIGN COMPONENT <FS_FIELDS> OF STRUCTURE <FS_OUT> TO FIELD-SYMBOL(<FS_VALUE>). IF <FS_VALUE> IS ASSIGNED AND ( <FS_FIELDS> EQ 'LOW' OR <FS_FIELDS> EQ 'HIGH' ). <FS_VALUE> = |{ <FS_VALUE> ALPHA = IN }|. ENDIF. ENDLOOP. ENDLOOP. CATCH CX_ROOT INTO EXREF. E_DURUM-DURUM = ZUTIL_CL_DEFS=>C_DURUM_ERROR. E_DURUM-DURUM_TEXT = EXREF->GET_TEXT( ). ENDTRY. ENDMETHOD.
Çağrılma yöntemi de aşağıdaki gibidir;
ZUTIL_CL_GU=>CONV_INPUT_RANGE( CHANGING IT_INPUT = S_MATNR[] ).