在寫好的ALV樣式中加入樣式,前提你的ALV是可以正確運行的,如果ALV樣式有問題,移步于上一篇文章。定義樣式首先寫PERFORM LAYOUT_BUILD
。生成一個主函數,樣式顯示就在里面定義(很重要)。
- 顏色間隔
WA_LAYOUT-ZEBRA = 'X
- 自適應寬度
WA_LAYOUT-COLWIDTH_OPTIMIZ
代碼效果顏色類似斑馬線,一深一淺,寬度根據獲取值的長度調整。展示如下:
顏色間隔,寬度自適應.png
- 行顏色
WA_LAYOUT-INFO_FIELDNAME = 'COLOR'
- 列顏色
WA_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'
color需要在data里面定義color(4) type c
;cellcolor 定義為cellcolor type LVC_T_SCOL
不管行顏色還是列顏色都需要配合算法進行使用,效果展示:
行顏色、列顏色.png
*按鈕
status(30)定義在data里面,而且需要在表頭里面給status留一個位置,配合算法可以將指定的按鈕插入指定的字段里面(例如:循環表時給工作區-status 賦值),展示效果如下:
按鈕.png
這個程序當數量>0時為綠燈,<=0時為紅燈,燈就是按鈕(狀態那一欄)
- 狀態欄
給程序添加一個gui狀態,引用標準表,激活。在data里面定義自定義名字 LIKE SY-REPID VALUE SY-REPID
,然后在上一篇文章中的最后一步里找到
I_CALLBACK_PROGRAM = 自定義名字
;
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
并賦值
在對set_pf_status進行定義
原本的狀態欄.png
修改過后.png
通過算法可以給狀態欄的狀態加上事件。
- 創建事務代碼
先進入SE93,創建一個名字為Zxxx的事務代碼,確定之后下一頁面,單選框選程序與屏幕那個,再一次確定,輸入程序名字(你想給那個程序創建事務代碼就是哪個程序),輸入屏幕值。保存、激活、OK啦!