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中的标准工具的名称、代码、图标名称、快捷键:

名称代码图标名称快捷键
刷新REFRESHICON_REFRESHF8(可随便更改)
导出为EXCEL表格EXCELShift-F8(可随便更改)
ABC 分析&ABCICON_ABCCtrl-F1
按升序排列&OUPICON_SORT_UPCtrl-F4
设置过滤器&ILTICON_FILTERCtrl-F5
总计&UMCICON_SUMCtrl-F6
邮件查收件%SLICON_MAILCtrl-F7
更改布局…&OL0ICON_ALV_VARIANTSCtrl-F8
选择布局…&OADICON_ALV_VARIANT_CHOOSECtrl-F9
保存布局…&AVEICON_ALV_VARIANT_SAVECtrl-F10
信息&INFOICON_INFORMATIONCtrl-F12
明细&ETAICON_SELECT_DETAILCtrl-Shift-F3
按降序排列&ODNICON_SORT_DOWNCtrl-Shift-F4
删除过滤器&ILDICON_FILTER_UNDOCtrl-Shift-F5
小计&SUMICON_INTERMEDIATE_SUMCtrl-Shift-F6
Microsof&VEXCELICON_XLSCtrl-Shift-F7
字处理&AQWICON_WORD_PROCESSINGCtrl-Shift-F8
本地文件%PCICON_EXPORTCtrl-Shift-F9
打印预览&RNT_PREVICON_LAYOUT_CONTROLCtrl-Shift-F10
图形&GRAPHICON_GRAPHICSCtrl-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



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 参数用于启用用户表格布局变式

alv_variant





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

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

TYPES BEGIN  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  .

DATA GW_FIELDCAT     TYPE LVC_S_FCAT ,
      GT_FIELDCAT     TYPE LVC_T_FCAT   ,
      GT_TAB          TYPE  TABLE  OF GY_TAB  .

"查询条件 选择画面
TABLES MARA .
SELECT-OPTIONS P_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 .
   "设置单元格颜色
   DATA LT_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 .
         REFRESH GW_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 .

     DATA I_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  .
   DATA I_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 ( 2 INTO 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 .

    DATA TEXT      TYPE SDYDO_TEXT_ELEMENT .
    DATA M_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 .

   DATA LR_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 .
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值