Refresh ALV

DATA:
  ls_grid_settings TYPE lvc_s_glay.

...
* synchronize internal table after leaving an edited cell
ls_grid_settings-edt_cll_cb = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_grid_settings         = ls_grid_settings
    it_fieldcat             = lt_fcat
  TABLES
    t_outtab                = lt_popup.

 

DATA:
  lv_repid         LIKE sy-repid.

...
lv_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program      = lv_repid
    i_callback_user_command = 'USER_COMMAND'
    it_fieldcat             = lt_fcat
  TABLES
    t_outtab                = lt_popup.

FORM user_command USING ucomm LIKE sy-ucomm
                        selfield TYPE slis_selfield.

  DATA:
    lo_grid TYPE REF TO cl_gui_alv_grid.

  IF lo_grid IS INITIAL.
    CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
      IMPORTING
        e_grid = lo_grid.
  ENDIF.
  IF NOT lo_grid IS INITIAL.
    CALL METHOD lo_grid->check_changed_data.
  ENDIF.
ENDFORM.
form user_command using r_ucomm     like sy-ucomm
rs_selfield type slis_selfield.
data: ref_grid type ref to cl_gui_alv_grid, l_valid type c.

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
importing
e_valid = l_valid.
endif.
rs_selfield-refresh = "X".

...

if not ref_grid is initial.
call method ref_grid->refresh_table_display( ) .
endif.

endform.

  

DATA ref_grid TYPE REF TO cl_gui_alv_grid.

* to reflect the data changed into internal table
      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->refresh_table_display.
      ENDIF.

******************************************************
Option -2.

* to reflect the data changed into internal table
      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.
* refresh the ALV Grid output from internal table
      l_selfield-refresh = gc_x.

  

猜你喜欢

转载自www.cnblogs.com/yjyongil/p/12292622.html
alv