OOALV常用的刷新有三处:内表刷新、LAYOUT刷新和FIELDCAT刷新
内表刷新:
内表刷新只需要在对应的事件方法中调用ALV的REFRESH_TABLE_DISPLAY方法就可以了
DATA : LV_STABLE TYPE LVC_S_STBL. "刷新稳定性
LV_STABLE-ROW = '1'.
LV_STABLE-COL = '1'.
CALL METHOD GO_ALV_GRID_SUB->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = LV_STABLE.
LAYOUT刷新:
调用SET_FRONTEND_LAYOUT方法并将新的LAYOUT填入参数即可
GS_LAYOUT_ALV-GRID_TITLE = GRID_TITLE."标题栏文本
GS_LAYOUT_ALV-SEL_MODE = 'D'. "选择方式
GS_LAYOUT_ALV-CWIDTH_OPT = 'X'. "优化列宽
GS_LAYOUT_ALV-S_DRAGDROP-ROW_DDID = G_HANDLE_ALV.
CALL METHOD GO_ALV_GRID_SUB->SET_FRONTEND_LAYOUT
EXPORTING
IS_LAYOUT = GS_LAYOUT_ALV.
FIELDCAT刷新:
调用SET_FRONTEND_FIELDCATALOG方法并将新的FIELDCAT填入参数即可
CALL METHOD GO_ALV_GRID_SUB-> SET_FRONTEND_FIELDCATALOG
EXPORTING
IT_FIELDCATALOG = L_FCAT_CACHE.