ALV样式定义

在写好的ALV样式中加入样式,前提你的ALV是可以正确运行的,如果ALV样式有问题,移步于上一篇文章。定义样式首先写PERFORM LAYOUT_BUILD。生成一个主函数,样式显示就在里面定义(很重要)。

  • 颜色间隔
    WA_LAYOUT-ZEBRA = 'X
  • 自适应宽度
    WA_LAYOUT-COLWIDTH_OPTIMIZ
    代码效果颜色类似斑马线,一深一浅,宽度根据获取值的长度调整。展示如下:
ALV样式定义_第1张图片
颜色间隔,宽度自适应.png
  • 行颜色
    WA_LAYOUT-INFO_FIELDNAME = 'COLOR'
  • 列颜色
    WA_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'
    color需要在data里面定义color(4) type c;cellcolor 定义为cellcolor type LVC_T_SCOL不管行颜色还是列颜色都需要配合算法进行使用,效果展示:
ALV样式定义_第2张图片
行颜色、列颜色.png

*按钮

status(30)定义在data里面,而且需要在表头里面给status留一个位置,配合算法可以将指定的按钮插入指定的字段里面(例如:循环表时给工作区-status 赋值),展示效果如下:

ALV样式定义_第3张图片
按钮.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啦!
这次的算法没有贴出来,对不住啦,因为代码一多容易乱,可以私我或者一起讨论啊!嘻嘻~

你可能感兴趣的:(ALV样式定义)