2007 Nov 10 1:09 PM
hi All,
I have 1 query, I added 1 refresh button in my alv list. if i select 1 field in my list it's navigate into standard standard trandaction code in change mode. if i enter some thing in that Tcode and save and come back.
Now I click the refresh button it should refresh ifself ( its execute the program itself ) and the changes should appers in in the list.
please help on this.
hi All,
I have 1 query, I added 1 refresh button in my alv list. if i select 1 field in my list it's navigate into standard standard trandaction code in change mode. if i enter some thing in that Tcode and save and come back.
Now I click the refresh button it should refresh ifself ( its execute the program itself ) and the changes should appers in in the list.
please help on this.
2007 Nov 10 4:17 PM
2007 Nov 11 9:45 PM
Hi
do like this
data: o_alv type ref to CL_SALV_TABLE.
then use the method
CALL METHOD o_alv->refresh
EXPORTING
refresh_mode = if_salv_c_refresh=>soft.
Regards
Anji
2007 Nov 11 11:48 PM
you can create a perform which will fetch the data from database, prepare internal table for alv display.
now, whenever you call refresh button ... under the refresh function code....call above perform....( so the data in the alv will be updated with new data)
2007 Nov 12 12:34 AM
When you press the refresh button, just re-execute whatever is done in START OF SELECTION and END OF SELECTION.
Rob
2007 Nov 17 7:22 AM
HI
see this program where it refreshes the ouput for every 5 sec
*&---------------------------------------------------------------------*
*& Report ZZ_ALV2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZZ_ALV2.
*>*********************************************************************
* This report displays User's info (SM04) using the FM : *
* REUSE_ALV_LIST_DISPLAY *
* The list is auto-refreshed (refresh time : 5 seconds) *
*---------------------------------------------------------------------*
TYPE-POOLS: slis. " ALV Global Types
DATA :
gt_user LIKE uinfo OCCURS 0 WITH HEADER LINE. " User info in SM04
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM f_read_data.
PERFORM f_display_data.
*---------------------------------------------------------------------*
* Form F_LIRE_DATA
*---------------------------------------------------------------------*
FORM f_read_data.
REFRESH gt_user.
* Get User's info
CALL FUNCTION 'THUSRINFO'
TABLES
usr_tabl = gt_user.
* Wait in a task
PERFORM f_call_rfc_wait.
ENDFORM. " F_READ_DATA
*---------------------------------------------------------------------*
* Form F_DISPLAY_DATA
*---------------------------------------------------------------------*
FORM f_display_data.
DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DEFINE m_event_exit.
clear ls_event_exit.
ls_event_exit-ucomm = &1.
ls_event_exit-after = 'X'.
append ls_event_exit to lt_event_exit.
END-OF-DEFINITION.
DATA :
ls_layout TYPE slis_layout_alv,
lt_sort TYPE slis_t_sortinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
lt_event_exit TYPE slis_t_event_exit,
ls_event_exit TYPE slis_event_exit.
* Build Sort Table
m_sort 'ZEIT'.
* Build Event Exit Table
m_event_exit '&NTE'. " Refresh
ls_layout-zebra = 'X'.
ls_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
i_structure_name = 'UINFO'
it_sort = lt_sort
it_event_exit = lt_event_exit
TABLES
t_outtab = gt_user.
ENDFORM. " F_DISPLAY_DATA
*---------------------------------------------------------------------*
* FORM USER_COMMAND *
*---------------------------------------------------------------------*
FORM user_command USING i_ucomm TYPE syucomm
is_selfield TYPE slis_selfield. "#EC CALLED
CASE i_ucomm.
WHEN '&NTE'.
PERFORM f_read_data.
is_selfield-refresh = 'X'.
SET USER-COMMAND '&OPT'. " Optimize columns width
ENDCASE.
ENDFORM. " USER_COMMAND
*---------------------------------------------------------------------*
* Form F_CALL_RFC_WAIT
*---------------------------------------------------------------------*
FORM f_call_rfc_wait.
DATA lv_mssg(80). "#EC NEEDED
* Wait in a task
CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'
PERFORMING f_task_end ON END OF TASK
EXPORTING
seconds = 5 " Refresh time
busy_waiting = space
EXCEPTIONS
RESOURCE_FAILURE = 1
communication_failure = 2 MESSAGE lv_mssg
system_failure = 3 MESSAGE lv_mssg
OTHERS = 4.
ENDFORM. " F_CALL_RFC_WAIT
*---------------------------------------------------------------------*
* Form F_TASK_END
*---------------------------------------------------------------------*
FORM f_task_end USING u_taskname.
DATA lv_mssg(80). "#EC NEEDED
* Receiving task results
RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'
EXCEPTIONS
RESOURCE_FAILURE = 1
communication_failure = 2 MESSAGE lv_mssg
system_failure = 3 MESSAGE lv_mssg
OTHERS = 4.
CHECK sy-subrc EQ 0.
SET USER-COMMAND '&NTE'. " Refresh
ENDFORM. " F_TASK_END
*************** END OF PROGRAM Z_ALV_AUTO_REFRESH *********************<b>Reward if usefull</b>
2007 Nov 19 2:25 AM
In the form
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
IF sy-ucomm = 'REFR'.
REFRESH gt_fieldcat[].
CLEAR gs_layout.
CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
IMPORTING
es_layout = gs_layout
et_fieldcat = gt_fieldcat[]
et_sort = gt_sort[]
et_filter = gt_filter[]
ES_GRID_SCROLL =
es_variant = gs_variant
ET_MARKED_COLUMNS =
ET_FILTERED_ENTRIES =
ET_FIELDCAT_BACKEND =
ES_PRINT =
EXCEPTIONS
NO_INFOS = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
PERFORM all_tasks.
ENDIF.
endform.
FORM all_tasks.
ls_event-name = 'USER_COMMAND'.
ls_event-form = 'USER_COMMAND'.
APPEND ls_event TO gt_event.
ls_event-name = 'PF_STATUS_SET'.
ls_event-form = 'SUB_PF_STATUS'.
APPEND ls_event TO gt_event.
PERFORM select_data. "the data selection query for the ALV
IF sy-ucomm <> 'REFR'.
PERFORM layout_init USING gs_layout.
PERFORM fieldcat_init USING gt_fieldcat[].
ENDIF.
PERFORM display. "to call the reuse ALV
endform.