*下面的代碼是在alv字段中修改字段的內容,點擊保存后就可以保存數據至數據表。
TABLES: spfli.
DATA:
wa_fieldcat TYPE lvc_s_fcat , " 相當於工作區
i_fieldcat TYPE lvc_t_fcat , " 存放輸出欄位名稱的列表
i_layout TYPE lvc_s_layo . " 負責整個ALV的全局屬性
DATA tab_spfli LIKE TABLE OF spfli WITH HEADER LINE. " 定義內表
DATA wa_spfli TYPE spfli.
DATA it_spfli LIKE STANDARD TABLE OF spfli. " 定義內表
DATA lt_spfli TYPE spfli.
SELECT * FROM spfli
INTO CORRESPONDING FIELDS OF TABLE tab_spfli. "將數據表中的數據存入內表中
PERFORM getfield.
PERFORM is_layout.
DATA: l_user_command TYPE slis_formname VALUE 'USER_COMMAND'. "定義返回事件
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' "定義顯示內表
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_USER_COMMAND = l_user_command
IS_LAYOUT_LVC = i_layout
IT_FIELDCAT_LVC = i_fieldcat
I_SAVE = 'A'
TABLES
t_outtab = tab_spfli
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
FORM getfield. "定義顯示字段
wa_fieldcat-col_pos = 1 .
wa_fieldcat-fieldname = 'CARRID'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '航線代碼'.
wa_fieldcat-fix_column = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 2 .
wa_fieldcat-fieldname = 'CONNID'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '航班連接號'.
wa_fieldcat-fix_column = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 3 .
wa_fieldcat-fieldname = 'CITYFROM'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '起飛城市'.
wa_fieldcat-edit = 'X'. "設置成可編輯狀態
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 4 .
wa_fieldcat-fieldname = 'CITYTO'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '到達城市'.
wa_fieldcat-edit = 'X'. "設置成可編輯狀態
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 5 .
wa_fieldcat-fieldname = 'DERTIME'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '出發時間'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 6 .
wa_fieldcat-fieldname = 'ARRTIME'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext = '到達時間'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
ENDFORM.
FORM is_layout. "定義ALV顯示樣式
i_layout-ZEBRA = 'X'.
i_layout-CWIDTH_OPT = 'X'.
ENDFORM.
FORM user_command USING r_ucomm LIKE sy-ucomm "執行事件