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: 

ALV Refresh

Former Member
0 Kudos

hi

I used two ALV Grids in two screens ,if we change data in first screen grid that should effect in second screen Grid also , but now in second scree first time i am getting correct values but next time if i go same previous data is coming in GRID is there any explicit method to clear Grid contents.i CLEAR the Internal table contents also .thx

4 REPLIES 4

former_member745780
Active Participant
0 Kudos

Hello

use method FREE of class CL_GUI_ALV_GRID or method for refresh grid display use REFRESH_TABLE_DISPLAY or use syntax clear alv_grid.

Thanks

Former Member
0 Kudos

Hi,

It will be achieved by refresh_table_display.

Go thru following code

REPORT z_oops_alv_grid.

TYPES : BEGIN OF tw_ekko,

mark TYPE flag,

ebeln TYPE ebeln,

bukrs TYPE bukrs,

bstyp TYPE ebstyp,

bsart TYPE esart,

aedat TYPE erdat,

END OF tw_ekko,

tt_ekko TYPE TABLE OF tw_ekko.

TYPES : BEGIN OF tw_ekpo,

ebeln TYPE ebeln,

ebelp TYPE ebelp,

statu TYPE astat,

aedat TYPE paedt,

END OF tw_ekpo,

tt_ekpo TYPE TABLE OF tw_ekpo.

DATA: wa_ekko TYPE tw_ekko,

it_ekko TYPE tt_ekko.

DATA: wa_ekpo TYPE tw_ekpo,

it_ekpo TYPE tt_ekpo.

DATA: cl_container1 TYPE REF TO cl_gui_custom_container,

cl_container2 TYPE REF TO cl_gui_custom_container,

cl_container3 TYPE REF TO cl_gui_custom_container,

cl_alv1 TYPE REF TO cl_gui_alv_grid,

cl_alv2 TYPE REF TO cl_gui_alv_grid,

cl_alv3 TYPE REF TO cl_gui_alv_grid.

DATA : v_ebeln TYPE ebeln.

DATA: i_fldcat TYPE lvc_t_fcat,

i_fldcat1 TYPE lvc_t_fcat,

wa_fldcat LIKE LINE OF i_fldcat.

----


  • CLASS lcl_event DEFINITION

----


*

----


CLASS lcl_event DEFINITION.

PUBLIC SECTION.

METHODS: toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object e_interactive,

usercommand FOR EVENT user_command OF cl_gui_alv_grid IMPORTING e_ucomm.

ENDCLASS. "lcl_event DEFINITION

----


  • CLASS lcl_event IMPLEMENTATION

----


*

----


CLASS lcl_event IMPLEMENTATION.

METHOD toolbar.

PERFORM toolbar CHANGING e_object e_interactive

e_object->mt_toolbar.

ENDMETHOD. "lcl_event IMPLEMENTATION

METHOD usercommand.

PERFORM user_command CHANGING e_ucomm.

ENDMETHOD. "usercommand

ENDCLASS. "lcl_event IMPLEMENTATION

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE t001.

SELECT-OPTIONS: so_ebeln FOR v_ebeln.

SELECTION-SCREEN END OF BLOCK blk1.

START-OF-SELECTION.

CALL SCREEN 100.

DATA: obj_event TYPE REF TO lcl_event.

CREATE OBJECT obj_event.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'STATUS_100'.

SET TITLEBAR 'TITLE_100'.

SELECT ebeln

bukrs

bstyp

bsart

aedat

INTO CORRESPONDING FIELDS OF TABLE it_ekko

FROM ekko

WHERE ebeln IN so_ebeln.

IF cl_alv1 IS INITIAL.

CREATE OBJECT cl_container1 EXPORTING container_name = 'CONT1'.

CREATE OBJECT cl_alv1 EXPORTING i_parent = cl_container1.

PERFORM fieldcatalog.

CALL METHOD cl_alv1->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

i_save = 'X'

  • I_DEFAULT = 'X'

  • is_layout =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

  • IR_SALV_ADAPTER =

CHANGING

it_outtab = it_ekko

it_fieldcatalog = i_fldcat

  • it_sort =

  • IT_FILTER =

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CREATE OBJECT obj_event.

SET HANDLER : obj_event->toolbar FOR cl_alv1.

SET HANDLER : obj_event->usercommand FOR cl_alv1.

CALL METHOD cl_alv1->set_toolbar_interactive.

ELSE.

CALL METHOD cl_alv1->refresh_table_display.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Form toolbar

&----


  • text

----


  • <--P_E_OBJECT text

  • <--P_E_INTERACTIVE text

  • <--P_E_OBJECT_>MT_toolbar text

----


FORM toolbar CHANGING p_e_object TYPE REF TO cl_alv_event_toolbar_set

p_e_interactive

mt_toolbar TYPE ttb_button.

DATA wal_button TYPE stb_button.

wal_button-text = 'ITEM DETAILS'.

wal_button-quickinfo = 'PROCEED'.

wal_button-function = 'ITM1'.

wal_button-butn_type = 0.

wal_button-disabled = space.

INSERT wal_button INTO p_e_object->mt_toolbar INDEX 1.

ENDFORM. " toolbar

&----


*& Form user_command

&----


  • text

----


  • <--P_E_UCOMM text

----


FORM user_command CHANGING p_e_ucomm.

CASE p_e_ucomm.

WHEN 'ITM1'.

LEAVE TO SCREEN 200.

ENDCASE.

ENDFORM. " user_command

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE status_0200 OUTPUT.

SET PF-STATUS 'STATUS_200'.

SET TITLEBAR 'TITLE_200'.

CLEAR wa_ekko.

LOOP AT it_ekko INTO wa_ekko WHERE mark = 'X'.

  • READ TABLE it_ekko INTO wa_ekko WITH KEY mark = 'X'.

IF sy-subrc = 0.

CLEAR wa_ekPo.

SELECT SINGLE ebeln

ebelp

statu

aedat

FROM ekpo

INTO wa_ekpo

WHERE ebeln = wa_ekKo-ebeln.

APPEND wa_ekPo TO it_ekPo.

ENDIF.

ENDLOOP.

IF cl_alv2 IS INITIAL.

CREATE OBJECT cl_container2 EXPORTING container_name = 'CONT2'.

CREATE OBJECT cl_alv2 EXPORTING i_parent = cl_container2.

PERFORM fieldcatalog1.

CALL METHOD cl_alv2->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

i_save = 'X'

  • I_DEFAULT = 'X'

  • is_layout =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

  • IR_SALV_ADAPTER =

CHANGING

it_outtab = it_ekPo

it_fieldcatalog = i_fldcat1

  • it_sort =

  • IT_FILTER =

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ELSE.

CALL METHOD cl_ALV2->refresh_table_display.

ENDIF.

ENDMODULE. " STATUS_0200 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

IF sy-ucomm = 'BACK' OR sy-ucomm = 'EXIT' OR sy-ucomm = 'CANCEL'.

LEAVE TO SCREEN 0.

ENDIF.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module USER_COMMAND_0200 INPUT

&----


  • text

----


MODULE user_command_0200 INPUT.

IF sy-ucomm = 'BACK'.

LEAVE TO SCREEN 100.

ENDIF.

IF sy-ucomm = 'EXIT' OR sy-ucomm = 'CANCEL'.

LEAVE TO SCREEN 0.

ENDIF.

ENDMODULE. " USER_COMMAND_0200 INPUT

&----


*& Form fieldcatalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcatalog .

wa_fldcat-col_pos = '1'.

wa_fldcat-fieldname = 'MARK'.

wa_fldcat-checkbox = 'X'.

wa_fldcat-edit = 'X'.

APPEND wa_fldcat TO i_fldcat.

CLEAR wa_fldcat.

wa_fldcat-col_pos = '2'.

wa_fldcat-fieldname = 'EBELN'.

wa_fldcat-tabname = 'IT_EKKO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'PO NUMBER'.

APPEND wa_fldcat TO i_fldcat.

wa_fldcat-col_pos = '3'.

wa_fldcat-fieldname = 'BUKRS'.

wa_fldcat-tabname = 'I_EKKO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'Type'.

APPEND wa_fldcat TO i_fldcat.

wa_fldcat-col_pos = '4'.

wa_fldcat-fieldname = 'BSTYP'.

wa_fldcat-tabname = 'I_EKKO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'Type'.

APPEND wa_fldcat TO i_fldcat.

wa_fldcat-col_pos = '5'.

wa_fldcat-fieldname = 'BSART'.

wa_fldcat-tabname = 'I_EKKO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'Type'.

APPEND wa_fldcat TO i_fldcat.

wa_fldcat-col_pos = '6'.

wa_fldcat-fieldname = 'AEDAT'.

wa_fldcat-tabname = 'I_EKKO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'Type'.

APPEND wa_fldcat TO i_fldcat.

ENDFORM. " fieldcatalog

&----


*& Form fieldcatalog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fieldcatalog1 .

wa_fldcat-col_pos = '1'.

wa_fldcat-fieldname = 'EBELN'.

wa_fldcat-tabname = 'IT_EKPO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'PO NUMBER'.

APPEND wa_fldcat TO i_fldcat1.

wa_fldcat-col_pos = '2'.

wa_fldcat-fieldname = 'EBELP'.

wa_fldcat-tabname = 'IT_EKPO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'PO NUMBER'.

APPEND wa_fldcat TO i_fldcat1.

wa_fldcat-col_pos = '3'.

wa_fldcat-fieldname = 'STATU'.

wa_fldcat-tabname = 'IT_EKPO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'PO NUMBER'.

APPEND wa_fldcat TO i_fldcat1.

wa_fldcat-col_pos = '4'.

wa_fldcat-fieldname = 'AEDAT'.

wa_fldcat-tabname = 'IT_EKPO'.

wa_fldcat-outputlen = 10.

wa_fldcat-scrtext_m = 'PO NUMBER'.

APPEND wa_fldcat TO i_fldcat1.

ENDFORM. " fieldcatalog1

Regards,

Vijetha.

Former Member
0 Kudos

Hi,

As per your requirement you are using 2 ALV Grid to display the data. 2nd ALV Grid data is depending on 1st ALV Grid.

Whenever you are displaying 2nd ALV Grid you have one internal table.So that you have to Clear the data from that internal table, load the data to the internal table and use the method 'REFRESH_TABLE_DISPLAY' to display the data.

Regards,

Boobalan S

Former Member
0 Kudos

no reply is useful but must i should make it as answered