Application Development 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: 

Refresh ALv

Former Member
0 Kudos

Hi,

How do I refresh AL Hierechical list.?

I'm using the FM REUSE_ALV_HIERSEQ_LIST_DISPLAY

5 REPLIES 5

former_member196517
Contributor
0 Kudos

have you checked,

class CL_SALV_HIERSEQ_TABLE mehod REFRESH

(Parameter REFRESH_MODE: SOFT)

0 Kudos

Im not using OO ABAP.

Using FM REUSE_ALV_HIERSEQ_LIST_DISPLAY

Former Member
0 Kudos

rs_selfield-refresh = 'X' in Callback-Form should help

Cheers

carsten

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = z_repid

i_callback_pf_status_set = 'ZPF_STATUS_SET'

i_callback_user_command = '<b>ZUSER_COMMAND</b>'

is_layout = z_lay

it_fieldcat = z_fcat[]

it_event_exit = z_event_exit[]

i_tabname_header = z_tnam_header

i_tabname_item = z_tnam_item

is_keyinfo = z_keyinfo

TABLES

t_outtab_header = z_ihead

t_outtab_item = z_ipos.

FORM <b>zuser_command</b> USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN '&REFRESH'.

rs_selfield-refresh = 'X'.

Former Member
0 Kudos

Hi,

While passing all field internal table u have to pass in to the FM

REUSE_ALV_FIELDCATALOG_MERGE

in above FM directly ur passing Internal table.

then u have following FM for displaying....

REUSE_ALV_HIERSEQ_LIST_DISPLAY

we are not passing values manually i think there is no need to clear thevalues.

<b>reward me if it is use full answer</b>

praveen

Former Member
0 Kudos

Hi

see this sample prog:

REPORT z_alv_grid_ctrl_refresh.
***********************************************************************
* ALV Grid Control - Refresh button                                   *
*---------------------------------------------------------------------*
* Steps :                                                             *
* - Create the report Z_ALV_GRID_CTRL_REFRESH                         *
* - Create the Dynpro 0100 (size 27x120)                              *
* - Add OKCODE (type OK) in the element list                          *
* - Modify the flow logic of dynpro 0100 :                            *
*   * PROCESS BEFORE OUTPUT.                                          *
*       MODULE status_0100.                                           *
*   * PROCESS AFTER INPUT.                                            *
*       MODULE user_command_0100.                                     *
* - Create a status named 'MAIN'                                      *
*   with the buttons : REFRESH BACK and EXIT                          *
*---------------------------------------------------------------------*

***********************************************************************
TYPES:
  BEGIN OF ty_mara,
    ernam TYPE mara-ernam,
    matnr TYPE mara-matnr,
    ersda TYPE mara-ersda,
    brgew TYPE mara-brgew,
  END OF ty_mara.

DATA:
  gt_mara TYPE STANDARD TABLE OF ty_mara.

DATA :
  go_container TYPE REF TO cl_gui_docking_container,
  go_alv_grid  TYPE REF TO cl_gui_alv_grid,

  okcode    TYPE syucomm,
  gv_okcode TYPE syucomm.

*---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM f_read_data.

  CALL SCREEN 100.

*---------------------------------------------------------------------*
*       Module  status_0100  OUTPUT
*---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.

  SET PF-STATUS 'MAIN'.

  IF go_container IS INITIAL.
    PERFORM create_and_init_alv.
  ENDIF.

ENDMODULE.                             " STATUS_0100  OUTPUT
*---------------------------------------------------------------------*
*       Module  user_command_0100  INPUT
*---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  gv_okcode = okcode.
  CLEAR okcode.

  CASE gv_okcode.
    WHEN 'BACK'.
      SET SCREEN 0.
    WHEN 'REFRESH'.
      PERFORM f_refresh_table.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
  ENDCASE.

ENDMODULE.                             " USER_COMMAND_0100  INPUT
*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.

  STATICS :
    l_rows TYPE i.

  ADD 1 TO l_rows.
  SELECT ernam matnr ersda brgew INTO TABLE gt_mara FROM mara
                                   UP TO l_rows ROWS.

  MESSAGE s208(00) WITH 'Reading data ...'.

ENDFORM.                               " F_READ_DATA
*---------------------------------------------------------------------*
*       Form  create_and_init_alv
*---------------------------------------------------------------------*
FORM create_and_init_alv.

* Macro definition
  DEFINE m_fieldcat.
    add 1 to ls_alv_cat-col_pos.
    ls_alv_cat-fieldname = &1.
    ls_alv_cat-ref_table = 'MARA'.
    append ls_alv_cat to lt_alv_cat.
  END-OF-DEFINITION.

  DATA:
    ls_variant TYPE disvariant,
    lt_alv_cat TYPE lvc_t_fcat,
    ls_alv_cat TYPE lvc_s_fcat,
    ls_alv_lay TYPE lvc_s_layo,
    l_offline  TYPE char1.

  CALL METHOD cl_gui_alv_grid=>offline
    RECEIVING
      e_offline = l_offline.

  IF l_offline EQ 0.
    CREATE OBJECT go_container
        EXPORTING
            extension = 2000
        EXCEPTIONS
            cntl_error = 1
            cntl_system_error = 2
            create_error = 3
            lifetime_error = 4
            lifetime_dynpro_dynpro_link = 5
            OTHERS                      = 6.
    IF sy-subrc NE 0.
      MESSAGE e208(00) WITH 'The control could not be created'.
    ENDIF.
  ENDIF.

* Create an instance of alv control
  CREATE OBJECT go_alv_grid
      EXPORTING i_parent = go_container.

* Build field catalog
  m_fieldcat 'ERNAM'.
  m_fieldcat 'MATNR'.
  m_fieldcat 'ERSDA'.
  m_fieldcat 'BRGEW'.

* Layout
  CLEAR ls_alv_lay.
  ls_alv_lay-zebra      = 'X'.
  ls_alv_lay-cwidth_opt = 'X'.

  ls_variant-report = sy-cprog.

* Display
  CALL METHOD go_alv_grid->set_table_for_first_display
    EXPORTING
      is_variant      = ls_variant
      is_layout       = ls_alv_lay
      i_save          = 'A'
    CHANGING
      it_outtab       = gt_mara[]
      it_fieldcatalog = lt_alv_cat.

ENDFORM.                               " CREATE_AND_INIT_ALV
*---------------------------------------------------------------------*
*      Form  F_REFRESH_TABLE
*---------------------------------------------------------------------*
FORM f_refresh_table.

  DATA: ls_layout TYPE lvc_s_layo.

  PERFORM f_read_data.

  CALL METHOD go_alv_grid->get_frontend_layout
    IMPORTING
      es_layout = ls_layout.

  ls_layout-cwidth_opt = 'X'.

  CALL METHOD go_alv_grid->set_frontend_layout
    EXPORTING
      is_layout = ls_layout.

  CALL METHOD go_alv_grid->refresh_table_display.

ENDFORM.                               " F_REFRESH_TABLE
********** END OF PROGRAM Z_ALV_GRID_CTRL_REFRESH *********************

1 

Cheers

Ravish

<b>

Reward if useful</b>