ALV基础知识(一)
ALV网格控制(ALV=SAP List Viewer)是对从DB取得的数据等进行一览显示的工具。
通常,一览操作的程序仅作为一般显示,而ALV可以使用用户定义选项来扩展该工具。
ALV网格控制由工具栏、标题和输出Table构成。
在显示画面上,可以调整项目宽度、调换列的显示顺序、排序、或者做数据过滤等。
实现步骤:
1.选择屏幕
2.屏幕输入检查
3.从DB中取出数据
编辑数据
一览画面(ALV)显示
字段目录生成 :
利用Function模块REUSE_ALV_FIELDCATALOG_MERGE
字段目录编辑(根据需要):
在XX的情况下,如果有想要隐藏特定字段等需求的话,就做这相关的处理逻辑
布局Layout的设置:
用【作業領域名】TYPE SLIS_LAYOUT_ALV定义用于存储布局信息的工作区
ALV显示:
利用Function模块REUSE_ALV_GRID_DISPLAY 显示 将左述 从DB取出数据、编辑数据 制作的数据及字段目录信息作为参数传送。
步骤1 首先创建一个ALV表的结构字段

步骤2 显示ALV数据:
显示ALV生成目录:
模块 REUSE_ALV_FIELDCATALOG_MERGE
程序ID SY-REPID
I_STRUCTURE_NAME = '使用定义的ALV字段'
CI_FIELDCAT 内表 : SLIS_T_FIELDCAT_ALV

布局LAYOUT设置:
利用Function模块REUSE_ALV_GRID_DISPLAY显示
・将左述 从DB取出数据、编辑数据 制作的数据及字段目录信息作为参数传送
SE37事物代码

layout布局
lw_layout-colwidth_optimize = ‘X’. or 空白(SPACE)
设置斑马线ZEBRA




显示LW_LAYOUT : 布局


显示效果展示:

点击LIT_FIELDCAT 显示效果:

编辑字段:
循环编辑内表里的字段数据
LIT_FIELDCAT 常用的编辑字段
FIELDNAME : 名称编辑
KEY : 设置水蓝色背景
CHECKBOX :设置复选框
EDIT :可编辑 可输入状态
SELTEXT_I = TEXT-XXX 长
SELTEXT_M = TEXT-XXX 中
SELTEXT_S = TEXT-XXX 短
DDICTXT = SPACE 可以指定具体指定的长中短 控制描述内容的具体显示
最后必须有个MODIFY更新数据
JUST 设置对齐方式: L : 左边 R:右边 C:中间
LZERO : 设置前导0 (只针对NUMC类型字段有效)
NO_SIGN : 显示正负号
EMPHASIZE :设置颜色

FIX_COLUMN = ABAP_ON : 设置为固定列
DO_SUM : 进行合计
NO_OUT : 隐藏字段 后期通过change layout显示出来
TECH : 隐藏字段(始终不显示出来)
REPTEXT_DDOC : 描述内容 HEADING
HOTSPOT : 设置超链接
指针(字段符号):
FIELD-SYMBOLS
<> 符号
结构嵌套方法:

SEL : 选择行
BOX_FIRLDNAME = 'SEL' 作为选择行
数据编辑:
行信息
列信息
颜色

I_CALLBACK_PROGPAM = 设置系统变量id
I_CALLBACK_PF_STATUS_SET = 设置STATUS BAR回调 FORM ID 工具烂回调

向工具栏中添加按钮:
在默认状态栏中添加按钮
操作步骤
复制status并创建新的功能按钮
在程序中创建用于调用status的子例程(Form)
REUSE_ALV_GRID_DISPLAY将上述创建的调用用子例程名称作为参数传递
设置工具栏:


创建Greate Status:
设置Status: 2000

参考样板:
程序「SAPLKKBL」的状态栏「STANDARD」
指定STATUS:
SET PF-STATUS '2000'

添加图标:


I_CALLBACK_USER_COMMAND : 设置用户响应事件


利用返回值 来判断当前触发了哪个按钮:
数量调整判断:

同步数据:

刷新内表数据展示ALV页面上:

用户响应设置:

物料信息的显示:
SET PARAMETER ID

跳转参考数据:

点击物料信息展示下面:

SLIS_SELFIELD 定义:
NoFieldnameContents
1TABINDEX 点击行数
2SEL_TAB_FIELD 单击的字段名称
3VALUE 单击的值
4TABNAME 单击的表格名称
5FIELDNAME 单击的项目名称
TOP_OF-PAGE = 设置标题栏
REUSE_ALV_COMMENTARY_WRITE : 设置 标题
参考类型: SLIT_T_LISTHEADER

标题名称:

I_HTML_HIGHT_TOP 设置高度
IT_SORT 排序 A 可以选 U X
小计之前先排序:
* 排序参数
* spos
* fieldname
* up
* down
* subtot

TOP_OF_PAGE 显示调用的function
REUSE_ALV_COMMENTARY_WRITE
使用的数据编辑
* typ(1) type c, " H = Header, S = Selection, A = Action
* key(20) type c,
* info type slis_entry,
ALVOUT f4帮助
调用function
REUSE_ALV_VARIANT_F4
