I am creating a dialog to allow user modif some customized fields in ALV. But a problem was met. In testing, after I finished the modification in ALV, I press a button on toolbar "save". I direct the i_callback_user_command to my subroutine "FRM_USER_COMM". At the breakopion set in this subroutine, I found the internal table used for ALV has not been changed at all. But if I process a double click on the ALV before pressing "save", the data in internal table has been changed. Thanks.
So, please help to coach me how I can do for this case?
*the setup for user input. It is a checkbox.
w_fieldcat-fieldname = 'CHK'.
w_fieldcat-col_pos = '1'.
w_fieldcat-checkbox = 'X'.
w_fieldcat-seltext_l = 'CHK'.
w_fieldcat-edit = 'X'.
APPEND w_fieldcat TO t_fcat.
*call alv
FORM FRM_ALV_SHOW .
DATA l_repid LIKE sy-repid VALUE sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_pf_status_set = 'FRM_SET_GUISTA'
i_callback_user_command = 'FRM_USER_COMM'
i_grid_title = 'DOC NUMBERING'
is_layout = LT_LAYO
it_fieldcat = LIT_FCAT[]
i_save = 'X'
TABLES
t_outtab = IT_OUT
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE s003(zp) DISPLAY LIKE 'E'.
STOP.
ENDIF.
ENDFORM. " FRM_ALV_SHOW
*set GUI status
FORM FRM_SET_GUISTA USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STDSTA' EXCLUDING rt_extab.
ENDFORM. " FRM_SET_GUISTA
*process r_ucomm
FORM FRM_USER_COMM USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
CASE r_ucomm.
WHEN 'SAVE'.
PERFORM FRM_SAVE.
ENDCASE.