结果
代码
REPORT ZGUO_TEST.
*调用数据表
TABLES: SPFLI.
*定义、申明变量
TYPE-POOLS: SLIS.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
TYPES:BEGIN OF SSPFLI.
INCLUDE TYPE SPFLI.
TYPES:
COLOR(4),
CELL_COLOR TYPE SLIS_T_SPECIALCOL_ALV,
END OF SSPFLI.
DATA: GT_SPFLI TYPE TABLE OF SSPFLI WITH HEADER LINE.
DATA: LT_CELL TYPE SLIS_T_SPECIALCOL_ALV,LS_CELL LIKE LINE OF LT_CELL.
*初始化列宽
INITIALIZATION.
LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
START-OF-SELECTION.
PERFORM FRM_LOAD_DATA.
FORM FRM_LOAD_DATA.
PERFORM FRM_FIELD.
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SPFLI FROM SPFLI.
LOOP AT GT_SPFLI.
IF GT_SPFLI-CARRID = 'DL'." 行颜色
GT_SPFLI-COLOR = 'C610'.
ENDIF.
IF GT_SPFLI-AIRPFROM = 'FRA'.
CLEAR:LS_CELL,LT_CELL.REFRESH LT_CELL."单元格颜色
LS_CELL-FIELDNAME = 'AIRPFROM'.
LS_CELL-COLOR-COL = '6'.
APPEND LS_CELL TO LT_CELL.
GT_SPFLI-CELL_COLOR = LT_CELL.
ENDIF.
MODIFY GT_SPFLI TRANSPORTING COLOR CELL_COLOR.
ENDLOOP.
*函数
LS_LAYOUT-INFO_FIELDNAME = 'COLOR'.
LS_LAYOUT-COLTAB_FIELDNAME = 'CELL_COLOR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = GT_FIELDCAT
I_SAVE = 'A'
IS_LAYOUT = LS_LAYOUT
TABLES
T_OUTTAB = GT_SPFLI.
ENDFORM.
FORM FRM_FIELD.
DATA: LS_FCAT LIKE LINE OF GT_FIELDCAT.
REFRESH: GT_FIELDCAT.
CLEAR: GT_FIELDCAT.
*显示数据表格ALV的栏位
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'CARRID'.
LS_FCAT-REPTEXT_DDIC = 'Airline Code'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'CONNID'.
LS_FCAT-REPTEXT_DDIC = 'Flight Connection Number'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'COUNTRYFR'.
LS_FCAT-REPTEXT_DDIC = 'Country Key'.
* LS_FCAT-KEY = 'C510'. "列颜色
LS_FCAT-EMPHASIZE = 'C510'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'CITYFROM'.
LS_FCAT-REPTEXT_DDIC = 'Departure city'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'AIRPFROM'.
LS_FCAT-REPTEXT_DDIC = 'Departure airport'.
APPEND LS_FCAT TO GT_FIELDCAT.
CLEAR LS_FCAT.
LS_FCAT-FIELDNAME = 'COUNTRYTO'.
LS_FCAT-REPTEXT_DDIC = 'Country Key'.
APPEND LS_FCAT TO GT_FIELDCAT.
ENDFORM.