1. 程式人生 > >Function ALV可編輯列修改資料後與與內表資料同步問題

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              

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-
MSGV3 SY-MSGV4.
  ENDIF.