当前位置:网站首页>ALV概念讲解
ALV概念讲解
2022-08-02 19:19:00 【月阴荒】
类型池:SLIS
Fieldcat TYPE slis_t_fieldcat_alv
作用:
列格式设置(表单)
字段名称,列是否可修改,列宽度等
Layout YEPE slis_layout_alv
作用:
全局格式设置(结构)
整表字段是否可修改,是否以斑马纹输出,是否显示选择按钮字段等
函数:REUSE_ALV_FIELDCATALOG_MERGE
根据内表结构返回fieldcat字段结构信息
函数:REUSE_ALV_GRID_DISPLAY/REUSE_ALV_LIST_DISPLAY
使用GRID/LIST模式输出ALV报表
ALV调用设计内容
START-OF-SELECTION
数据表单数据选取
END-OF-SELECTION
作用:
对FIELDCAT赋值:设置每列格式
对LAYOUT赋值:设置表单格式(可选)
对SPRT表等赋值:设置排序内容等(可选)
给EVENT表赋值:增加程序交互事件(可选)
调用函数,输出ALV
案例:
REPORT ZHQ_10 MESSAGE-ID ZHQ.
INCLUDE ZHQ_10TOP.
INCLUDE ZHQ_10FORM.
START-OF-SELECTION.
PERFORM GET_DATA.
ENDOF SELECTION.
IF GET_MARD[] IS NOT INITIAL.
PERFORM WRITE_DATA.
ELSE
MESSAGE S001 DISPLAY LIKE 'E'.
ENDIF.
FORM WRITE DATA.
PERFORM BUILD_FIELDCAT.
PERFORM BUILD_LAYOUT.
PERFORM BUILD_SORT.
PERFORM BUILD_EVEBT.
PERFORM BUILD_ALV.
ENDFORM.
创建fieldcat
fieldcat是一张内表,记录的是ALV输出时每列的属性信息
字段 说明
KEY 将该列设置为关键字(‘X’/“)
ICON 以图表显示(‘X’/”)
CHECKBOX 以复选框显示(‘X’/“)
JUST 定义对齐方式(‘R’/‘L’/‘C’)
IZERO 增加前导零
NO_SIGN 不显示符号(‘X’/”)
NO_ZERO 不显示前导零(‘X’/“)
COL_POS 作为第几列输出(数字)
DO_SUM 对字段进行汇总(‘X’/”)
SELTEXT_L/M/S 字段名称描述长/中/短(字符串)
HOTSPOT 设置为热点(显示为有下划线)
案例
写法一:
FORM BUILD_FIELDCAT.
GS_FIELDCAT-COL_POS = '1'.
GS_FIELDCAT-FIELDNAME = 'ZCODE'.
GS_FIELDCAT-OUTPUTLEN = '10'.
GS_FIELDCAT-SELTEXT_M = '学生编号'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
FORM BUILD_FIELDCAT.
GS_FIELDCAT-COL_POS = '2'.
GS_FIELDCAT-FIELDNAME = 'ZCODE'.
GS_FIELDCAT-OUTPUTLEN = '20'.
GS_FIELDCAT-SELTEXT_M = '学生姓名'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
ENDFORM.
写法二:宏相关
*宏 ---每个宏中最多可以定义9个参数
FORM BUILD_FIELDCAT.
%%APPEND_FIELDCAT: '1' 'ZCODE' '10' '学生编号',
'2' 'ZNAME' '20' '姓名编号',
'3' 'SEX' ' 3' '性别',
'4' 'ZSCHOOL' '10' '学校',
'5' 'WEIGHT' '15' '体重',
ENDFORM
DEFINE %%APPEND_FIELDCAT. "一般用两个百分号开头,但并不是强制如此,只是为了与其他变量区别
CLEAR GS_FIELDCAT.
GS_FIELDCAT-COL_POS = &1.
GS_FIELDCAT-FIELDNAME = &2.
GS_FIELDCAT-OUTPUTLEN = &3.
GS_FIELDCAT-SELTEXT_M = &4.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
使用子程序或者宏等方式,向FIELDCAT的内表中增加行
表单中的每一列为FIELDCAT中的一行
*ALV输出参数
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GS_FIRLDCAT TYPE SLIS_FIELDCAT_ALV,
FROM BUILD_FIELDCAT.
CLEAR GT_FIELDCAT[].
PERFORM ADD_FIELDCAT USING ‘WERKS’ ‘工厂’ ‘1’ ‘5’ ‘’.
PERFORM ADD_FIELDCAT USING ‘LGORT’ ‘仓库’ ‘2’ ‘5’ ‘’.
PERFORM ADD_FIELDCAT USING ‘WERKS’ ‘工厂’ ‘3’ ‘20’ ‘’.
PERFORM ADD_FIELDCAT USING ‘WERKS’ ‘工厂’ ‘4’ ‘20’ ‘X’.
FORM ADD_FIELDCAT USING P_FIELDNAME
P_SELTEXT
P_COL
P_LEN
P_SUM.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = P_FIELDNAME. "字段名
GS_FIELDCAT-SELTEXT_M = P_SELTEXT . "描述文本
GS_FIELDCAT-COL_POS = P_COL. "列
GS_FIELDCAT-OUTPUTLEN = P_LEN. "输出长度
GS_FIELDCAT-DO_SUM = P_SUM. "是否合计
APPEND GS_FIELDCAT TO GT_FIELDCAT.
ENDFORM.
使用函数: REUSE_ALV-FIELDCATALOG_MERGE
作用:
参照数据库(给I_STRUCTURE_NAME传值)或参照内表(给I_INTERNAL_TABNAME传值),直接将内表格式转为fieldcat表单内容
注意转换过的fieldcat可能需要再次修改
直接在ALV调用时,给I_STRUCTURE_NAME传值数据字典结构
作用:
可以混合使用,
边栏推荐
猜你喜欢

You want the metagenomics - microbiome knowledge in all the (2022.8)

快速掌握jmeter(一)——实现自动登录与动态变量

A Review of Nature Microbiology: Focusing on the Algae--Ecological Interface of Phytoplankton-Bacteria Interactions

NC | Structure and function of soil microbiome reveal N2O release from global wetlands

元宇宙001 | 情绪无法自控?元宇宙助你一臂之力

LSB利器-zsteg

Jellyfin 打造家庭影院 & 视频硬解 (威联通 QNAP)

溜不溜是个问题

Golang swagger :missing required param comment parameters

平稳发展 | 西欧地区手游玩家的数据和洞察
随机推荐
深度学习-学习笔记(持续更新)
I have 8 years of experience in the Ali test, and I was able to survive by relying on this understanding.
SQL-UDT是什么功能?
【C语言刷题】双指针原地修改数组(力扣原题分析)
简单有效又有用的关闭antimalware service executable的方法·备份记录
元旦快乐(2022)
JVM内存和垃圾回收-06.本地方法栈
斯堪尼亚SCANIA OTL标签介绍
SQL server有什么认证吗?
Geoserver + mysql + openlayers problem
如何正确地配置入口文件?
MYSQL关键字执行顺序?
What is the use of IT assets management software
3 and a half years of testing experience, I don't have 20K, it seems it's time to change jobs
js Fetch返回数据res.json()报错问题
基于OpenGL的冰川与火鸟(光照计算模型、视景体、粒子系统)
7.25 - 每日一题 - 408
小姐姐面试蚂蚁金服被虐经历,心疼...
7.23 - 每日一题 - 408
去年,一道蚂蚁金服笔试题,还行,中等难度