ALV設定行 列 單元格的顏色

2021-06-13 12:05:20 字數 1821 閱讀 6220

有的時候,我們需要在 alv 網格上繪上一些顏色.可以給特定的行,某個特定的列,某個特定的單元格繪

制顏色.

如果某列被設定為關鍵列,這列的顏色將被自動繪製,而不需要我們額外的指定.,

alv的顏色是四位的如c710,第一位是固定死的c,第二位是顏色**,可能值為1-7,代表顏色如下:

1:gray-blue —>headers

2:light gray —>list bodies

3:yellow —>totals

4:blue-green—>key columns

5:green —>positive threshold value

6:red —>negative threshold value

7:orange —>control levels

後兩位是1和0的組合,10則代表顏色用在背景,01代表顏色用在前景。

設定列的顏色:

設定列的顏色可以在filedcat內錶中設定empasize欄位,如下:ls_fcat-emphasize = 『c701′.

設定行的顏色:

為某行設定顏色,是有點複雜的,我們需要在要顯示的資料內錶中增加乙個字段,這個字段

不需要在字段目錄中存在.同樣,這個欄位也是 4 位的 char 型,符合顏色編碼的定義.,然後

在布局設定中指定該列為顏色列,gs_layout-into_fname = 『color』.

然後設定在獲取資料後設定一下該列的值:

form p_data .

loop at gt_mara.

if gt_mara-matnr = 『100-100′.

gt_mara-color = 『c310′.

endif.

modify gt_mara.

endloop.

endform.

設定單元格的顏色:

設定單元格和設定行的顏色,本質上沒有什麼大的區別,但是定位單元格需要 2 個引數.我們需要在資料

內錶中插入乙個表型別的字段,這樣我們的資料內錶就變成了 deep 結構了,不過 alv 是可以處理的.不需

要擔心.

插入的這個表型別的型別為」lvc_t_scol」.

裡面有 3 個引數:

fname 告訴我們你需要設定的是哪個字段,如果為空,然後直接在 color 中設定顏色,就是整行設

置為這個顏色.如果具體到某個單元格,必須指定是哪個欄位.

color 欄位是用來設定顏色的.

nokeycol 字段比較關鍵了.設定為關鍵列的一些字段,我們的顏色設定可能被覆蓋.通過這個字段

的設定,可以避免被關鍵列的顏色被覆蓋.

同樣,alv 在布局中有個字段」ctab_fname」告訴我們,資料內錶中,哪個欄位是用來設定單元格的顏

色的,類似於設定行顏色的into_fname.

form p_data .

loop at gt_mara.

if gt_mara-matnr = 『100-100′.

gt_mara-color = 『c310′.」設定行的顏色

endif.

if gt_mara-matnr = 『100-401′.

clear gs_cellcolor.

gs_cellcolor-fname = 『mtart』.

gs_cellcolor-color-col = 『6′.

gs_cellcolor-fname = 『ersda』.

gs_cellcolor-color-col = 『7′.

endif.

modify gt_mara.

endloop.

endform.

ALV列 行 單元格顏色設定

1 顏色含義 1 海藍 2 淺清 3 黃色 4 淺藍 5 青色 6 紅色 7 橙色。1 首位為主顏色 2 次位為輔助顏色 3 末位為0時,表示首位數字表為 的底色 末位為1時,則表示以1為底色,首位數字則表為 字型的顏色 末位為其它顏色時,則表示底色為alv的預設顏色 以上三條是本人大概總結出來的規...

ALV列 行 單元格顏色設定

1 顏色含義 1 海藍 2 淺清 3 黃色 4 淺藍 5 青色 6 紅色 7 橙色。1 首位為主顏色 2 次位為輔助顏色 3 末位為0時,表示首位數字表為 的底色 末位為1時,則表示以1為底色,首位數字則表為 字型的顏色 末位為其它顏色時,則表示底色為alv的預設顏色 以上三條是本人大概總結出來的規...

ALV列 行 單元格顏色設定

自 1 顏色含義 1 海藍 2 淺清 3 黃色 4 淺藍 5 青色 6 紅色 7 橙色。1 首位為主顏色 2 次位為輔助顏色 3 末位為0時,表示首位數字表為 的底色 末位為1時,則表示以1為底色,首位數字則表為 字型的顏色 末位為其它顏色時,則表示底色為alv的預設顏色 以上三條是本人大概總結出來...