在写好的ALV样式中加入样式,前提你的ALV是可以正确运行的,如果ALV样式有问题,移步于上一篇文章。定义样式首先写PERFORM LAYOUT_BUILD
。生成一个主函数,样式显示就在里面定义(很重要)。
- 颜色间隔
WA_LAYOUT-ZEBRA = 'X
- 自适应宽度
WA_LAYOUT-COLWIDTH_OPTIMIZ
代码效果颜色类似斑马线,一深一浅,宽度根据获取值的长度调整。展示如下:
- 行颜色
WA_LAYOUT-INFO_FIELDNAME = 'COLOR'
- 列颜色
WA_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'
color需要在data里面定义color(4) type c
;cellcolor 定义为cellcolor type LVC_T_SCOL
不管行颜色还是列颜色都需要配合算法进行使用,效果展示:
*按钮
status(30)定义在data里面,而且需要在表头里面给status留一个位置,配合算法可以将指定的按钮插入指定的字段里面(例如:循环表时给工作区-status 赋值),展示效果如下:
这个程序当数量>0时为绿灯,<=0时为红灯,灯就是按钮(状态那一栏)
- 状态栏
给程序添加一个gui状态,引用标准表,激活。在data里面定义自定义名字 LIKE SY-REPID VALUE SY-REPID
,然后在上一篇文章中的最后一步里找到
I_CALLBACK_PROGRAM = 自定义名字
;
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
并赋值
在对set_pf_status进行定义
通过算法可以给状态栏的状态加上事件。
- 创建事务代码
先进入SE93,创建一个名字为Zxxx的事务代码,确定之后下一页面,单选框选程序与屏幕那个,再一次确定,输入程序名字(你想给那个程序创建事务代码就是哪个程序),输入屏幕值。保存、激活、OK啦!