DATA: fldname TYPE string .
DATA: fld_list LIKE wltab_t-cols.
DATA: col TYPE cxtab_column. "column of table contro
DATA:strtab TYPE TABLE OF string WITH HEADER LINE.
REFRESH fld_list.
CLEAR col.
LOOP AT wltab_t-cols INTO col.
IF col-selected = 'X'.
APPEND col TO fld_list.
ENDIF.
ENDLOOP.
SORT fld_list BY index.
CLEAR:fldname .
LOOP AT fld_list INTO col.
CLEAR :strtab,strtab[].
SPLIT col-screen-name AT '-' INTO TABLE strtab.
READ TABLE strtab INDEX 2.
IF sy-subrc <> 0 .
READ TABLE strtab INDEX 1.
ENDIF.
fldname = strtab .
ENDLOOP.
IF p_stype = 'D'."升序
SORT wltab1 DESCENDING BY (fldname) .
ELSE.
SORT wltab1 BY (fldname) .
ENDIF.
ENDFORM. " SORT