Function ALV可編輯列修改資料後與與內表資料同步問題
當我們使用FunctionALV,即“REUSE_ALV_GRID_DISPLAY”顯示ALV時,會遇到設定某些列為可編輯狀態的情況,可是編輯後發現對應的內表資料並沒有隨之改變,那麼該怎麼解決這個問題呢?
其實呢,“REUSE_ALV_GRID_DISPLAY”這個FM裡面是有引數控制的。具體引數是“I_GRID_SETTINGS”,我們先來定義下:
DATA: I_GRID_SETTINGS TYPE LVC_S_GLAY.
然後再I_GRID_SETTINGS-EDT_CLL_CB = ‘X’。 這個“EDT_CLL_CB”的描述是“ALV 控制:退出可編輯單元格時回撥”。這第二步做了之後就是使用那個FM了。
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_CALLBACK_PF_STATUS_SET = 'MENU_SET'
I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = LAYOUT
IT_FIELDCAT =
I_SAVE = 'A'
TABLES
T_OUTTAB = G_IT_ALV
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-
ENDIF.