I am creating a hierarchy comparison tool that also shows the master data of changed nodes in an ALV Grid. Because it must work for different InfoObjects, I create the internal table containing the output dynamically using the "WAS 6.40 Approach" found in this How-To (/people/subramanian.venkateswaran2/blog/2004/11/19/dynamic-internal-table), which results in a field symbol pointing to the dynamic table. I then create the field catalog and show the ALV Grid in Screen 200.
When the user goes back to the selection screen (100) and changes the comparison options, the internal table is updated with the new results. So far, everything works fine.
But although I call the method alv_grid->refresh_table_display, I am not able to update the data within the ALV Grid. Could it be that the problem lies with using a field symbol instead of a 'real' internal table?
Here is the module that shows / updates the grid:
MODULE display_alv OUTPUT. PERFORM prepare_data. PERFORM prepare_field_catalog CHANGING g_it_fieldcatalog. IF alv_container IS INITIAL. CREATE OBJECT alv_container EXPORTING container_name = alv_containernm. CREATE OBJECT alv_grid EXPORTING i_parent = alv_container. CALL METHOD alv_grid->set_table_for_first_display EXPORTING is_layout = alv_layout i_buffer_active = false CHANGING it_fieldcatalog = g_it_fieldcatalog it_outtab = <fs_results>. ELSE. CALL METHOD alv_grid->set_frontend_fieldcatalog EXPORTING it_fieldcatalog = g_it_fieldcatalog. CALL METHOD alv_grid->refresh_table_display. ENDIF. ENDMODULE. " display_alv OUTPUT
Does anybody have an idea what (probably very basic thing) I'm doing wrong?
Thanks a lot in advance,