ABAP ALV

ALV参数:

I_INTERFACE_CHECK: 检查接口一致性

I_BYPASSING_BUFFER: 是否使用缓存

I_BUFFER_ACTIVE:是否**缓存,如果每次显示ALV都是相同的字段目录,则该字段目录会被放到一特殊的缓存里,加快显示速度。

I_CALLBACK_PROGRAM:调用ALV的程序名称

I_CALLBACK_PF_STATUS_SET:ALV工具栏

I_CALLBACK_USER_COMMAND:ALV User Command Subroutine(子程序),实现对应菜单项及相应事件功能

I_CALLBACK_TOP_OF_PAGE:ALV抬头内容信息

I_CALLBACK_HTML_TOP_OF_PAGE:ALV HTML格式抬头内容信息

I_CALLBACK_HTML_END_OF_LIST:ALV HTML格式页脚内容信息

I_STRUCTURE_NAME:为输出表数据结构的命名,指定了这个参数,域目录将会自动生成

I_BACKGROUND_ID:ALV背景图片Object ID

I_GRID_TITLE:ALV 标题

I_GRID_SETTINGS:GRID信息

IS_LAYOUT / IS_LAYOUT_LVC:ALV输出布局样式

IT_FIELDCAT / IT_FIELDCAT_LVC:设定显示的项目名称及输出设定

IT_EXCLUDING:隐藏设置的ALV工具栏

IT_SPECIAL_GROUPS / IT_SPECIAL_GROUPS_LVC:若内表中一些字段通过SP_GROUP被分组在一起,必须为这些组传递组文本内表

IT_SORT / IT_SORT_LVC:ALV排序设置

IT_FILTER / IT_FILTER_LVC:ALV过滤设置

IS_SEL_HIDE:替换或修改屏幕中select-option的值

I_DEFAULT:用户是否可以定义默认的布局,’X'-可以定义默认布局,Space-不可以定义默认布局 (默认:X)

I_SAVE:保存表格布局,’X'-只能保存全局变式;’U'-只能保存特定变式;’A'-都可以保存;Space-不能保存变式 (默认:space)

IS_VARIANT:表格布局变式

IT_EVENTS:设置事件, 类型为slis_t_event的内表(name:事件名称,form:事件的FORM)

IT_EVENT_EXIT:设置回调的方法的执行行为,表明用户所写的代码是在执行标准执行之前还是之后

IS_PRINT:后台打印的相关参数

I_SCREEN_START_COLUMN:以对话框形式显示的开始列

I_SCREEN_START_LINE:以对话框形式显示的开始行

I_SCREEN_END_COLUMN:以对话框形式显示的结束列

I_SCREEN_END_LINE:以对话框形式显示的结束行

I_HTML_HEIGHT_TOP:HTML抬头的高度

I_HTML_HEIGHT_END:HTML页脚的高度

IT_ALV_GRAPHICS:是否可以在图表中显示ALV

IT_HYPERLINK:使用超链接

ALV中的标准工具的名称、代码、图标名称、快捷键:

名称 代码 图标名称 快捷键
刷新 REFRESH ICON_REFRESH F8(可随便更改)
导出为EXCEL表格 EXCEL Shift-F8(可随便更改)
ABC 分析 &ABC ICON_ABC Ctrl-F1
按升序排列 &OUP ICON_SORT_UP Ctrl-F4
设置过滤器 &ILT ICON_FILTER Ctrl-F5
总计 &UMC ICON_SUM Ctrl-F6
邮件查收件 %SL ICON_MAIL Ctrl-F7
更改布局… &OL0 ICON_ALV_VARIANTS Ctrl-F8
选择布局… &OAD ICON_ALV_VARIANT_CHOOSE Ctrl-F9
保存布局… &AVE ICON_ALV_VARIANT_SAVE Ctrl-F10
信息 &INFO ICON_INFORMATION Ctrl-F12
明细 &ETA ICON_SELECT_DETAIL Ctrl-Shift-F3
按降序排列 &ODN ICON_SORT_DOWN Ctrl-Shift-F4
删除过滤器 &ILD ICON_FILTER_UNDO Ctrl-Shift-F5
小计 &SUM ICON_INTERMEDIATE_SUM Ctrl-Shift-F6
Microsof &VEXCEL ICON_XLS Ctrl-Shift-F7
字处理 &AQW ICON_WORD_PROCESSING Ctrl-Shift-F8
本地文件 %PC ICON_EXPORT Ctrl-Shift-F9
打印预览 &RNT_PREV ICON_LAYOUT_CONTROL Ctrl-Shift-F10
图形 &GRAPH ICON_GRAPHICS Ctrl-Shift-F11

ALV 控制: 布局结构

ZEBRA 1 类型 LVC_ZEBRA CHAR 1 0 ALV 控制: 可选行颜色 (带)
EDIT 1 类型 LVC_EDIT CHAR 1 0 ALV 控制: 准备输入
EDIT_MODE 1 类型 LVC_EDMO CHAR 1 0 ALV 控制: 编辑模式
NO_KEYFIX 1 类型 LVC_NOKFIX CHAR 1 0 ALV 控制: 不要固定关键列 
FRONTEND 1 类型 LVC_FRONT CHAR 1 0 ALV 控制: Excel, Crystal 或 ALV
OBJECT_KEY 1 类型 BDS_TYPEID CHAR 70 0 业务文档服务:对象键值 
DOC_ID 1 类型 BDS_DOCID CHAR 42 0 业务文档服务:文档标识 
TEMPLATE 1 类型 BDS_FILENA CHAR 255 0 业务文档服务:文件名称 
LANGUAGE 1 类型 LANG LANG 1 0 语言标识符 
GRAPHICS 1 类型 GUID_32 CHAR 32 0 'CHAR' 格式的大写的 GUID
SMALLTITLE 1 类型 LVC_TITSZ CHAR 1 0 ALV 控制: 标题大小
NO_HGRIDLN 1 类型 LVC_HGRID CHAR 1 0 ALV 控制: 隐藏水平网格线 
NO_VGRIDLN 1 类型 LVC_VGRID CHAR 1 0 ALV 控制: 隐藏垂直网格线 
NO_HEADERS 1 类型 LVC_HEADS CHAR 1 0 ALV 控制: 隐藏列抬头 
NO_MERGING 1 类型 LVC_MERGE CHAR 1 0 ALV 控制: 禁用单元格合并 
CWIDTH_OPT 1 类型 LVC_CWO CHAR 1 0 ALV 控制: 优化列宽度 

TOTALS_BEF 1 类型 LVC_TOTBEF CHAR 1 0 ALV 控制:在单个记录前总计输出

NO_TOTARR 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
NO_TOTEXP 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
NO_ROWMOVE 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
NO_ROWINS 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
NO_COLEXPD 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
NO_F4 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
COUNTFNAME 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
COL_OPT 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
VAL_DATA 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
BLOB_SCOPE 1 类型 SALV_BS_BLOB_SCOPE CHAR 1 0 Identifier if BLOB is from SAP or Customer
BLOB_FLAVOUR 1 类型 SALV_BS_BLOB_FLAVOUR CHAR 6 0 Key Field for BLOB Store in SALV_BS_BLOB_...
BLOB_NAME 1 类型 SALV_BS_BLOB_NAME CHAR 24 0 Name for BLOB Store in SALV_BS_BLOB_...
BLOB_KEY 1 类型 SLIS_BLOB_KEY CHAR 10 0 BLOB 存储的关键字字段
BLOB_TYPE 1 类型 SLIS_BLOB_TYPE CHAR 1 0 BLOB 显示模式下 ALV 布局的标识 
.INCLUDE 1 类型 LVC_S_L001 0 0 ALV 控制: 一般显示选项
STYLEFNAME 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
.INCLUDE 1 类型 LVC_S_L002 0 0 ALV 控制: 网格定制

NO_ROWMARK 1 类型 LVC_ROWMK CHAR 1 0 ALV 控制: 禁用行选择

NO_TOOLBAR 1 类型 LVC_TOOLB CHAR 1 0 ALV 控制: 隐藏工具栏 
GRID_TITLE 1 类型 LVC_TITLE CHAR 70 0 ALV 控制: 标题栏文本 
SEL_MODE 1 类型 LVC_LIBOX CHAR 1 0 ALV 控制: 选择方式
BOX_FNAME 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
SGL_CLK_HD 1 类型 LVC_SGLCLH CHAR 1 0 ALV 控制: 单击列标题 
.INCLUDE 1 类型 LVC_S_L003 0 0 ALV 控制: 总计选项
NO_TOTLINE 1 类型 LVC_NOTOTL CHAR 1 0 ALV 控制: 不要输出总计行 
NUMC_TOTAL 1 类型 LVC_NUMCTO CHAR 1 0 ALV 控制: 禁止 NUMC 字段总计
NO_UTSPLIT 1 类型 LVC_UNITSP CHAR 1 0 ALV 控制: 按单元拆分总计行 
.INCLUDE 1 类型 LVC_S_L004 0 0 ALV 控制: 例外
EXCP_FNAME 1 类型 LVC_EXFNM CHAR 30 0 ALV 控制: 字段名称带有例外编码
EXCP_ROLLN 1 类型 LVC_EXROL CHAR 30 0 ALV 控制: 例外文档的数据元素 
EXCP_CONDS 1 类型 LVC_EXCON CHAR 1 0 ALV 控制: 合计例外
EXCP_LED 1 类型 LVC_EXLED CHAR 1 0 ALV 控制: 例外作为 LED
EXCP_GROUP 1 类型 LVC_EXGRP CHAR 1 0 ALV 控制:例外组
.INCLUDE 1 类型 LVC_S_L005 0 0 ALV 控制: 接口控制
DETAILINIT 1 类型 LVC_DETINI CHAR 1 0 ALV 控制:在细节屏幕显示初始值 

DETAILTITL 1 类型 LVC_DETTIT CHAR 60 0 ALV 控制: 细节屏幕的标题栏

KEYHOT 1 类型 LVC_KEYHOT CHAR 1 0 ALV 控制: 关键列作为热点 
NO_AUTHOR 1 类型 LVC_NOAUTH CHAR 1 0 ALV 控制: 不执行 ALV 标准授权检查 
XIFUNCKEY 1 类型 AQS_XIKEY CHAR 30 0 SAP 查询 (S): 附加功能名 
XIDIRECT 1 类型 FLAG CHAR 1 0 一般标记 
S_DRAGDROP 1 类型 LVC_S_DD01 0 0 ALV 控制: 拖&放控制设置 
.INCLUDE 1 类型 LVC_S_L006 0 0 ALV 控制: 颜色
INFO_FNAME 1 类型 LVC_CIFNM CHAR 30 0 ALV 控制: 带有简单行彩色代码的字段名称 
CTAB_FNAME 1 类型 LVC_CTFNM CHAR 30 0 ALV 控制: 带有复杂单元格颜色编码的字段名称
.INCLUDE 1 类型 LVC_S_LOO8 0 0 ALV 控制: Web 选项
WEBLOOK 1 类型 LVC_LOOK CHAR 10 0 ALV 控制: Web 查看
WEBSTYLE 1 类型 LVC_STYLE RAW 4 0 ALV 控制: 样式
WEBROWS 1 类型 LVC_WEBROW INT4 10 0 ALV 控制: Web 中显示的行数
WEBXWIDTH 1 类型 INT4 INT4 10 0 自然数 

WEBXHEIGHT 1 类型 INT4 INT4 10 0 自然数 

LVC_S_FCAT

ROW_POS 1 类型 LVC_ROWPOS INT4 10 0 ALV 控制: 输出行 (内部使用)
COL_POS 1 类型 LVC_COLPOS INT4 10 0 ALV 控制: 输出列 
FIELDNAME 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
TABNAME 1 类型 LVC_TNAME CHAR 30 0 LVC 标签名称
CURRENCY 1 类型 LVC_CURR CHAR 5 0 ALV 控制: 货币单位
CFIELDNAME 1 类型 LVC_CFNAME CHAR 30 0 ALV 控制: 参考的当前单位的字段名称 
QUANTITY 1 类型 LVC_QUAN CHAR 3 0 ALV 控制: 计量单位
QFIELDNAME 1 类型 LVC_QFNAME CHAR 30 0 ALV 控制: 参考计量单位的字段名称
IFIELDNAME 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
ROUND 1 类型 LVC_ROUND INT4 10 0 ALV 控制: ROUND 值 
EXPONENT 1 类型 LVC_EXPONT CHAR 3 0 ALV 控制:流动表示的指数
KEY 1 类型 LVC_KEY CHAR 1 0 ALV 控制: 关键字段
KEY_SEL 1 类型 LVC_KEYSEL CHAR 1 0 ALV 控制: 可以被隐藏的关键列 
ICON 1 类型 LVC_ICON CHAR 1 0 ALV 控制: 作为图标输出
SYMBOL 1 类型 LVC_SYMBOL CHAR 1 0 ALV 控制: 输出作为符号
CHECKBOX 1 类型 LVC_CHECKB CHAR 1 0 ALV 控制: 作为复选框输出
JUST 1 类型 LVC_JUST CHAR 1 0 ALV 控制: 对齐

LZERO 1 类型 LVC_LZERO CHAR 1 0 ALV 控制: 输出前导零 

NO_SIGN 1 类型 LVC_NOSIGN CHAR 1 0 ALV 控制:输出抑制符号 
NO_ZERO 1 类型 LVC_NOZERO CHAR 1 0 ALV 控制: 为输出隐藏零
NO_CONVEXT 1 类型 LVC_NOCONV CHAR 1 0 SAP 列表查看器控件:忽略输出的转换出口 
EDIT_MASK 1 类型 LVC_EDTMSK CHAR 60 0 ALV 控制: 为输出编辑掩码 
EMPHASIZE 1 类型 LVC_EMPHSZ CHAR 4 0 ALV 控制: 带有颜色的高亮列
FIX_COLUMN 1 类型 LVC_FIXCOL CHAR 1 0 ALV 控制: 固定列 
DO_SUM 1 类型 LVC_DOSUM CHAR 1 0 ALV 控制: 总计列值 
NO_SUM 1 类型 LVC_NOSUM CHAR 1 0 ALV 控制: 没有总计列值 
NO_OUT 1 类型 LVC_NOOUT CHAR 1 0 ALV 控制: 列没有输出 
TECH 1 类型 LVC_TECH CHAR 1 0 ALV 控制: 技术字段 
OUTPUTLEN 1 类型 LVC_OUTLEN NUMC 6 0 ALV 控制: 列的字符宽度
CONVEXIT 1 类型 CONVEXIT CHAR 5 0 转换例程
SELTEXT 1 类型 LVC_TXT CHAR 40 0 ALV 控制: 对话功能的列标识符 
TOOLTIP 1 类型 LVC_TIP CHAR 40 0 SAP 列表查看器控件:列抬头的工具提示
ROLLNAME 1 类型 LVC_ROLL CHAR 30 0 ALV 控制: F1 帮助的数据元素 
DATATYPE 1 类型 DATATYPE_D CHAR 4 0 ABAP 字典中的数据类型
INTTYPE 1 类型 INTTYPE CHAR 1 0 ABAP 数据类型(C,D,N,...)

INTLEN 1 类型 INTLEN NUMC 6 0 内部长度(字节)

LOWERCASE 1 类型 LOWERCASE CHAR 1 0 允许/不允许小写字母 
REPTEXT 1 类型 REPTEXT CHAR 55 0 标题
HIER_LEVEL 1 类型 LVC_HIERL INT4 10 0 ALV 控制: 内部使用
REPREP 1 类型 LVC_CRPRP CHAR 1 0 ALV 控制: 价值是补充/补充接口的选择标准
DOMNAME 1 类型 DOMNAME CHAR 30 0 定义域名
SP_GROUP 1 类型 LVC_SPGRP CHAR 4 0 组代码 
HOTSPOT 1 类型 LVC_HOTSPT CHAR 1 0 ALV 控制: 单击敏感
DFIELDNAME 1 类型 LVCDBGFN CHAR 30 0 ALV 控制: 数据库中列组的字段名称 
COL_ID 1 类型 LVC_COLID INT4 10 0 ALV 控制: 列 ID
F4AVAILABL 1 类型 DDF4AVAIL CHAR 1 0 字段有输入帮助吗
AUTO_VALUE 1 类型 LVC_AUTO CHAR 1 0 ALV 控制: 自动复制值 
CHECKTABLE 1 类型 TABNAME CHAR 30 0 表名
VALEXI 1 类型 VALEXI CHAR 1 0 固定值存在 
WEB_FIELD 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
HREF_HNDL 1 类型 INT4 INT4 10 0 自然数 
STYLE 1 类型 LVC_STYLE RAW 4 0 ALV 控制: 样式
STYLE2 1 类型 LVC_STYLE RAW 4 0 ALV 控制: 样式

STYLE3 1 类型 LVC_STYLE RAW 4 0 ALV 控制: 样式

STYLE4 1 类型 LVC_STYLE RAW 4 0 ALV 控制: 样式
DRDN_HNDL 1 类型 INT4 INT4 10 0 自然数 
DRDN_FIELD 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
NO_MERGING 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
H_FTYPE 1 类型 LVC_FTYPE CHAR 3 0 ALV 树控制: 功能类型 (总计,平均,最大.最小, ...)
COL_OPT 1 类型 LVC_COLOPT CHAR 1 0 可选列优化的条目 
NO_INIT_CH 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
DRDN_ALIAS 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
DECFLOAT_STYLE 1 类型 OUTPUTSTYLE NUMC 2 0 DD: Output Style (Output Style) for Decfloat Types
PARAMETER0 1 类型 CHAR30 CHAR 30 0 30 个字符 
PARAMETER1 1 类型 CHAR30 CHAR 30 0 30 个字符 
PARAMETER2 1 类型 CHAR30 CHAR 30 0 30 个字符 
PARAMETER3 1 类型 CHAR30 CHAR 30 0 30 个字符 
PARAMETER4 1 类型 CHAR30 CHAR 30 0 30 个字符 
PARAMETER5 1 类型 INT4 INT4 10 0 自然数 
PARAMETER6 1 类型 INT4 INT4 10 0 自然数 
PARAMETER7 1 类型 INT4 INT4 10 0 自然数 

PARAMETER8 1 类型 INT4 INT4 10 0 自然数 

PARAMETER9 1 类型 INT4 INT4 10 0 自然数 
REF_FIELD 1 类型 LVC_RFNAME CHAR 30 0 ALV 控制: 内部表字段的参考字段名称 
REF_TABLE 1 类型 LVC_RTNAME CHAR 30 0 ALV 控制: 内部表字段的参考表名称
TXT_FIELD 1 类型 LVC_FNAME CHAR 30 0 ALV 控制: 内部表字段的字段名称
ROUNDFIELD 1 类型 LVC_RNDFN CHAR 30 0 ALV 控制: 带有 ROUND 说明的字段名称 
DECIMALS_O 1 类型 LVC_DECMLS CHAR 6 0 ALV 控制: 输出小数位的编号
DECMLFIELD 1 类型 LVC_DFNAME CHAR 30 0 ALV 控制: 带有 DECIMALS 说明的字段名称 
DD_OUTLEN 1 类型 LVC_DDLEN NUMC 6 0 ALV 控制: 输出字符长度
DECIMALS 1 类型 DECIMALS NUMC 6 0 小数位数
COLTEXT 1 类型 LVC_TXTCOL CHAR 40 0 ALV 控制: 列标题 
SCRTEXT_L 1 类型 SCRTEXT_L CHAR 40 0 长字段标签 
SCRTEXT_M 1 类型 SCRTEXT_M CHAR 20 0 中字段标签 
SCRTEXT_S 1 类型 SCRTEXT_S CHAR 10 0 短字段标签 
COLDDICTXT 1 类型 LVC_DDICT CHAR 1 0 ALV 控制: 确定 DDIC 文本参考 
SELDDICTXT 1 类型 LVC_DDICT CHAR 1 0 ALV 控制: 确定 DDIC 文本参考 
TIPDDICTXT 1 类型 LVC_DDICT CHAR 1 0 ALV 控制: 确定 DDIC 文本参考 
EDIT 1 类型 LVC_EDIT CHAR 1 0 ALV 控制: 准备输入

TECH_COL 1 类型 LVC_TCOL INT4 10 0 ALV 控制: 内部使用

TECH_FORM 1 类型 LVC_TFORM INT4 10 0 ALV 控制: 内部使用
TECH_COMP 1 类型 LVC_TCOMP CHAR 1 0 ALV 控制: 内部使用
HIER_CPOS 1 类型 LVCHCOLPOS INT2 5 0 ALV 控制: 层次列位置 
H_COL_KEY 1 类型 TV_ITMNAME CHAR 12 0 树控制: 列名称/项目名称
H_SELECT 1 类型 LVC_SELECT CHAR 1 0 标识是否可以选择树控制中的列
DD_ROLL 1 类型 ROLLNAME CHAR 30 0 数据元素 (语义域)
DRAGDROPID 1 类型 LVC_DDID INT4 10 0 ALV 控制: 拖&放处理拖放对象 
MAC 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
INDX_FIELD 1 类型 INT4 INT4 10 0 自然数 
INDX_CFIEL 1 类型 INT4 INT4 10 0 自然数 
INDX_QFIEL 1 类型 INT4 INT4 10 0 自然数 
INDX_IFIEL 1 类型 INT4 INT4 10 0 自然数 
INDX_ROUND 1 类型 INT4 INT4 10 0 自然数 
INDX_DECML 1 类型 INT4 INT4 10 0 自然数 
GET_STYLE 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
MARK 1 类型 CHAR01 CHAR 1 0 长度为 1 的字符字段 
______________________________                                                                                                                                                                                                                                                               ______________________________ ____________________________________________________________________________________________________________________________________ ______ ______ ____________________________________________________________



上传图片

T-CODE :OAER

ABAP ALV

ABAP ALV

IT_FIELDCAT

单列优化宽度

wa_fieldcat-col_opt   = 'X'.

单列求和或者取消求和,添加属性

wa_fieldcat-do_sum    = ‘X’.   " 求和
wa_fieldcat-no_sum    = ‘X’.   " 取消求和

对齐方式

wa_fieldcat-just    = 'L' .   " 左对齐
wa_fieldcat-just    = 'C' .   " 居中对齐
wa_fieldcat-just    = 'R' .   " 右对齐


I_DEFAULT/ I_SAVE/ IS_VARIANT 参数属性

这三个参数都是用于ALV 布局的保存设置:

01). I_DEFAULT参数用于设置用户是否可以定义默认的布局: ’X' 可以定义默认布局, SPACE 不可以定义默认布局 (默认:X)

02). I_SAVE 参数 保存表格布局: ’X' 只能保存全局变式 ’U' 只能保存特定变式 ’A' 都可以保存 SPACE 不能保存变式 (默认:space)

03). IS_VARIANT 参数用于启用用户表格布局变式

ABAP ALV




ABAP ALV

*&---------------------------------------------------------------------*

*& Report YHX_ALV
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YHX_ALV.

TYPESBEGIN OF GY_TAB ,
    LINECOLOR TYPE CHAR04 ,"设置报表行颜色
    CELLCOLOR TYPE LVC_T_SCOL ,"设置单元格颜色
*    CELLCOLOR TYPE SLIS_T_SPECIALCOL_ALV,
    BOX   TYPE CHAR01 .
    INCLUDE STRUCTURE MAKT .
  TYPES END OF GY_TAB .

DATAGW_FIELDCAT    TYPE LVC_S_FCAT,
      GT_FIELDCAT    TYPE LVC_T_FCAT  ,
      GT_TAB         TYPE TABLE OF GY_TAB .

"查询条件 选择画面
TABLES MARA.
SELECT-OPTIONSP_MATNR FOR MARA-MATNR .

*1----------------------------------------------------------------------
*INITIALIZATION
*“初始化变量/内标/结果。
*----------------------------------------------------------------------
INITIALIZATION.



*2----------------------------------------------------------------------
*AT SELECTION-SCREEN OUTPUT
*选择画面显示之前走这段代码
*----------------------------------------------------------------------
AT SELECTION-SCREEN OUTPUT.


*3----------------------------------------------------------------------
*AT SELECTION-SCREEN
*按选择画面按钮后的操作--检查,权限检查。
*----------------------------------------------------------------------
AT SELECTION-SCREEN.


*4----------------------------------------------------------------------
*START-OF-SELECTION
*主处理,alv,查询数据
*----------------------------------------------------------------------
START-OF-SELECTION.

  PERFORM FRM_GET_DATA.

  PERFORM FRM_SHOW_ALV .
*5----------------------------------------------------------------------
*END-OF-SELECTION
*清空变量,内表
*----------------------------------------------------------------------
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& 包含               YHX_ALV_DEMO_FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_DATA .
  "获取报表显示的数据
 SELECT INTO CORRESPONDING FIELDS OF TABLE GT_TAB FROM MAKT UP TO 100 ROWS
   WHERE MATNR IN P_MATNR .

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SHOW_ALV
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_SHOW_ALV .
  "获取报表字段
PERFORM FRM_GET_FIELID .
  "显示报表
PERFORM FRM_DISPLAY_ALV .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_FIELID
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_FIELID .

DEFINE FCATADD.
  CLEAR GW_FIELDCAT.
  GW_FIELDCAT-FIELDNAME &1.
  GW_FIELDCAT-TABNAME &2.
  GW_FIELDCAT-SCRTEXT_L &3.
  GW_FIELDCAT-SCRTEXT_M &3.
  GW_FIELDCAT-SCRTEXT_S &3.
  GW_FIELDCAT-OUTPUTLEN &4.
  GW_FIELDCAT-REF_FIELD &5.
  GW_FIELDCAT-REF_TABLE &6.
  GW_FIELDCAT-JUST      'C'.
  IF GW_FIELDCAT-FIELDNAME  'BOX'.
    GW_FIELDCAT-EDIT 'X' .
    GW_FIELDCAT-CHECKBOX 'X' .
  ENDIF.
  "设置指定列的单元格颜色
  IF GW_FIELDCAT-FIELDNAME  'MAKTG'.
    GW_FIELDCAT-EMPHASIZE 'C511' .
  ENDIF.

  APPEND GW_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.

  FCATADD  'BOX'         'GT_TAB'   '选择'            '8' '' ''.
  FCATADD  'MATNR'       'GT_TAB'   '物料号码'        '20' '' ''.
  FCATADD  'SPRAS'       'GT_TAB'   '语言代码'         '15' '' ''.
  FCATADD  'MAKTX'       'GT_TAB'   '物料描述'         '30' '' ''.
  FCATADD  'MAKTG'       'GT_TAB'   '物料描述'          '30' '' ''.

"直接获取表或者结构中的字段 用于报表字段的显示
*CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
* EXPORTING
**   I_BUFFER_ACTIVE              =
*   I_STRUCTURE_NAME             = 'MAKT'
**   I_CLIENT_NEVER_DISPLAY       = 'X'
**   I_BYPASSING_BUFFER           =
**   I_INTERNAL_TABNAME           =
*  CHANGING
*    CT_FIELDCAT                  = GT_FIELDCAT
** EXCEPTIONS
**   INCONSISTENT_INTERFACE       = 1
**   PROGRAM_ERROR                = 2
**   OTHERS                       = 3
*          .




ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_DISPLAY_ALV .


DATA:LS_LAYOUT  TYPE LVC_S_LAYO.
DATA:L_EVENTS TYPE SLIS_T_EVENT.

  "控制ALV 隔行的  颜色带
  LS_LAYOUT-ZEBRA  'X'.
*  LS_LAYOUT-DETAILTITL = '详细内容' .
  "设置行颜色
  LS_LAYOUT-INFO_FNAME 'LINECOLOR' .
  LOOP AT GT_TAB INTO DATA(GW_TAB).
    IF SY-TABIX 5.
      GW_TAB-LINECOLOR 'C411'.
    ENDIF.
    MODIFY GT_TAB FROM GW_TAB.
  ENDLOOP.
  "设置单元格颜色
  DATALT_COLOR TYPE LVC_T_SCOL,"SLIS_T_SPECIALCOL_ALV," LVC_T_SCOL ,
        LS_COLOR TYPE LVC_S_SCOL."SLIS_SPECIALCOL_ALV." LVC_S_SCOL.
  LS_LAYOUT-CTAB_FNAME 'CELLCOLOR' .
  LOOP AT GT_TAB INTO DATA(GW_TAB1).
    LOOP AT GT_FIELDCAT INTO GW_FIELDCAT.
      CLEAR LS_COLOR .
      LS_COLOR-FNAME GW_FIELDCAT-FIELDNAME .
      IF LS_COLOR-FNAME EQ 'SPRAS' .
        CASE GW_TAB1-SPRAS.
          WHEN '1'.
            LS_COLOR-COLOR-COL '1' "颜色种类
*            LS_COLOR-COLOR-INT = '1' . "“单元格颜色
            LS_COLOR-COLOR-INV '1' ."字体颜色
          WHEN OTHERS.
        ENDCASE.
        REFRESHGW_TAB-CELLCOLOR ,LT_COLOR.
        INSERT LS_COLOR INTO TABLE LT_COLOR .
      ENDIF.
    ENDLOOP.
    INSERT LINES OF LT_COLOR INTO TABLE GW_TAB1-CELLCOLOR .
    MODIFY GT_TAB FROM GW_TAB1 .

  ENDLOOP.

    DATAI_GRID_TITLE TYPE LVC_TITLE .

    I_GRID_TITLE '小标题' .

 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM SY-REPID
      I_CALLBACK_TOP_OF_PAGE   'FRM_TOP_OF_PAGE'
*      I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
      I_GRID_TITLE           I_GRID_TITLE
      I_CALLBACK_USER_COMMAND 'USER_COMMAND'
      I_CALLBACK_PF_STATUS_SET 'F_SET_STATUS'
      IS_LAYOUT_LVC      LS_LAYOUT
      IT_FIELDCAT_LVC    GT_FIELDCAT
      I_SAVE             'A'
      IT_EVENTS          L_EVENTS[]
      I_HTML_HEIGHT_TOP  =  24
    TABLES
      T_OUTTAB           GT_TAB
    EXCEPTIONS
      PROGRAM_ERROR      1
      OTHERS             2.
ENDFORM.
FORM FRM_TOP_OF_PAGE .
  DATAI_HEADER  TYPE  SLIS_T_LISTHEADER,
        WA_HEADER TYPE SLIS_LISTHEADER ,
        L_DATE    TYPE STRING  ,
        L_NAME    TYPE STRING ,
        NAME_FIRST LIKE ADRP-NAME_FIRST ,
        NAME_LAST  LIKE ADRP-NAME_LAST .
* 拼接制表日期
  CONCATENATE SY-DATUM+0(4'.'
              SY-DATUM+4(2'.'
              SY-DATUM+6(2INTO L_DATE.

  CONCATENATE '制表人:'   SY-UNAME INTO L_NAME .
  CONCATENATE '制表日期:' L_DATE  INTO L_DATE .

* 位于标题第一行
  WA_HEADER-TYP  'H'" H = Header, S = Selection, A = Action
  WA_HEADER-INFO 'ALV DEMO' .
  APPEND WA_HEADER TO I_HEADER .
  CLEAR  WA_HEADER .

* 相关内容信息,这里用于显示登录用户信息描述
  WA_HEADER-TYP  'S'.
  WA_HEADER-KEY  L_NAME .
  WA_HEADER-INFO L_DATE .
  APPEND WA_HEADER TO I_HEADER .
  APPEND WA_HEADER TO I_HEADER .
  CLEAR  WA_HEADER .

  WA_HEADER-TYP  'A'.
  WA_HEADER-KEY  L_NAME .
  WA_HEADER-INFO L_DATE .
  APPEND WA_HEADER TO I_HEADER .
  APPEND WA_HEADER TO I_HEADER .
  CLEAR  WA_HEADER .

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY       I_HEADER
     I_LOGO                   'Z_LOGO'
*     I_END_OF_LIST_GRID       =
     I_ALV_FORM               'X'.

ENDFORM .

FORM HTML_TOP_OF_PAGE USING DOCUMENT TYPE REF TO CL_DD_DOCUMENT.

   DATATEXT     TYPE SDYDO_TEXT_ELEMENT.
   DATAM_P      TYPE ,
         M_BUFFER TYPE STRING .

  CONCATENATE
  '<h1 align="center">ALV 模板</h1>'
'<table width="800" height="34" >'
 ' <tr>'
  '  <td width="400" height="28" align="left">名称1:'    'ALV1'
  ' </td>'
   ' <td width="200" align="center">名称2:'    'ALV2'   '</td>'"'-' S_RPMAX+1(2)
   ' <td width="200" align="center">名称3:ALV3'      '</td>'
   ' <td width="200" align="right">名称4:ALV4</td>'
 ' </tr>'
'</table>'

  INTO M_BUFFER.
  CALL METHOD DOCUMENT->HTML_INSERT
    EXPORTING
      CONTENTS M_BUFFER
    CHANGING
      POSITION M_P
                    .

ENDFORM.

FORM F_SET_STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS  'ZGUI101'.
ENDFORM.                    "F_SET_STATUS

FORM USER_COMMAND USING UCOMM TYPE SYUCOMM SELFIELD TYPE SLIS_SELFIELD.

  DATALR_GRID TYPE  REF TO CL_GUI_ALV_GRID ,
        ZLINE   TYPE STRING ,
        ZANSWER TYPE .
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID LR_GRID.
  "刷新
  CALL METHOD LR_GRID->CHECK_CHANGED_DATA.

        SELFIELD-REFRESH 'X'.

  CASE UCOMM.
        WHEN '&DATA_SAVE'.
          MESSAGE '你点击了保存按钮' TYPE 'I' .


         WHEN 'LOAD'.
           MESSAGE '你点击了下载按钮' TYPE 'I' .
          WHEN '&IC1'.
            DATA:MSG TYPE STRING .
            CLEAR MSG .
            ZLINE SELFIELD-TABINDEX .
            CONCATENATE '你双击的是' ZLINE '行,字段是:' SELFIELD-FIELDNAME
             ',它的值是:' SELFIELD-VALUE INTO MSG .

            CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'
                EXPORTING
                  TEXTLINE1           MSG
*                 TEXTLINE2           = '第二行'
                  TITEL               '表头行'
*                 START_COLUMN        = 25
*                 START_ROW           = 6
*                 DEFAULTOPTION       = 'N'
               IMPORTING
                 ANSWER              ZANSWER
                        .


  ENDCASE.

ENDFORM.