当前位置:网站首页>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传值数据字典结构
作用:
可以混合使用,
边栏推荐
猜你喜欢

Unity 打包和切换平台|Build Settings窗口介绍

4KMILES加入艾盛集团,以更强劲的数字商务能力,加速中国跨境电商的全域全效增长

栈、队列和数组

Three.js入门

【C语言刷题】牛客JZ65——不用四则运算作加法

B站HR对面试者声称其核心用户都是生活中的Loser

SCANIA SCANIA OTL tag is introduced

TPAMI2022 | TransCL:基于Transformer的压缩学习,更灵活更强大

What are the useful real-time network traffic monitoring software

当TIME_WAIT状态的TCP正常挥手,收到SYN后…
随机推荐
服务器Centos7 静默安装Oracle Database 12.2
ssh配置
NC | 土壤微生物组的结构和功能揭示全球湿地N2O释放
7.21 - 每日一题 - 408
当TIME_WAIT状态的TCP正常挥手,收到SYN后…
2022-07-27
互联网寒冬,挚友7面阿里,终获Offer
【学习日记】win64配置openni的vs2022编译环境
Geoserver + mysql + openlayers problem
es DELETE index 源码分析
js Fetch返回数据res.json()报错问题
【C语言刷题】牛客JZ65——不用四则运算作加法
日志框架学习
流量分析第一题
栈、队列和数组
如何ES源码中添加一个自己的API 流程梳理
Mysql基础篇(视图)
阿里35+老测试员生涯回顾,自动化测试真的有这么吃香吗?
Boyun Selected as Gartner China DevOps Representative Vendor
分享一个 web 应用版本监测 (更新) 的工具库