有時候會有用戶要求顯示出來的ALV立即就是升序或者降序,或者是上下同一個字段值一樣的情況顯示一次,如
變為
這個時候內表用SORT有時候會不好用,可以使用函數
REUSE_ALV_GRID_DISPLAY
自帶的排序屬性參數---》it_sort. 布局也是需要調用相關的參數i_save。
DATA:IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV, WA_LAYOUT TYPE SLIS_LAYOUT_ALV, IT_SORT TYPE SLIS_T_SORTINFO_ALV, WA_SORT TYPE SLIS_SORTINFO_ALV. SELECT * FROM EKPO INTO TABLE @DATA(IT_EKPO) UP TO 50 ROWS. *SORT IT_EKPO BY EBELN. *CL_DEMO_OUTPUT=>DISPLAY_DATA( IT_EKPO ). WA_SORT-FIELDNAME = 'EBELN'. "對需要排序的字段進行賦值 WA_SORT-UP = 'X'."up是升序,down是降序 APPEND WA_SORT TO IT_SORT. CLEAR WA_SORT. DATA:POS TYPE I. POS = 1. WA_FIELDCAT-COL_POS = POS. WA_FIELDCAT-FIELDNAME = 'EBELN'. WA_FIELDCAT-TABNAME = 'IT_EKPO'. WA_FIELDCAT-SELTEXT_M = '采購訂單號'. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. POS = POS + 1. WA_FIELDCAT-COL_POS = POS. WA_FIELDCAT-FIELDNAME = 'BUKRS'. WA_FIELDCAT-TABNAME = 'IT_EKPO'. WA_FIELDCAT-SELTEXT_M = '公司代碼'. APPEND WA_FIELDCAT TO IT_FIELDCAT. CLEAR WA_FIELDCAT. POS = POS + 1. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID IS_LAYOUT = WA_LAYOUT IT_FIELDCAT = IT_FIELDCAT IT_SORT = IT_SORT[] "這里不能忘記調用參數 I_SAVE = 'A'"這個是生成布局的參數 TABLES T_OUTTAB = IT_EKPO.
界面如下:

