Skip to Content
0
Former Member
Dec 27, 2007 at 09:36 AM

Data modification in ALV

34 Views

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.