In ALV GRID,there is a checkbox field.The edit property of this field is checked.So user can check or cancel check of specific record.On th application toolbar ,i place an button named 'DOWNLOAD'.The functional of this button is download records in the alv report which are checked. Before download i must get the checked record.But the internal table which the alv grid display with is not change.Even through i have checked some records in the alv report.Only i press some buttons on the alv standard toolbar.But this way is not so convenient for the user's daily operation. At last i found an very useful method of class CL_GUI_ALV_GRID.It is check_changed_data.In the PAI of 'DOWNLOAD' command, i call this method in the first time,to set the changed data in the alv report to the corsponding internal table.And then i can process this internal table furhter according to the requirement.
DATA: l_r_grid TYPE REF TO CL_GUI_ALV_GRID.
DATA: l_v_valid TYPE C.
l_r_grid->check_changed_data( IMPORTING e_valid = l_v_valid ).
l_r_grid->refresh_table_display( ).