SAP-ABAP开发学习-FUNCTION ALV

ALV概览

        ALV全称SAP List View,是SAP提供的一个强大的数据报表显示工具。ALV实质上是一个屏幕控件对象,它通过程序传递数据内表的方式来显示数据。
实现方式:调用标准函数;优化接口:用户可以实现对字段的排序、筛选及统计等功能。
显示方式:List 类似于write语句输出的表单形式;Grid 每个输出字段提供按钮,用户可以自行设定,操作更为灵活。如下示例:左边是LIST, 右边是GRID。

基本概念

        类型池: SLIS 是个特殊类型的程序,包含了各种TYPES生成的结构体、表类型等,因为某种原因涉及的关联性比较强所以放在一个类型池里面,比如统一使用在函数组里面或统一用在某个功能组里面。
下面是它主要的属性参数 Fieldcat TYPE slis t fieldcat alv
                                        - 列格式设置(表单)
                                        - 字段名称,列是否可修改,列宽度等
                                        Layout TYPE slis layout alv
                                        - 全局格式设置 (结构)
                                        - 整表字段是否可修改,是否以斑马纹输出,是否显示选择按钮字段等
通过函数传值                函数: REUSE ALV FIELDCATALOG MERGE
                                      - 根据内表结构返回FIELDCAT字段结构信息
                                      函数: REUSE ALV GRID DISPLAY/REUSE ALV LIST DISPLAY
                                      - 使用GRID/LIST模式输出ALV报表

开发ALV的基本流程

1、声明变量

定义ALV所要用到的类型池:TYPE-POOLS: SLIS
针对ALV的控制信息数据(Layout & Fieldcat)FIELDCAT 是一张内表,记录的的是ALV输出时每列的属性信息。Layout 是一个结构,存储整个表单的全局设置。可以混合使用,FIELDCAT里面的属性优先。下面是fieldcat常用的参数说明。

字段说明
KEY将该列设置为关键字 (“X”/“”)
ICON以图标显示(“X”/“”)
CHECKROK以复选框显示(“X”/“”)
JUST定义对齐方式(“R”“L”“C”)
LZERO增加前导等(“X”/“”)
NO_SIGN不显示符号 (“X”/“”)
NO_ZERO不显示前导零 (“X”/“”)
COL_POS作为第几列输出(数字)
DO_SUM对宇段讲行汇总(“X”/“”)
SELTEXT_L/M/S字段名称描述长/中/短(字符串)
HOTSPOT设置为热点(显示为有下划线) (“X”/“”)

声明的基本代码如下:

TYPE-POOLS: slis. 
DATA: fieldcat  TYPE slis_t_fieldcat_alv,  “字段清单内表 fieldcat_ln LIKE LINE OF fieldcat,layout TYPE slis_layout_alv,         “ALV格式 sortcat TYPE slis_t_sortinfo_alv,    “ALV排序字段清单内表 sortcat_ln LIKE LINE OF sortcat, eventcat TYPE slis_t_event,           “ALV事件 eventcat_ln LIKE LINE OF eventcat. 
DATA: col_pos TYPE i.
2、定义内表

存放自定义数据文件的数据,以及在ALV中显示。

DATA: BEGIN  OF  ivbap  OCCURS  0,vbeln    LIKE  vbap-vbeln,matnr    LIKE  vbap-matnr,matkl    LIKE  vbap-matkl,END  OF  ivbap. 
3、读取数据
SELECT  vbeln  posnr  matnr  matkl  kwmeng  vrkmeINTO  CORRESPONDING  FIELDS  OF  TABLE  ivbapFROM  vbapWHERE  vbeln  NE  space. 
4、ALV格式控制

字段目录是用来控制ALV显示的网格中每个字段的属性的,比如字段的对齐方式、可编辑状态、颜色等等。

layout-zebra                = 'X'.    ”呈现颜色交替
layout-detail_popup         = 'X'.    "是否弹出详细信息窗口
layout-f2code               = '&ETA'. "设置触发弹出详细信息窗口的功能码,这里是双击
layout-no_vline             = 'X'.    "这个用来设置列间隔线
layout-colwidth_optimize    = 'X'.    "优化列宽选项是否设置
layout-detail_initial_lines = 'X'.
layout-detail_titlebar      = '详细内容'."设置弹出窗口的标题栏fieldcat_ln-ref_tabname  =  'VBAP'.
fieldcat_ln-fieldname    =  'VBELN'.
fieldcat_ln-key          = 'X'.
fieldcat_ln-do_sum       = space.
fieldcat_ln-col_pos      = col_pos.
fieldcat_ln-no_out       = space.
fieldcat_ln-qfieldname   = ''.
fieldcat_ln-hotspot      = 'X'.
5、定义事件

建立事件清单(Event Catalogs) 并需定义事件块,否则出错,并且函数ALV调用事件要在最后。因为事件块的执行是按照顺序的。在调用函数生成ALV过程中,可以进行用户操作使用回调函数(CALLBACK)的形式实现交互。事件块: FORM PAGE_HEADER.          ENDFORM.

字段说明
I_CALLBACK_PROGRAM调用ALV函数返回的程序
I_CALLBACK PF STATUS GET设置ALV程序内的按钮
I_CALLBACK USER COMMAND设置按钮功能,传输FORM名称
I_CALLBACK TOP_OF_PAGE表头
I_CALLBACK HTML TOP OF PAGE动态表头
IT EXCLUDING隐藏ALV基本按钮
IT EVENTS定义ALV事件
6、调用ALV

点击模式,调用函数会带出来所有的参数,这里需要用到那个放开那个就好。

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_CALLBACK_PROGRAM                = SY-CPROGI_CALLBACK_PF_STATUS_SET          = 'SET_STATUS 'I_CALLBACK_USER_COMMAND           = 'FM_USER_COMMAND 'I_GRID_TITLE                      = 'GRID标题'IS_LAYOUT                         = GS_LAYOUTIT_FIELDCAT                       = GT_FIELDCATIT_SORT                           = GT_SORTIT_FILTER                         = GT_FILTER
*     I_DEFAULT                         = 'X'IT_EVENTS                         = GT_EVENTSTABLESt_outtab                          = GT_STUDENTEXCEPTIONSPROGRAM_ERROR                     = 1OTHERS                            = 2.IF sy-subrc <> 0.
* Implement suitable error handling hereENDIF.
7、用户事件
*USER-COMMAND子例程
FORM USER_COMMAND USING R_UCOMM     LIKE SY-UCOMMRS_SELFIELD TYPE SLIS_SELFIELD .CASE R_UCOMM .WHEN 'CALLSF' ."PERFORM CALL_SMARTFORMS .WHEN 'DOWNLOAD '.ENDCASE .
ENDFORM .

注意事项

1、在ALV中,需要注意所有需要显示的列,都必须在相应的内表中有对应的字段,字段名字不能写错。
2、在SAP ABAP程序中,字符串的大小写很重要,在单引号包围的字符串中,一般来说都应该用大写,特别是在调用一些系统的方法时传入字符串参数时。
3、传入到ALV中的列对应的字段名称也必须使用大写字母,否则数据不会显示出来。
4、使用宏定义或者子例程可以减少代码量,并且尽可能实现代码的复用。
5、注意在FORM里定义的变量在离开FORM后,就会被系统释放掉,回收内存空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51c嵌入式~IO合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12383193 一、单片机通信数据接收解析方法 前阵子一朋友使用单片机与某外设进行通信时&#xff0c;外设返回的是一堆格式如下的数据&#xff1a; AA AA 04 80 02 00 02 7B AA AA 04 80 02 00 08 75 AA AA 04 80 02 00 9B E2…

layaair给图片精灵绘制形状并添加点击事件注意点击的区域不是方块

默认的图片添加进来都是方块&#xff0c;哪怕是圆形的图片&#xff0c;点击也是方块区域如下图&#xff0c;这个圆的上下左右方向角的位置都可点击。 利用sprite的Graphics属性则可以编制线条&#xff0c;圆形等形状。如下图 但是点击的区域还是默认根据sprite的高宽来设定的。…

vite 创建了一个项目后,如何实现工程化

当我们使用 vite 创建了一个项目后&#xff0c;要开发自己的东西。首先要做的就是先将开发文件变成自己的样子。 这是一个刚刚创建项目的文件夹及展示 开始整改文件夹 修改文件 main.ts不需要修改App.vue删除无用的内容 <template><div>app组件</div> &l…

推荐一款好用的redis管理工具TinyRDM

简述 对于经常要操作redis的人员来说&#xff0c;一款好用开源的redis可视化管理工具可以事半功倍&#xff0c;今天要介绍的TinyRDM就是这样的工具&#xff0c;支持多端&#xff08;MAC/Window/Linux&#xff09;&#xff0c;并且是开源的。 github地址&#xff1a;https://git…

CSPM(项目管理专业人员评价)证书还不如PMP?垃圾证书……

一、什么是CSPM CSPM&#xff08;China Standards Project Management&#xff09;是指依据中国标准开展的项目管理专业人员能力评价。它是由中国标准化协会&#xff08;全国项目管理标准化技术委员会秘书处&#xff09;设立&#xff0c;运用已发布的项目管理国家标准&#xf…

平衡相图在资源可持续利用方向的应用

平衡相图是描述物质在特定温度、压力和组成条件下达到相平衡状态的图表。在环境科学中&#xff0c;平衡相图可以用于预测和解释自然环境中物质的分布、迁移和转化过程&#xff0c;对于资源的可持续利用和环境污染的防治具有重要意义。 平衡相图在资源的可持续利用方向的应用主…

【YOLOv11[基础]】目标对象模糊处理

目录 一 安装YOLOv11 二 实践 使用Ultralytics YOLO11进行目标对象模糊处理,包括对图像或视频中特定检测到的对象应用模糊效果。这可以使用YOLO11模型功能来识别和操作给定场景中的对象。 目标对象模糊处理的优点: 隐私保护

Day16-非关系型数据库服务-redis

Day16-非关系型数据库服务-redis 1、非关系型数据库服务Redis1.1 Redis服务概述介绍1.1.1 缓存服务介绍1.1.2 缓存服务产品介绍1.1.3 缓存服务应用场景 1.2 Redis服务安装部署1.2.1 缓存服务安装部署 1.3 Redis服务基础管理操作1.3.1 缓存服务配置文件介绍1.3.2 缓存服务安全配…

如何对pdf文件进行加密?pdf文件加密全攻略与深度解析(5个方法)

如何对pdf文件进行加密&#xff1f; 只见&#xff0c;在深夜的情报局里&#xff0c;特工小李将一份绝密PDF文件放在保险箱内&#xff0c;以为这样就天衣无缝了。 细细推敲&#xff0c;漏洞百出&#xff1a; 如果钥匙被盗呢&#xff1f;如果被神匠破解出密码呢&#xff1f;如果…

解析MES管理系统在企业中的应用策略

在智能制造浪潮汹涌的今天&#xff0c;MES管理系统成为了连接生产现场与管理决策层的关键桥梁&#xff0c;其重要性在企业的智能化转型中愈发凸显。面对智能制造时代的新挑战&#xff0c;如何充分利用MES管理系统的优势&#xff0c;实现生产流程的智能、高效与透明&#xff0c;…

Pytest中autouse参数的用法

引言 在Pytest中&#xff0c;Fixture是一种非常有用的功能&#xff0c;它允许我们在测试前后进行一些设置和清理工作。通常&#xff0c;我们会在测试函数中显式地声明需要使用的Fixture。然而&#xff0c;有时候我们希望某些Fixture在所有测试中自动应用&#xff0c;而不需要在…

循序渐进丨openGauss / MogDB 数据库内存占用相关SQL

一、内存总体分布 数据库总体内存使用分布 select * from gs_total_memory_detail; 当dynamic_used_memory大于max_dynamic_memory就会报内存不足&#xff1b;如果此时dynamic_used_memory小于max_dynamic_memory&#xff0c;而dynamic_peak_memory大于max_dynamic_memory表…

机房巡检机器人有哪些功能和作用

随着数据量的爆炸式增长和业务的不断拓展&#xff0c;数据中心面临诸多挑战。一方面&#xff0c;设备数量庞大且复杂&#xff0c;数据中心内服务器、存储设备、网络设备等遍布&#xff0c;这些设备需时刻保持良好运行状态&#xff0c;因为任何一个环节出现问题都可能带来严重后…

2024护理类科技核心期刊汇总(最新版)

2024年9月中国科技核心期刊目录&#xff08;2024年版&#xff09;正式公布&#xff0c;13本护理类期刊入选。常笑医学整理了这13本护理类科技核心期刊的详细参数&#xff0c;以及投稿经验&#xff0c;供大家在论文投稿时参考&#xff0c;有需要的赶紧收藏&#xff01; 1.《中华…

基于Springboot+Vue的物流系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…

AI创作者与人类创作者的协作模式

公主请阅 1. AI创作者的崛起1.1 AI创作者的工作原理1.2 AI创作者的优势 2. 人类创作者的独特价值2.1 创造性与情感2.2 伦理与价值观2.3 文化与背景 3. AI与人类的协作模式3.1 协同创作3.2 内容编辑3.3 数据驱动的创作3.4 跨媒体协作 4. AI与人类协作的挑战4.1 技术局限性4.2 版…

模型体素化

背景: 在三维模型深度处理的时候,有时候需要对模型进行区域划分.并赋予一定的材质,力学等属性,所以,需要对模型进行划分. 目前的模型体素化的方式基本分为cpu,gpu,都是投影射线法进行的, 在调研了一些已知的开源算法和项目,并测试后发现,大部分的开源项目也都是基于抽壳进行的…

Android 应用申请 Google MBA权限

Google Case链接&#xff1a;89 > 34810 > 30025 > 155353 > Handheld > MBA Policies 按照指引填写模板 This bug is for the approval of MBAs under [13.2.2 Pregrant permissions policy](https://docs.partner.android.com/gms/policies/domains/mba#mba-…

练习LabVIEW第二十二题

学习目标&#xff1a; 刚学了LabVIEW&#xff0c;在网上找了些题&#xff0c;练习一下LabVIEW&#xff0c;有不对不好不足的地方欢迎指正&#xff01; 第二十二题&#xff1a; 前面板上放一个压力表&#xff0c;指针位置在0-255之间随机变化&#xff0c;指针颜色同时发生变化…

网络应用技术 实验一:路由器实现不同网络间通信(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验任务及要求 1、任务 1&#xff1a;完成网络部署 2、任务 2&#xff1a;设计全网IP 地址 3、任务 3&#xff1a;实现全网主机互通 六、实验步骤 1、在ensp中部署网络 2、配置各主机 IP地址、子网掩…