Hi Chakri,
If you are displaying the report using OOABAP, then you can display the same using SET_TABLE_FOR_FIRST_DISPLAY method. I hope that in that case, we can use method... endmethod.
For this case, we are using REUSE_ALV_GRID_DISPLAY, then we have to use the FORM....ENDFORM for USER_COMMAND(handling the actions) and PF-STATUS. Correct me if I am wrong.
Go to SE80 and open the program SLVC_FULLSCREEN here you will find the GUI Status node. drill the node and rightclick -> copy the GUI Status STANDARD_FULLSCREEN. give the target program name (your alv grid program) and zguistatus name.
Add the 'UPLOAD' button in the Zguistatus.
For handling the button event the code snippet is below,
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = d_fieldcat
I_GRID_TITLE = 'Communications Infotype'
IT_EVENTS = it_event
TABLES
t_outtab = it_final.
FORM user_command USING l_comm TYPE syucomm
rs_selfield TYPE slis_selfield.
CASE l_comm.
WHEN '&UPLOAD'.
"Write the Upload statement here
ENDCASE.
ENDFORM.
FORM set_pf_status USING rt_extab TYPE slis_t_extab .
SET PF-STATUS 'ZSTANDARD_FULLSCREEN'.
ENDFORM.
Regards
Rajkumar Narasimman