Change fieldcatalog and layout of ALV after its initial display.
We can do any number of modification to the fieldcatalog and layout of ALV grid even after it has been displayed on the screen, we can hide certain columns , change the column text, change the column position etc. We can achieve all this simply by using the following methods of the class CL_GUI_ALV_GRID:
For fieldcatalog modification:
get_frontend_fieldcatalog
set_frontend_fieldcatalog
For layout modification:
get_frontend_layout
set_frontend_layout
Steps to change the fieldcatalog after first display:
- Trigger the PAI using pushbutton or some other manner.
- Now for this triggered function code get the existing fieldcatalog using the method get_frontend_fieldcatalog.
- Make the required modification to the fieldcatlog.
- Now in order to reflect these changes to the ALV grid make use of the method set_frontend_fieldcatalog.
- Call the method refresh_table_display of class CL_GUI_ALV_GRID to refresh the ALV display so as to show the modifications done to the ALV grid.
The ALV layout can be changed in a similar manner using the get and set methods meant for layout.
Example:
This is the initial display of ALV gird.
On clicking the button Technical Name the existing column headings will be replaced by their equivalent technical name.
On clicking the Layout 1 button the existing layout will be changed to Zebra layout.
Similarly you can present multiple layout and display options to the user using this technique.