Skip to Content
0
Former Member
Jun 08, 2007 at 06:13 AM

Refresh table display is not working

2977 Views

Hi Experts ,

In my pgm i am displaying an ALV grid in the container . When the user double clicks on some fields above the ALV container , i am modifying the same internal table with some other records and iam displaying the same in the ALV . But it is showing the same old data . I tried Refrsh_table_display also .but it is not working . In the debugging i saw that the data are populated exactly .

I have pasted my code here . Kindly help me . Points will be rewarded .

&----


*& Module STATUS_9015 OUTPUT

&----


  • PBO for 9015 Screen

----


MODULE status_9015 OUTPUT.

SET PF-STATUS 'SC9015'.

SET TITLEBAR 'T05' WITH g_title .

  • Creating the Container

CREATE OBJECT custom_container

EXPORTING

container_name = 'SLOT_DET'

.

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 and Assign the Grid to Container

CREATE OBJECT alv_grid

EXPORTING

i_parent = custom_container

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Form for building the field catalog

PERFORM build_fieldcatalog.

  • For Layout

g_layout-sel_mode = 'A'.

g_layout-ctab_fname = 'CELLCOL'.

g_layout-info_fname = 'ROWCOLL'.

  • For dispalying the ALV Grid in the Container

CALL METHOD alv_grid->set_table_for_first_display

EXPORTING

is_variant = gs_variant

i_save = x_save

is_layout = g_layout

CHANGING

it_outtab = tb_slots_det[]

it_fieldcatalog = tb_fcat_slot[].

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 event_trigger .

SET HANDLER event_trigger->handle_toolbar FOR alv_grid.

  • Raise event toolbar to show the modified toolbar

CALL METHOD alv_grid->set_toolbar_interactive.

  • CREATE OBJECT event_trigger.

SET HANDLER event_trigger->handle_double_click FOR alv_grid.

ENDMODULE. " STATUS_9015 OUTPUT

&----


*& Module USER_COMMAND_9015 INPUT

&----


  • PAI of 9015 Screen

----


MODULE user_command_9015 INPUT.

DATA : l_flag2 TYPE c .

DATA: ls_stable TYPE lvc_s_stbl.

ls_stable-row = 'X'.

ls_stable-col = 'X'.

CASE sy-ucomm .

WHEN 'BACK' OR 'EXIT' OR 'CANC' .

SET SCREEN 0 .

LEAVE SCREEN .

  • When Shipment Status button selected

WHEN 'INFO'.

GET CURSOR FIELD g_fieldname .

IF g_fieldname = 'G_LIVE' OR g_fieldname = 'G_DROP'

OR g_fieldname = 'G_HR1' .

l_flag2 = 'X' .

TB_SLOTS_DET1[] = TB_SLOTS_DET .

ELSE .

CALL SCREEN 9201 STARTING AT 5 5

ENDING AT 60 16.

ENDIF .

ENDCASE .

IF l_flag2 = 'X' .

IF g_fieldname = 'G_LIVE'.

REFRESH tb_slots_det .

LOOP AT tb_slots_det1 INTO wa_slots_det1 WHERE zzlive = 'L' .

MOVE wa_slots_det1 TO wa_slots_det .

APPEND wa_slots_det TO tb_slots_det .

CLEAR wa_slots_det .

ENDLOOP .

ENDIF .

IF g_fieldname = 'G_DROP'.

REFRESH tb_slots_det .

LOOP AT tb_slots_det1 INTO wa_slots_det1 WHERE zzlive = 'D' .

MOVE wa_slots_det1 TO wa_slots_det .

APPEND wa_slots_det TO tb_slots_det.

CLEAR wa_slots_det .

ENDLOOP .

ENDIF .

IF g_fieldname = 'G_HR1'.

REFRESH tb_slots_det .

LOOP AT tb_slots_det1 INTO wa_slots_det1 WHERE tknum IS NOT INITIAL AND load_time => 0 AND load_time <= 1 .

MOVE wa_slots_det1 TO wa_slots_det .

APPEND wa_slots_det TO tb_slots_det.

CLEAR wa_slots_det .

ENDLOOP .

ENDIF .

  • Refreshing the ALV Grid .

CALL METHOD alv_grid->refresh_table_display

EXPORTING

is_stable = ls_stable

i_soft_refresh = 'X'.

CLEAR l_flag2 .

ENDIF .

*

ENDMODULE. " USER_COMMAND_9015 INPUT