abap中如果需要到对某个单元格,某行, 某列想要进行颜色设定的话,有一下几种简单的方面。
注:1:海蓝;2:浅清;3:黄色;4:浅蓝;5:青色;6:红色;7:橙色
(1)首位为主颜色;
(2)次位为辅助颜色;
(3)末位为0时,表示首位数字表为表格的底色;
末位为1时,则表示以1为底色,首位数字则表为表格字体的颜色;
末位为其它颜色时,则表示底色为ALV的默认颜色;
1.整列的颜色设定
WA_FIELDCAT-COL_POS = LINES( IT_FIELDCAT ).
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_L = '物料名'.
WA_FIELDCAT-EMPHASIZE = 'C310'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
结果图:
2.整行的颜色设定
WA-MATNR = 'TEST001'.
WA-ERSDA = '20131001'.
WA-ERNAM = 'T90000'.
WA-LINE_COLOR = 'C310'.
APPEND WA TO IT.
LDS_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
结果图:
3.单元格的颜色设定
CLEAR WA.
WA-MATNR = 'TEST001'.
WA-ERSDA = '20131001'.
WA-ERNAM = 'T90000'.
PERFORM SET_COLOR USING 'MATNR'.
APPEND WA TO IT.
CLEAR WA.
WA-MATNR = 'TEST002'.
WA-ERSDA = '20131011'.
WA-ERNAM = 'T90000'.
PERFORM SET_COLOR USING 'ERSDA'.
APPEND WA TO IT.
CLEAR WA.
WA-MATNR = 'TEST003'.
WA-ERSDA = '20131021'.
WA-ERNAM = 'T90000'.
PERFORM SET_COLOR USING 'ERNAM'.
APPEND WA TO IT.
FORM SET_COLOR USING FNAME TYPE CHAR30.
DATA WA_COLOR TYPE LVC_S_SCOL.
WA_COLOR-FNAME = FNAME.
IF WA-ERSDA = '20131011'.
WA_COLOR-COLOR-COL = '3'.
WA_COLOR-COLOR-INT = '1'.
WA_COLOR-COLOR-INV = '0'.
ELSE.
WA_COLOR-COLOR-COL = '0'.
ENDIF.
APPEND WA_COLOR TO WA-CELL_COLOR.
ENDFORM. " SET_COLOR
LDS_LAYOUT-COLTAB_FIELDNAME = 'CELL_COLOR'.
结果图: