最近写了个报表,excel 上传后,ALV显示7列,然后点过账按钮,用下面的功能,实现ALV改变输出,就显示9列。
* 改变输出
PERFORM CHANGE_LAYOUT.
FORM CHANGE_LAYOUT .
DATA: LR_FCAT TYPE LVC_S_FCAT,
LT_FCAT TYPE LVC_T_FCAT,
LR_STBL TYPE LVC_S_STBL,
LC_GRID1 TYPE REF TO CL_GUI_ALV_GRID.
*这个相当于CREATE OBJECT LC_GRID1.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = LC_GRID1.
* MODIFY THE FIELDCATALOG WITH DROPDOWN LIST
*从ALV中获得fieldcat,Get Current Field Catalog from Frontend
CALL METHOD LC_GRID1->GET_FRONTEND_FIELDCATALOG
IMPORTING
ET_FIELDCATALOG = LT_FCAT[].
*设置fieldcat ,Set Field Catalog
CALL METHOD LC_GRID1->SET_FRONTEND_FIELDCATALOG
EXPORTING
IT_FIELDCATALOG = LT_FCAT[].
*重新显示ALV, Redisplay Table
CALL METHOD LC_GRID1-&