ALV报表——ALV颜色设置(三)
目录
一、行:用Layout相关属性设置
代码:
*Report ZRFI001_XFL_TEST
REPORT ZRFI001_XFL_TEST . *定义ALV所需要用到的类型池
TYPE-POOLS SLIS. *****************************TABLES
TABLES:MARD. *****************************Data Definitions
*定义ALV所要显示的数据对应的内表数据类型及内表数据对象
DATA: BEGIN OF GT_MARD OCCURS , "一般物料資料
MATNR LIKE MARD-MATNR , "物料號碼
WERKS LIKE MARD-WERKS, "工厂
LABST LIKE MARD-LABST, "未限制使用的已估價庫存
END OF GT_MARD.
DATA: BEGIN OF GT_MARD2 OCCURS , "一般物料資料
LINECOLOR() TYPE C, "行颜色
MATNR LIKE MARD-MATNR , "物料號碼
WERKS LIKE MARD-WERKS, "工厂
LABST LIKE MARD-LABST, "未限制使用的已估價庫存
END OF GT_MARD2. *定义一些显示ALV时所需要使用的变量
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
"定义FIELDCAT *****************************Selection Screen
*定义选择屏幕
SELECT-OPTIONS: S_MATNR FOR MARD-MATNR. *****************************Main Process
*声明各个选择屏幕事件块
START-OF-SELECTION. PERFORM GET_DATA.
PERFORM CATA_LOG.
PERFORM ALV_SHOW. END-OF-SELECTION. *&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
FORM GET_DATA . SELECT MATNR WERKS LABST INTO TABLE GT_MARD
FROM MARD
WHERE MATNR IN S_MATNR. SORT GT_MARD BY MATNR ASCENDING. LOOP AT GT_MARD.
IF GT_MARD-LABST > .
GT_MARD2-LINECOLOR = 'C310'. "设置行颜色的值
ELSE.
GT_MARD2-LINECOLOR = ''.
ENDIF.
GT_MARD2-MATNR = GT_MARD-MATNR.
GT_MARD2-WERKS = GT_MARD-WERKS.
GT_MARD2-LABST = GT_MARD-LABST.
APPEND GT_MARD2.
GS_LAYOUT-INFO_FIELDNAME = 'LINECOLOR'. "指定数据输出内表中哪列存储的是颜色
CLEAR GT_MARD2.
ENDLOOP. ENDFORM. " GET_DATA *&---------------------------------------------------------------------*
*& Form CATA_LOG
*&---------------------------------------------------------------------*
FORM CATA_LOG . DEFINE FILEDCAT.
GT_FIELDCAT-FIELDNAME = &. "对应内表的字段名
GT_FIELDCAT-SELTEXT_L = &. "输出列文本
GT_FIELDCAT-OUTPUTLEN = &. "输出列长度
APPEND GT_FIELDCAT.
END-OF-DEFINITION. FILEDCAT 'MATNR' '物料编号' .
FILEDCAT 'WERKS' '工厂' .
FILEDCAT 'LABST' '库存' . ENDFORM. " CATA_LOG *&---------------------------------------------------------------------*
*& Form ALV_SHOW
*&---------------------------------------------------------------------*
FORM ALV_SHOW.
* 显示ALV的函数
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
I_SAVE = 'A' "保存全局,特定變式
TABLES
T_OUTTAB = GT_MARD2
EXCEPTIONS
PROGRAM_ERROR =
OTHERS = . ENDFORM. " ALV_SHOW
运行效果:

二、列:用FILEDCAT相关属性设置
代码:
*Report ZRFI001_XFL_TEST
REPORT ZRFI001_XFL_TEST . *定义ALV所需要用到的类型池
TYPE-POOLS SLIS. *****************************TABLES
TABLES:MARD. *****************************Data Definitions
*定义ALV所要显示的数据对应的内表数据类型及内表数据对象
DATA: BEGIN OF GT_MARD OCCURS , "一般物料資料
MATNR LIKE MARD-MATNR , "物料號碼
WERKS LIKE MARD-WERKS, "工厂
LABST LIKE MARD-LABST, "未限制使用的已估價庫存
END OF GT_MARD. *定义一些显示ALV时所需要使用的变量
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
"定义FIELDCAT *****************************Selection Screen
*定义选择屏幕
SELECT-OPTIONS: S_MATNR FOR MARD-MATNR. *****************************Main Process
*声明各个选择屏幕事件块
START-OF-SELECTION. PERFORM GET_DATA.
PERFORM CATA_LOG.
PERFORM ALV_SHOW. END-OF-SELECTION. *&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
FORM GET_DATA . SELECT MATNR WERKS LABST INTO TABLE GT_MARD
FROM MARD
WHERE MATNR IN S_MATNR. ENDFORM. " GET_DATA *&---------------------------------------------------------------------*
*& Form CATA_LOG
*&---------------------------------------------------------------------*
FORM CATA_LOG . DEFINE FILEDCAT.
GT_FIELDCAT-FIELDNAME = &. "对应内表的字段名
GT_FIELDCAT-SELTEXT_L = &. "输出列文本
GT_FIELDCAT-EMPHASIZE = &. "栏位的颜色
APPEND GT_FIELDCAT.
END-OF-DEFINITION. FILEDCAT 'MATNR' '物料编号' 'C310'.
FILEDCAT 'WERKS' '工厂' ''.
FILEDCAT 'LABST' '库存' ''. ENDFORM. " CATA_LOG *&---------------------------------------------------------------------*
*& Form ALV_SHOW
*&---------------------------------------------------------------------*
FORM ALV_SHOW.
* 显示ALV的函数
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = GT_FIELDCAT[]
I_SAVE = 'A' "保存全局,特定變式
TABLES
T_OUTTAB = GT_MARD
EXCEPTIONS
PROGRAM_ERROR =
OTHERS = . ENDFORM. " ALV_SHOW
运行效果:

三、单元格
*&---------------------------------------------------------------------*
*& REPORT ZMMTEST.
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMMTEST. TABLES: MSEG,MKPF,T156T,MAKT,T001W,MARC,MARD. DATA: BEGIN OF GT_MSEG OCCURS 0,
WERKS LIKE MSEG-WERKS,
BWART LIKE MSEG-BWART,
SHKZG LIKE MSEG-SHKZG,
BTEXT LIKE T156T-BTEXT,
AUFNR LIKE MSEG-AUFNR,
MATNR LIKE MSEG-MATNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE MSEG-ERFMG,
ERFME LIKE MSEG-ERFME,
LGORT LIKE MSEG-LGORT,
LGPBE LIKE MARD-LGPBE,
BUDAT_MKPF LIKE MSEG-BUDAT_MKPF,
SOBKZ LIKE MSEG-SOBKZ,
MJAHR LIKE MSEG-MJAHR,
MBLNR LIKE MSEG-MBLNR,
ZEILE LIKE MSEG-ZEILE,
KOSTL LIKE MSEG-KOSTL,
SGTXT LIKE MSEG-SGTXT,
EBELN LIKE MSEG-EBELN,
EBELP LIKE MSEG-EBELP,
LIFNR LIKE MSEG-LIFNR,
SORTL LIKE LFA1-SORTL,
BLDAT LIKE MKPF-BLDAT,
BKTXT LIKE MKPF-BKTXT,
BPMNG LIKE MSEG-BPMNG,
BSTMG LIKE MSEG-BSTMG,
BPRME LIKE MSEG-BPRME,
CPUDT_MKPF LIKE MSEG-CPUDT_MKPF,
CPUTM_MKPF LIKE MSEG-CPUTM_MKPF,
XBLNR_MKPF LIKE MSEG-XBLNR_MKPF,
USNAM_MKPF LIKE MSEG-USNAM_MKPF,
ZSTATUS LIKE ZMMT012-ZSTATUS,
ZUSER LIKE ZMMT012-ZUSER,
ZDATE LIKE ZMMT012-ZDATE,
ZTIME LIKE ZMMT012-ZTIME,
CELLCOLOR TYPE LVC_T_SCOL, "单元格颜色
END OF GT_MSEG. DATA: IW_CELLCOLOR TYPE LVC_S_SCOL. *-->ALV
TYPE-POOLS SLIS.
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV. SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-B01.
SELECT-OPTIONS: S_MATNR FOR MSEG-MATNR,
S_MBLNR FOR MSEG-MBLNR,
S_WERKS FOR MSEG-WERKS,
S_LGORT FOR MSEG-LGORT,
S_CHARG FOR MSEG-CHARG,
S_LIFNR FOR MSEG-LIFNR,
S_KUNNR FOR MSEG-KUNNR,
S_BWART FOR MSEG-BWART,
S_SOBKZ FOR MSEG-SOBKZ,
S_AUFNR FOR MSEG-AUFNR,
S_KDAUF FOR MSEG-MAT_KDAUF,
S_KDPOS FOR MSEG-MAT_KDPOS.
SELECTION-SCREEN END OF BLOCK B1. SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-B02.
SELECT-OPTIONS: S_BUDAT FOR MSEG-BUDAT_MKPF,
S_USNAM FOR MSEG-USNAM_MKPF,
S_VGART FOR MKPF-VGART,
S_XBLNR FOR MSEG-XBLNR_MKPF.
SELECTION-SCREEN END OF BLOCK B2. START-OF-SELECTION.
PERFORM: GET_DATA.
PERFORM: ALV_SHOW.
END-OF-SELECTION. FORM GET_DATA.
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LAYOUT-COLTAB_FIELDNAME = 'CELLCOLOR'. "单元格颜色内表字段
DATA: L_INDEX LIKE SY-TABIX. SELECT MSEG~WERKS MSEG~BWART MSEG~SHKZG MSEG~AUFNR MSEG~MATNR
MSEG~ERFMG MSEG~ERFME MSEG~LGORT
MSEG~BUDAT_MKPF MSEG~SOBKZ MSEG~MJAHR MSEG~MBLNR
MSEG~ZEILE MSEG~KOSTL MSEG~SGTXT
MSEG~EBELN MSEG~EBELP MSEG~LIFNR MKPF~BLDAT MKPF~BKTXT
MSEG~BPMNG MSEG~BSTMG MSEG~BPRME
MSEG~CPUDT_MKPF MSEG~CPUTM_MKPF MSEG~XBLNR_MKPF
MSEG~USNAM_MKPF
ZMMT012~ZSTATUS ZMMT012~ZUSER ZMMT012~ZDATE
ZMMT012~ZTIME LFA1~SORTL
INTO CORRESPONDING FIELDS OF TABLE GT_MSEG
FROM MSEG
LEFT JOIN MKPF ON MKPF~MJAHR = MSEG~MJAHR
AND MKPF~MBLNR = MSEG~MBLNR
LEFT JOIN ZMMT012 ON ZMMT012~MJAHR = MSEG~MJAHR
AND ZMMT012~MBLNR = MSEG~MBLNR
AND ZMMT012~ZEILE = MSEG~ZEILE
LEFT JOIN LFA1 ON LFA1~LIFNR = MSEG~LIFNR
WHERE MATNR IN S_MATNR
AND MSEG~MBLNR IN S_MBLNR
AND MSEG~WERKS IN S_WERKS
AND LGORT IN S_LGORT
AND CHARG IN S_CHARG
AND MSEG~LIFNR IN S_LIFNR
AND MSEG~KUNNR IN S_KUNNR
AND BWART IN S_BWART
AND SOBKZ IN S_SOBKZ
AND AUFNR IN S_AUFNR
AND MAT_KDAUF IN S_KDAUF
AND MAT_KDPOS IN S_KDPOS
AND BUDAT_MKPF IN S_BUDAT
AND USNAM_MKPF IN S_USNAM
AND VGART_MKPF IN S_VGART
AND XBLNR_MKPF IN S_XBLNR. SORT GT_MSEG BY MJAHR MBLNR ZEILE ASCENDING.
LOOP AT GT_MSEG.
L_INDEX = SY-TABIX. *-->异动类型名称
SELECT SINGLE BTEXT INTO GT_MSEG-BTEXT
FROM T156T
WHERE BWART = GT_MSEG-BWART
AND SPRAS = SY-LANGU. *-->物料说明
SELECT SINGLE MAKTX INTO GT_MSEG-MAKTX
FROM MAKT
WHERE MATNR = GT_MSEG-MATNR
AND SPRAS = SY-LANGU.
*-->仓库 IF GT_MSEG-LGORT = SPACE. IF GT_MSEG-AUFNR <> SPACE.
SELECT SINGLE LGPRO INTO GT_MSEG-LGORT
FROM MARC
WHERE WERKS = GT_MSEG-WERKS
AND MATNR = GT_MSEG-MATNR.
ELSE.
SELECT SINGLE LGFSB INTO GT_MSEG-LGORT
FROM MARC
WHERE WERKS = GT_MSEG-WERKS
AND MATNR = GT_MSEG-MATNR.
ENDIF.
ENDIF.
*-->储位
SELECT SINGLE LGPBE INTO GT_MSEG-LGPBE
FROM MARD
WHERE WERKS = GT_MSEG-WERKS
AND MATNR = GT_MSEG-MATNR
AND LGORT = GT_MSEG-LGORT. CASE GT_MSEG-SHKZG.
"根据借贷项类别设定颜色
WHEN 'H'.
GT_MSEG-ERFMG = GT_MSEG-ERFMG * -1.
GT_MSEG-BPMNG = GT_MSEG-BPMNG * -1.
DEFINE SET_COLOR.
IW_CELLCOLOR-FNAME = &1.
IW_CELLCOLOR-COLOR-COL = 6.
IW_CELLCOLOR-COLOR-INT = 1.
IW_CELLCOLOR-COLOR-INV = 0.
APPEND IW_CELLCOLOR TO GT_MSEG-CELLCOLOR.
END-OF-DEFINITION.
SET_COLOR 'ERFMG'.
SET_COLOR 'BPMNG'.
SET_COLOR 'BSTMG'.
WHEN 'S'.
DEFINE SET_COLOR.
IW_CELLCOLOR-FNAME = &1.
IW_CELLCOLOR-COLOR-COL = 5.
IW_CELLCOLOR-COLOR-INT = 1.
IW_CELLCOLOR-COLOR-INV = 0.
APPEND IW_CELLCOLOR TO GT_MSEG-CELLCOLOR.
END-OF-DEFINITION.
SET_COLOR 'ERFMG'.
SET_COLOR 'BPMNG'.
SET_COLOR 'BSTMG'.
ENDCASE.
MODIFY GT_MSEG INDEX L_INDEX. ENDLOOP.
ENDFORM. FORM ALV_SHOW .
DATA: L_REPID TYPE SY-REPID,
L_INCLNAME TYPE TRDIR-NAME,
L_IDX LIKE SY-TABIX.
CLEAR: GT_FIELDCAT[],WA_FIELDCAT.
L_REPID = L_INCLNAME = SY-CPROG.
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = L_REPID
I_INTERNAL_TABNAME = 'GT_MSEG'
I_INCLNAME = L_INCLNAME
CHANGING
CT_FIELDCAT = GT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
LOOP AT GT_FIELDCAT INTO WA_FIELDCAT.
L_IDX = SY-TABIX.
CASE WA_FIELDCAT-FIELDNAME.
WHEN 'SORTL'.
WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-SELTEXT_M =
WA_FIELDCAT-SELTEXT_L = '供应商名称'.
WA_FIELDCAT-DDICTXT = 'S'.
WHEN 'ZSTATUS'.
WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-SELTEXT_M =
WA_FIELDCAT-SELTEXT_L = '过账状态'.
WA_FIELDCAT-DDICTXT = 'S'.
WHEN 'ZUSER'.
WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-SELTEXT_M =
WA_FIELDCAT-SELTEXT_L = '过账用户'.
WA_FIELDCAT-DDICTXT = 'S'.
WHEN 'ZDATE'.
WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-SELTEXT_M =
WA_FIELDCAT-SELTEXT_L = '过账日期'.
WA_FIELDCAT-DDICTXT = 'S'.
WHEN 'ZTIME'.
WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-SELTEXT_M =
WA_FIELDCAT-SELTEXT_L = '过账时间'.
WA_FIELDCAT-DDICTXT = 'S'.
ENDCASE.
CLEAR WA_FIELDCAT-KEY.
MODIFY GT_FIELDCAT FROM WA_FIELDCAT INDEX L_IDX.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
* I_CALLBACK_PF_STATUS_SET = 'ALV_PF_STATUS' " 触发事件调用子程序
* I_CALLBACK_USER_COMMAND = 'ALV_USER_COMMAND' " 鼠标事件操作子程序
I_SAVE = 'A'
TABLES
T_OUTTAB = GT_MSEG
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2. ENDFORM. " ALV_SHOW
运行效果:

四:附ALV的颜色代码

ALV报表——ALV颜色设置(三)的更多相关文章
- ALV行 列颜色设置
ALV的颜色设置分为3种:行.列.单元格. 1.列颜色的设置 在 slis_t_fieldcat_alv-emphasize 中,写入需要的颜色代码. Eg: DATA: fc TYP ...
- 函数alv下的颜色设置
ABAP中的颜色代码是由4位字都组成的 cxyz c:color的简写,颜色代码均以C开头 x:标准色代码,SAP中一共有7个标准色 y:反转颜色启用/关闭 1/0 z:增强颜色启用/关闭 ...
- ALV列、行、单元格颜色设置
)颜色含义 :海蓝:2:浅清:3:黄色:4:浅蓝:5:青色:6:红色:7:橙色. (1)首位为主颜色: (2)次位为辅助颜色: (3)末位为0时,表示首位数字表为表格的底色: 末位为1时,则表示以1为 ...
- ABAP ALV 颜色设置(行,列,单元格)
BCALV_EDIT_03 http://blog.sina.com.cn/s/blog_a87b19300102who3.html 关于ALV表格颜色,这种需求在项目中会经常用到. 列颜色 列的颜色 ...
- ALV 颜色设置(行,列,单元格)
[转自:https://www.cnblogs.com/mingdashu/p/color_alv.html] BCALV_EDIT_03 http://blog.sina.com.cn/s/blog ...
- SAP ABAP ALV 颜色设置(两个ALV函数例子) 列 行 单元格
@[TOC](设置ALV颜色)# 前言淦! 要求花花绿绿的ALV ,那就淦他! 需要的参数和对应颜色放在最后.稍微改改就能用. 介绍两个常用的ALV函数实现1.REUSE_ALV_GRID_DISPL ...
- ALV报表——点击事件(二)
目录 一.ALV点击事件(双击) 一.ALV点击事件(双击) 代码: *Report ZRFI001_XFL_TEST REPORT ZRFI001_XFL_TEST . *定义ALV所需要用到的类型 ...
- Win7下如何设置护眼的电脑豆沙绿界面?保护眼睛的颜色设置教程
关爱心灵的窗户——眼睛! 随着科技发展,使用电脑的人越来越多,由于使用电脑时间过长,我们的眼睛也越发容易疲劳,干燥.如何才能使电脑对人眼的伤害减小到最 小. 小编建议大家可以把窗口背景色设置成护眼色. ...
- VC 对话框背景颜色、控件颜色(三种方法)
系统环境:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为对话框设置背景颜色.控件颜色 既然MFC对话框不好开发,那么现在我们来开始美化我们的对话框.为对话框设置背景颜色 ...
随机推荐
- arcpy 重分类
arcpy.gp.Reclassify_sa("dem.tif","Value","0 2000 1;2000 2100 2;2100 2500 3; ...
- OSG学习笔记0——解决OSG读obj模型问题[转]
原文:https://blog.csdn.net/u011310341/article/details/51179948 #include "stdafx.h" #include& ...
- 免费s账号网站
下面网址按排序顺序优先使用,数字越小优先级越高 1,https://io.freess.today/ 2,https://free-ss.site/ 3,https://ss.freess.org/ ...
- socket status 的状态变化详解
原文链接: http://www.diranieh.com/SOCKETS/SocketStates.htm --------------------------------------------- ...
- 蒙特卡洛树搜索算法 —— github上的implement的原代码
首先在网上看到了关于蒙特卡洛搜索算法的介绍,如下: https://www.cnblogs.com/steven-yang/p/5993205.html 并从中发现了一个在GitHub上impleme ...
- Eclipse安装中文简体语言包
原文地址:https://blog.csdn.net/qq_41101213/article/details/84405452 方法一:1. 下载中文语言包: 1.1 打开网址:http://www. ...
- [译]使用Pandas读取大型Excel文件
上周我参加了dataisbeautiful subreddit上的Dataviz Battle,我们不得不从TSA声明数据集创建可视化.我喜欢这种比赛,因为大多数时候你最终都会学习很多有用的东西. 这 ...
- CTF 资源
1.<CTF 工具集>包括web工具.渗透环境.隐形工具.逆向工具.漏洞扫描工具.sql注入工具.暴力破解工具.加解密工具等等. 参考地址:https://www.ctftools.com ...
- 什么是 CDN(超形象)
原文地址:https://blog.csdn.net/lu_embedded/article/details/80519898 618电商节.双十一购物狂欢节,到底是什么在支撑数以万计的秒杀活动?这就 ...
- 欧姆龙PLC_CP1H_CRC校验
1.简介 欧姆龙CP1H PLC的CRC校验.CP1H没有CRC校验指令或者功能块,在串口自由协议通信中,如果涉及到CRC校验,需要手动计算CRC值,本程序是一个输入数据,自动计算CRC校验码的程序. ...