热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于ALV颜色的控制

本文转自http:scnblogs.techweb.com.cnqq19851116archives3.htmlALV的颜色控制可以分3中级别:1.数据LIST中某一

本文转自http://scnblogs.techweb.com.cn/qq19851116/archives/3.html

ALV的颜色控制可以分3中级别:

1.数据LIST中某一行颜色的控制

2.数据LIST中某一列颜色的控制

3.数据LIST中某个单元格颜色的控制

如果在ALV中这三种颜色控制同时存在时,它们会有一个优先级的。单元格控制的优先级别最高,下来是行控制的优先级,最后是列控制的优先级。

效果如下

ALV颜色控制

代码如下

TH_LAYOUT-coltab_fieldname

这个属性里面放的是内表中表示行颜色字段的CODE

TH_FIELDCAT-emphasize = ‘C110′.

这个属性里面放的是内表中表示列颜色字段的属性,在ALV的FIELDCAT属相设置时把颜色代码值(C110)填入即可.

TH_LAYOUT-info_fieldname = ‘LNCOLOR’.

这里面放的字段是内表中单元格颜色字段的CODE.

    COLOR     TYPE slis_t_specialcol_alv,

   在内表中要定义一个字段(COLOR)参考这个内表,slis_t_specialcol_alv它里面有FIELDNAME,COL,INT,INV属性需要设置。分别是字段名字,颜色代码,背景深浅度,字体深浅度控制。

      TH_COLOR-fieldname = ‘COUNTRYFR’.
      TH_COLOR-color-col = ‘6′.
      TH_COLOR-color-int = ‘1′.
      TH_COLOR-color-inv = ‘1′.
REPORT  ZTEST_SPFLI MESSAGE-ID zf.

INCLUDE .

INCLUDE .

TYPE-POOLS:slis.

TABLES:
  SPFLI.

TYPES:
  BEGIN OF TYP_SPFLI,
    CARRID    TYPE SPFLI-CARRID,
    CONNID    TYPE SPFLI-CONNID,
    COUNTRYFR TYPE SPFLI-COUNTRYFR,
    COUNTRYTO TYPE SPFLI-COUNTRYTO,
    CITYFROM  TYPE SPFLI-CITYFROM,
    CITYTO    TYPE SPFLI-CITYTO,
  END OF TYP_SPFLI,

  BEGIN OF TYP_OUTPUT,
    CHECK     TYPE C,
    ICON      TYPE icon_d,
    SYMBOL    TYPE icon_d,
    CARRID    TYPE SPFLI-CARRID,
    CONNID    TYPE SPFLI-CONNID,
    COUNTRYFR TYPE SPFLI-COUNTRYFR,
    COUNTRYTO TYPE SPFLI-COUNTRYTO,
    CITYFROM  TYPE SPFLI-CITYFROM,
    CITYTO    TYPE SPFLI-CITYTO,
    COLOR     TYPE slis_t_specialcol_alv,
    LNCOLOR   TYPE CHAR4,
    HAND      TYPE INT4,
    LINK      TYPE string,
  END OF TYP_OUTPUT.

DATA:
  TH_SPFLI TYPE TYP_SPFLI,
  TD_SPFLI TYPE TABLE OF TYP_SPFLI,

  BEGIN OF TYP_DATA.
   INCLUDE STRUCTURE zcddi.
   DATA: A1 TYPE C,
         A3 TYPE N,
* zcddi
  END OF TYP_DATA,

  TH_COLOR TYPE slis_specialcol_alv,
  TD_COLOR TYPE TABLE OF slis_specialcol_alv,

  TH_LAYOUT TYPE SLIS_LAYOUT_ALV,
  TH_FIELDCAT TYPE slis_fieldcat_alv,
  TD_FIELDCAT TYPE TABLE OF slis_fieldcat_alv,

  TH_OUTPUT TYPE TYP_OUTPUT,
  TD_OUTPUT TYPE TABLE OF TYP_OUTPUT.
START-OF-SELECTION.

* PARAMETERS:      gjahr LIKE glpca-RYEAR MEMORY ID gjr OBLIGATORY.

 SELECT-OPTIONS:
   S_CARRID FOR SPFLI-CARRID,
   S_CONNID FOR SPFLI-CONNID.

 PERFORM FRM_GET_DATA.

 PERFORM FRM_EDIT_DATA.

 PERFORM FRM_DISPLAY_DATA.

*&———————————————————————*
*&      Form  FRM_GET_DATA
*&———————————————————————*
*       GET MAIN DATA
*———————————————————————-*
FORM FRM_GET_DATA .

  SELECT  CARRID
          CONNID
          COUNTRYFR
          COUNTRYTO
          CITYFROM
          CITYTO
   INTO  TABLE TD_SPFLI
   FROM   SPFLI
  WHERE CARRID IN S_CARRID
    AND CONNID IN S_CONNID.

 IF SY-SUBRC <> 0.
   MESSAGE S001 DISPLAY LIKE ‘E’.
   LEAVE LIST-PROCESSING.
 ENDIF.
ENDFORM.                    ” FRM_GET_DATA
*&———————————————————————*
*&      Form  FRM_DISPLAY_DATA
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM FRM_DISPLAY_DATA .
  PERFORM FRM_SET_TITLE.

  PERFORM FRM_SET_FIELDCAT.
  PERFORM FRM_CALL_FUNCTION.
ENDFORM.                    ” FRM_DISPLAY_DATA

*&———————————————————————*
*&      Form  FRM_SET_TITLE
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM FRM_SET_TITLE .
  TH_LAYOUT-colwidth_optimize &#61; ‘X’.
  TH_LAYOUT-coltab_fieldname &#61; ‘COLOR’.
  TH_LAYOUT-window_titlebar  &#61; ’spfli data’.
  TH_LAYOUT-detail_popup &#61; ‘X’.
  TH_LAYOUT-COLWIDTH_OPTIMIZE &#61; ‘X’.
  TH_LAYOUT-info_fieldname &#61; ‘LNCOLOR’.
ENDFORM.                    ” FRM_SET_TITLE
*&———————————————————————*
*&      Form  FRM_SET_FIELDCAT
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM FRM_SET_FIELDCAT .
  PERFORM FRM_SET_VALUE USING ‘1′ ‘CHECK’  ‘CHECK’ ‘1′ ‘X’.
  PERFORM FRM_SET_VALUE USING ‘2′ ‘ICON’   ‘ICON’ ‘5′ ‘ ‘.
  PERFORM FRM_SET_VALUE USING ‘3′ ‘SYMBOL’ ‘SYMBOL’ ‘5′ ‘ ‘.

  PERFORM FRM_SET_VALUE USING ‘4′ ‘CARRID’ ‘航线承运人ID’ ‘3′ ”.
  PERFORM FRM_SET_VALUE USING ‘5′ ‘CONNID’ ‘航班连接 Id’ ‘4′ ”.
  PERFORM FRM_SET_VALUE USING ‘6′ ‘COUNTRYFR’ ‘国家代码FROM’ ‘3′ ”.
  PERFORM FRM_SET_VALUE USING ‘7′ ‘COUNTRYTO’ ‘国家代码TO’ ‘3′ ”.
  PERFORM FRM_SET_VALUE USING ‘8′ ‘CITYFROM’ ‘起飞城市’ ‘20′ ”.
  PERFORM FRM_SET_VALUE USING ‘9′ ‘CITYTO’ ‘目标城市’ ‘20′ ”.

ENDFORM.                    ” FRM_SET_FIELDCAT
*&———————————————————————*
*&      Form  FRM_SET_VALUE
*&———————————————————————*
*       text
*———————————————————————-*
*      –>P_COL_POS  text   NO_ROWMARK
*      –>P_FIELDNAME  text
*      –>P_SELTEXT_L  text
*      –>P_OUTPUTLEN  text
*———————————————————————-*
FORM FRM_SET_VALUE  USING    I_COL_POS
                             I_FIELDNAME
                             I_SELTEXT_L
                             I_OUTPUTLEN
                             I_CHECKBOX.

 TH_FIELDCAT-COL_POS &#61;   I_COL_POS.
 TH_FIELDCAT-FIELDNAME &#61; I_FIELDNAME.
 TH_FIELDCAT-SELTEXT_L &#61; I_SELTEXT_L.
 TH_FIELDCAT-OUTPUTLEN &#61; I_OUTPUTLEN.
 IF I_FIELDNAME &#61; ‘CARRID’.

 ELSEIF I_FIELDNAME &#61; ‘CHECK’.
  TH_FIELDCAT-SELTEXT_M &#61; ‘SELECT’.
  TH_FIELDCAT-CHECKBOX &#61; ‘X’.
  TH_FIELDCAT-OUTPUTLEN &#61; 1.
  TH_FIELDCAT-EDIT &#61; ‘X’.
ELSEIF I_FIELDNAME &#61; ‘CITYFROM’ OR I_FIELDNAME &#61; ‘CITYTO’.
  TH_FIELDCAT-emphasize &#61; ‘C110′.
ELSEIF I_FIELDNAME &#61; ‘ICON’.
  TH_FIELDCAT-icon &#61; ‘X’.
ELSEIF I_FIELDNAME &#61; ‘SYMBOL’.
  TH_FIELDCAT-symbol &#61; ‘X’.
ENDIF.
 APPEND TH_FIELDCAT TO TD_FIELDCAT.
 CLEAR TH_FIELDCAT.

ENDFORM.                    ” FRM_SET_VALUE
*&———————————————————————*
*&      Form  FRM_CALL_FUNCTION
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM FRM_CALL_FUNCTION .
  CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
    EXPORTING
     I_CALLBACK_USER_COMMAND           &#61; ‘FRM_SET_COMMAND’
     IS_LAYOUT                         &#61; TH_LAYOUT
     IT_FIELDCAT                       &#61; TD_FIELDCAT
     I_SAVE                            &#61; ‘A’
    TABLES
      T_OUTTAB                          &#61; TD_OUTPUT
    EXCEPTIONS
      PROGRAM_ERROR                     &#61; 1
      OTHERS                            &#61; 2
            .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    ” FRM_CALL_FUNCTION
*&———————————————————————*
*&      Form  FRM_EDIT_DATA
*&———————————————————————*
*       text
*———————————————————————-*
*  –>  p1        text
*  <–  p2        text
*———————————————————————-*
FORM FRM_EDIT_DATA .
  DATA:
    LW_INDEX TYPE SY-INDEX,
    LW_MOD   TYPE I.
  LOOP AT TD_SPFLI INTO TH_SPFLI.
    LW_INDEX &#61; SY-TABIX.
    LW_MOD &#61; LW_INDEX MOD 3.

    IF TH_SPFLI-CARRID IS INITIAL .

      TH_COLOR-fieldname &#61; ‘CARRID’.
      TH_COLOR-color-col &#61; ‘6′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ENDIF.

    IF TH_SPFLI-CONNID IS INITIAL.
      TH_COLOR-fieldname &#61; ‘CONNID’.
      TH_COLOR-color-col &#61; ‘6′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ENDIF.

    IF TH_SPFLI-COUNTRYFR IS INITIAL.
      TH_COLOR-fieldname &#61; ‘COUNTRYFR’.
      TH_COLOR-color-col &#61; ‘6′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ENDIF.

    IF TH_SPFLI-COUNTRYTO IS INITIAL.
      TH_COLOR-fieldname &#61; ‘COUNTRYTO’.
      TH_COLOR-color-col &#61; ‘6′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ELSEIF TH_SPFLI-COUNTRYTO &#61; ‘MQ’.
      TH_COLOR-fieldname &#61; ‘COUNTRYTO’.
      TH_COLOR-color-col &#61; ‘5′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ELSEIF TH_SPFLI-COUNTRYTO &#61; ‘CA’.
      TH_COLOR-fieldname &#61; ‘COUNTRYTO’.
      TH_COLOR-color-col &#61; ‘7′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ENDIF.

    IF TH_SPFLI-CITYFROM IS INITIAL.
      TH_COLOR-fieldname &#61; ‘CITYFROM’.
      TH_COLOR-color-col &#61; ‘6′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ENDIF.

    IF TH_SPFLI-CITYTO IS INITIAL.
      TH_COLOR-fieldname &#61; ‘CITYTO’.
      TH_COLOR-color-col &#61; ‘6′.
      TH_COLOR-color-int &#61; ‘1′.
      TH_COLOR-color-inv &#61; ‘1′.
      APPEND TH_COLOR TO TD_COLOR.
      CLEAR TH_COLOR.
    ENDIF.

    MOVE-CORRESPONDING  TH_SPFLI TO TH_OUTPUT .
    CLEAR TH_SPFLI.
    TH_OUTPUT-COLOR[] &#61; TD_COLOR[].

    IF LW_INDEX >&#61; 3 AND LW_INDEX &#61;<13.
      TH_OUTPUT-LNCOLOR &#61; ‘C700′.
    ENDIF.

*    TH_OUTPUT-HAND   &#61; SY-TABIX.
*    TH_OUTPUT-LINK   &#61; ‘WWW.BAIDU.COM’.
  IF LW_MOD <> 0.
    TH_OUTPUT-ICON   &#61; ICON_TIME.
    TH_OUTPUT-SYMBOL &#61; SYM_LEFT_HAND.
  ELSE.
    TH_OUTPUT-ICON   &#61; ICON_COLOR.
    TH_OUTPUT-SYMBOL &#61; sym_folder.
  ENDIF.
    APPEND TH_OUTPUT TO TD_OUTPUT.
    CLEAR:
      LW_INDEX,
      LW_MOD,
      TH_OUTPUT.
    REFRESH:
      TD_COLOR.
  ENDLOOP.
ENDFORM.                    ” FRM_EDIT_DATA

FORM FRM_SET_COMMAND USING r_ucomm LIKE sy-ucomm
                  rs_selfield TYPE slis_selfield.

  CASE r_ucomm.
      WHEN ‘&IC1′. “双击事件

*        READ TABLE itab INTO wa INDEX rs_selfield-tabindex.
*
*        SET PARAMETER ID ‘BLN’ FIELD wa-belnr.
*        SET PARAMETER ID ‘BUK’ FIELD wa-bukrs.
*        SET PARAMETER ID ‘GJR’ FIELD wa-gjahr.
*
*        CALL TRANSACTION ‘FB03′ AND SKIP FIRST SCREEN.
    ENDCASE.

ENDFORM.

转:https://www.cnblogs.com/kalasitifen/archive/2012/10/16/2725890.html



推荐阅读
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文详细探讨了VxWorks操作系统中双向链表和环形缓冲区的实现原理及使用方法,通过具体示例代码加深理解。 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本实验主要探讨了二叉排序树(BST)的基本操作,包括创建、查找和删除节点。通过具体实例和代码实现,详细介绍了如何使用递归和非递归方法进行关键字查找,并展示了删除特定节点后的树结构变化。 ... [详细]
author-avatar
ytdytduyufy_100
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有