今天弄内表的时候发现向内表里填数据时用"APPEND...SORTED BY f"这条语句时,排序是按"f"关键字降序的,而且MS不能改.嗯,跟直接SORT的默认排序相反.
下面是程序和F1帮助.
*----------------------------------------------------
TYPES: BEGIN OF COMPANIES_TYPE,
NAME(10), SALES TYPE I,
END OF COMPANIES_TYPE.
DATA: COMPANIES TYPE STANDARD TABLE OF COMPANIES_TYPE
INITIAL SIZE 3,
WA_COMPANIES TYPE COMPANIES_TYPE.
WA_COMPANIES-NAME = 'big'.
WA_COMPANIES-SALES = 90.
APPEND WA_COMPANIES TO COMPANIES.
WA_COMPANIES-NAME = 'small'.
WA_COMPANIES-SALES = 10.
APPEND WA_COMPANIES TO COMPANIES.
WA_COMPANIES-NAME = 'too small'.
WA_COMPANIES-SALES = 5.
APPEND WA_COMPANIES TO COMPANIES.
WA_COMPANIES-NAME = 'middle'.
WA_COMPANIES-SALES = 50.
APPEND WA_COMPANIES TO COMPANIES SORTED BY SALES.
loop at companies into wa_companies.
WRITE: / WA_COMPANIES-SALES.
endloop.
*------------------------------------------------------
下面是程序和F1帮助.
*----------------------------------------------------
TYPES: BEGIN OF COMPANIES_TYPE,
NAME(10), SALES TYPE I,
END OF COMPANIES_TYPE.
DATA: COMPANIES TYPE STANDARD TABLE OF COMPANIES_TYPE
INITIAL SIZE 3,
WA_COMPANIES TYPE COMPANIES_TYPE.
WA_COMPANIES-NAME = 'big'.
WA_COMPANIES-SALES = 90.
APPEND WA_COMPANIES TO COMPANIES.
WA_COMPANIES-NAME = 'small'.
WA_COMPANIES-SALES = 10.
APPEND WA_COMPANIES TO COMPANIES.
WA_COMPANIES-NAME = 'too small'.
WA_COMPANIES-SALES = 5.
APPEND WA_COMPANIES TO COMPANIES.
WA_COMPANIES-NAME = 'middle'.
WA_COMPANIES-SALES = 50.
APPEND WA_COMPANIES TO COMPANIES SORTED BY SALES.
loop at companies into wa_companies.
WRITE: / WA_COMPANIES-SALES.
endloop.
*------------------------------------------------------
APPEND [wa TO] itab SORTED BY f [ASSIGNING <fs>|REFERENCE INTO dref].
Effect
Inserts the new entry into table and re-sorts the table by the sub-field f in descending order. This only makes sense if the table was sorted beforehand. When the number of table entries reaches the INITIAL SIZE parameter value, the last entry is deleted if the value f of a new entry is greater (particularly suitable for ranked lists). You can only sort by one component, and may only use this variant with a STANDARD TABLE.