Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

REFRESH IN ALV

Former Member
0 Likes
1,026

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.

6 REPLIES 6
Read only

Former Member
0 Likes
925

Sudhakar!!

Can you please e more clear with your question.

Read only

Former Member
0 Likes
925

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

Read only

former_member195698
Active Contributor
0 Likes
925

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)

Read only

Former Member
0 Likes
925

When you press the refresh button, just re-execute whatever is done in START OF SELECTION and END OF SELECTION.

Rob

Read only

Former Member
0 Likes
925

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>

Read only

JoffyJohn
Active Contributor
0 Likes
925

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.