‎2009 Mar 12 10:25 AM
Hi,
After entering some values into the cells of the ALV which are editable
these values are in the debugger not visible. What has to be done. ?
The entered values should be visible in the debugger
CALL METHOD ref_alv->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
* CALL METHOD ref_alv->set_ready_for_input
* EXPORTING
* i_ready_for_input = 1.
CREATE OBJECT ref_alv_events.
SET HANDLER ref_alv_events->handle_data_changed FOR ref_alv.
CALL METHOD ref_alv->set_table_for_first_display
EXPORTING
is_layout = gv_layout
it_toolbar_excluding = it_toolbar_excluding " TYPE UI_FUNCTIONS
CHANGING
it_fieldcatalog = gt_fcat
it_outtab = <outtab>
EXCEPTIONS
OTHERS = 4.Please use an informative subject. I don't see what "refresh" has to do with the question or code you are posting.
Edited by: Rob Burbank on Mar 12, 2009 9:21 AM
‎2009 Mar 12 11:59 AM
Hi,
Use this code to reflect data changes from alv output to internal table.
" to reflect the data changed into internal table
DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
IF ref_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
ENDIF.
IF NOT ref_grid IS INITIAL.
CALL METHOD ref_grid->check_changed_data.
ENDIF.
Hope this helps you.
Regards,
Tarun
‎2009 Mar 12 11:58 AM
You need to use one method of class CL_GUI_ALV_GRID
The method name is CHECK_CHANGED_DATA.
call this method and you will get data in your internal table which you displayed in ALV.
‎2009 Mar 12 11:59 AM
Hi,
Use this code to reflect data changes from alv output to internal table.
" to reflect the data changed into internal table
DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
IF ref_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
ENDIF.
IF NOT ref_grid IS INITIAL.
CALL METHOD ref_grid->check_changed_data.
ENDIF.
Hope this helps you.
Regards,
Tarun
‎2009 Mar 12 12:19 PM
Tarun where must this code be inserted. within local event class orbefore calling
CALL METHOD ref_alv->set_table_for_first_display
Regards
sas
‎2009 Mar 12 12:24 PM
Hi,
As you are displaying data in ALV, you must be including code to handle the pf-status command in the program.
Say you have create a button with function code SAVE to save the changes into internal table done at runtime. So include this code when sy-ucomm = SAVE.
CASE sy-ucomm.
WHEN 'SAVE'.
" to reflect the data changed into internal table
DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
IF ref_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
ENDIF.
IF NOT ref_grid IS INITIAL.
CALL METHOD ref_grid->check_changed_data.
ENDIF.
ENDCASE.
Now when you make changes in the editable alv grid and click SAVE button then the records will be modified in the internal table.
Hope this helps you.
Regards,
Tarun
‎2009 Mar 12 1:00 PM
I have inserted this code within my local class for event handling .
THis method will be called if the user hits ENTER .
But this seems like a loop. It is not working
METHOD handle_data_changed.
DATA: le_row TYPE i,
le_value(15) TYPE c,
le_col TYPE i,
les_row_id TYPE lvc_s_row,
les_col_id TYPE lvc_s_col,
les_row_no TYPE lvc_s_roid.
CLEAR: me->mo_data_changed.
IF ref_alv IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_alv.
ENDIF.
IF NOT ref_alv IS INITIAL.
CALL METHOD ref_alv->check_changed_data.
ENDIF.
.....
.....