当前位置:网站首页>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传值数据字典结构
作用:
可以混合使用,
边栏推荐
- 看完这篇,轻松get限流!
- Dynamically generate different types of orders, how do I deposit to mongo database?
- SCANIA SCANIA OTL tag is introduced
- JVM内存和垃圾回收-04.程序计数器(PC寄存器)
- 竞赛:糖尿病遗传风险检测挑战赛(科大讯飞)
- Boyun Selected as Gartner China DevOps Representative Vendor
- Geoserver+mysql+openlayers
- 治疗 | 如何识别和处理消极想法
- golang刷leetcode 经典(13) 最小高度树
- golang刷leetcode 经典(12) 完全二叉树插入器
猜你喜欢
What is the use of IT assets management software
简单有效又有用的关闭antimalware service executable的方法·备份记录
openlayers不常用接口介绍
LSB利器-zsteg
JVM内存和垃圾回收-03.运行时数据区概述及线程
当TIME_WAIT状态的TCP正常挥手,收到SYN后…
【C语言刷题】双指针原地修改数组(力扣原题分析)
geoserver+mysql+openlayers问题点
Gradle系列——Gradle的build.gradle文件详情,项目发布(基于Gradle文档7.5)day3-3
TPAMI2022 | TransCL:基于Transformer的压缩学习,更灵活更强大
随机推荐
Electron使用指南之初体验
【OpenNI2】资料整理 -- 不断更新中
汇编实例解析--利用tcb,tss,全局tss,ldt管理任务实现任务切换
ssh configuration
项目分析(复杂嵌入式系统设计)
Mysql安装流程 【压缩版】
2022-08-01
平稳发展 | 西欧地区手游玩家的数据和洞察
MySQL安装时一直卡在starting server
Cannot find declaration to go to
JVM内存和垃圾回收-04.程序计数器(PC寄存器)
MySQL安装配置教程(超级详细、保姆级)
Go----Go 语言快速体验之开发环境搭建及第一个项目HelloWord
Geoserver+mysql+openlayers
openlayers version update difference
脑机接口003 | 马斯克称已实现与云端的虚拟自己对话,相关概念股份大涨
LeetCode每日一题(324. Wiggle Sort II)
es 官方诊断工具
健康报告-设计与实现
JVM内存和垃圾回收-05.虚拟机栈