阅读 68

ABAP ALV之有关于颜色的使用详解

Hello, 这里是百里,一个中老年程序员.在ABAP开发中,会经常遇到用户说,ALV报表中某个字段展示颜色.比如按照行展示.按照列展示,对比某个数据展示颜色等等.今天结合工作经验这里做下技术总结.

分类

ALV常用颜色使用场景分为,行颜色,列颜色,单元格颜色. 这三个分类并没有说哪个经常哪个不经常用,具体需要按照实际情况使用.

行颜色

行颜色的使用场景, 一般作为,ALV标题,次标题,求和等等,做着重表示.

在ALV数据定义的内表中,增加一个color字段,字段类型为char4,用来记录颜色相关的内容. 颜色代码:

image.png

#定义结构 TYPES :BEGIN OF ty_Data ,            ......         color  TYPE  CHAR4 ,              END OF ty_data . #定义工作区            data  : gs_Data  TYPE  ty_Data  .   #定义内表 data :  gt_Data  TYPE  TABLE OF  ty_Data  .       # 定义alv变量 "alv 变量   DATA: wa_layout   TYPE lvc_s_layo.   DATA:wa_fieldcat TYPE lvc_s_fcat,             g_layout    TYPE lvc_s_layo,        gt_fieldcat TYPE lvc_t_fcat.   DATA gs_grid TYPE lvc_s_glay.   "新   DATA:gs_glay TYPE  lvc_s_glay.   DATA : gv_error TYPE c. #设置格式样式 FORM SET_ALV_LAYOUT . CLEAR WA_LAYOUT . ........ WA_LAYOUT-INFO_FNAME = 'CLR'  ........ ENDFORM . #取数逻辑 #处理数据逻辑 loop at gt_data into gs_Data if 条件  gs_data-clr= 'C710'     endif. endloop . FORM call_alv_func . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'       EXPORTING         i_callback_program       = sy-repid           "回调程序         i_callback_pf_status_set = 'SET_PF_STATUS'         i_callback_user_command  = 'USER_COMMAND'         i_grid_settings          = gs_glay         is_layout_lvc            = wa_layout      "  i_grid_settings          = gs_grid "新         it_fieldcat_lvc          = gt_fieldcat        "需要显示的内表的列         i_save                   = 'A'    "这个需要问下         it_events                = gt_event       TABLES         t_outtab                 = gt_Data          "需要显示的数据       EXCEPTIONS         program_error            = 1         OTHERS                   = 2.     IF sy-subrc <> 0.     ENDIF.   ENDFORM. 复制代码

列颜色

列颜色的使用场景,一般内容为相同字段着重表示,比如单号字段,料号字段,等内容,区别相同字段.或者消息相关字段等需要着重字段.

使用方式

列颜色的使用方式,相对而言是比较简单,只需要将,字段中的wa_fieldcat-emphasize 设置成4位颜色内容即可,设置颜色内容.

........  #前段代码 #ALV展示 if 条件 . wa_fieldcat-emphasize = 'C610' endif . ........ #后端代码 复制代码

单元格颜色

单元格颜色的使用场景,一般适用于不同字段比较,数据更新判断等应用场景是工作场景中最常用的颜色赋值方式.

使用方式

"数据结构准备 DATA: wa_layout   TYPE lvc_s_layo. DATA:wa_fieldcat TYPE lvc_s_fcat. TYPES: BEGIN OF TY_DATA ,      cellcolor TYPE lvc_t_scol, "颜色      END OF TY_dATA . DATA : GS_DATA TYPE TY_dATA .  DATA : GT_DATA TYPE TABLE OF  TY_dATA . " 单元格格式设定 DATA : gs_cellcolor TYPE lvc_s_scol,        gt_cellcolor TYPE TABLE OF lvc_s_scol.                 " 设置样式        "  set_alv_layout     FORM set_alv_layout .   CLEAR: wa_layout.   wa_layout-zebra      = 'X'.      "斑马线   wa_layout-cwidth_opt = 'X'.      "自动列宽 " 通过这句增加颜色设定.   wa_layout-ctab_fname = 'cellcolor'. ENDFORM.     " 给gs_Data 设定 内容   loop  ...................       refresh  gt_cellcolor  .       gs_cellcolor-fname = 'KWMENG1'.   "字段       gs_cellcolor-color-col = '6'.       gs_cellcolor-color-int = 1.       gs_cellcolor-color-inv = 1.       APPEND gs_cellcolor TO gt_cellcolor. endloop . ''''    gs_data-cellcolor = gt_cellcolor.          MODIFY gt_data FROM gs_data. clear gs_data-cellcolor . 复制代码

注意单元格的颜色使用内容为数字内容, 1:海蓝,2:浅清,3:黄色,4:浅蓝,5:青色,6:红色,7:橙色

技术总结

alv的颜色使用内容是在abap开发中必须会的一项技术内容,在工作中需要按照不同的应用场景熟练的使用颜色相关开发方式,此篇文章提供了alv常用的颜色使用方式,行,列,单元格均可以拿来即用.

贵有恒何必三更起五更睡,最无益只怕一日曝十日寒。 这里是百里,一个年近30的中年程序员.希望能够帮到您.


作者:百里落云
链接:https://juejin.cn/post/7168479387023573028


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐