SAP-ABAP开发-FUNCTION ALV 补充

embedded/2024/10/31 10:27:56/

一、增加表头

1、基本表头

        先创建子程序,对表头内表进行赋值(表头内表SLIS T LISTHEADER)使用函数创建表头 (REUSE_ALV_COMMENTARY_WRITE)修改ALV调用函数向I_CALLBACK_TOP_OF_PAGE进行传值,传子程序名称或在EVENT表中增加TOP OF PAGE事件。代码示例如下:

FORM FM_TOP_OF_PAGE .
DATA LT_HEADER TYPE SLIS_T_LISTHEADER .
DATA LS_HEADER TYPE SLIS_LISTHEADER .CLEAR LS_HEADER .
LS_HEADER-TYP = 'H' ."HEADER
LS_HEADER-INFO = '学生信息表单' .
APPEND LS_HEADER TO LT_HEADER .CLEAR LS_HEADER .
LS_HEADER-TYP = 'S' ."SELECTION
LS_HEADER-KEY = '当前日期' .
LS_HEADER-INFO = SY-DATUM .
APPEND LS_HEADER TO LT_HEADER .CLEAR LS_HEADER .
LS_HEADER-TYP = 'A' ."ACTION
LS_HEADER-INFO = '可查看学校信息' .
APPEND LS_HEADER TO LT_HEADER .CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'EXPORTINGit_list_commentary       = LT_HEADER
*   I_LOGO                   =
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =.
ENDFORM .
2、动态文本表头

可以使用超链接等方式增加内容较为复杂的表头增加子程序,传入参数参照(CL_DD_DOCUMENT ),使用方法实现增加表头内容修改ALV调用函数,向I_CALLBACK_HTML_TOP_O_ PAGE传值子程序名称可以使用事务代码SE24查看类CL_DD_DOCUMENT,以及定义的属性及方法。代码示例如下:

FORM TOP_OF_PAGE2 USINGPR_DOCUMENT TYPE REF TO CL_DD_DOCUMENTCALL METHOD PR_DOCUMENT->ADD TEXTEXPORTINGTEXT = 'HTML TOP OF PAGE'SAP_STYLE =CL DD DOCUMENT=>HEADING .CALL METHOD PR_DOCUMENT->NEW_LINE .CALL METHOD PR_DOCUMENT->ADD_TEXTEXPORTINGTEXT = 'LINK'SAP_STYLE=CL_DD_DOCUENT=>successCALL METHOD PR_DOCUMENT->ADD_GAPEXPORTINGWIDTH = 5CALL METHOD PR_DOCUMENT->ADD_LINKEXPORTINGNAME =163URL = "http://www.baidu.com/"TEXT = 'BAIDU'.
ENDFORM .

二、设置单击、双击

单击的功能代码为 &IC1 需要先对字段设置为热点(Hotspot),通过结构SLIS SELFIELD(点击的当前行信息),进行字段和值的判断。注意:单击双击使用同一功能代码,注意按钮功能顺序等判断条件。

FORM FM_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMMRS_SELFIELD TYPE SLIS_SELFIELD .CASE R_UCOMM .WHEN '&IC1' . "单击 一般 针对的是某一个单元格;双击一般是对一行;一般写单击在前CASE RS_SELFIELD-FIELDNAME .WHEN 'ZCODE'.SET PARAMETER ID 'LIF' FIELD  RS_SELFIELD-VALUE .CALL TRANSACTION 'FK03' .WHEN OTHERS ."双击READ TABLE GT_STUDENT INTO GS_STUDENT INDEX RS_SELFIELD-TABINDEX .PERFORM DISPLAY_ALV_SCHOOL USING GS_STUDENT-ZSCHOOL.ENDCASE .WHEN 'CALLSF' .PERFORM CALL_SMARTFORMS .ENDCASE .
ENDFORM .

三、设置颜色

        颜色值的设置:C+X(颜色:1~7)X(是否加重:1/0)X(是否反色1/0)
        设置列颜色:在FIELDCAT中设置EMPHASIZE字段
        设置行颜色:在内表中增加一个字段,CHAR类型,长度为4,例:COLOR字段
在获取数据时,对颜色字段进行赋值,例:GSMARD-COLOR='C300'  ,设置layout,将INFO FIELDNAME字段,赋值为内表中颜色字段名称。
        设置单元格颜色:在内表中增加一个字段,LVCT SCOL类型内表,例:COLOR字段
在获取数据时,对颜色内表进行赋值,FNAME:字段名;COLOR颜色字段三个数字;NOKEYCOL是否覆盖关键字颜色,设置layout,将COLTAB FIELDNAME字段,赋值为内表中颜色字段名称。

四、ALV的布局管理

ALV中,若想保存布局,要添加I_SAVE参数,I_SAVE定义为C数据类型,值如下:
                '  ' = 不能保存布局
                'X' =布局只能被保存为标准布局,不能够指定用户
                'U' =只能指定用户布局
                'N' =既能选择标准布局,也可选择指定用户布局
为了进一步管理布局,则需要加入IS_VARIANT参数,其数据结构参考DISVARIANT。
设置字段:REPORT=SY-REPID . "程序名称
                   VARIANT为布局保存格式

有三个有用函数供调用保存的格式布局,分别为:
                REUSE ALV VARIANT DEFAULT GET 读取默认的布局
                REUSE ALV VARIANT EXISTENCE 检测指定布局是否存在
                REUSE ALV VARIANT F4 显示布局格式选择对话窗
当排序、筛选等也设置时,以布局管理参数设置优先;当用户设置布局参数默认值时,以布局参数传值优先。


http://www.ppmy.cn/embedded/133844.html

相关文章

.NET内网实战:通过白名单文件反序列化漏洞绕过UAC

01阅读须知 此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。 02基本介绍 03原理分析 在渗透测试和红…

游戏引擎中的颜色科学

游戏引擎中的渲染组件的作用是生成一个二维图片,在特定的时间从给定的视点观察的方向看到的一个三维空间的状态。他们的生成每一张图片都会被称为帧,他们生成的速度称为帧率。 像素 在每一帧中,游戏引擎的视觉输出基本上是一大堆彩色像素&a…

国内短剧源码短剧系统搭建小程序部署H5、APP打造短剧平台

​在当今的互联网时代,短剧作为一种新兴的娱乐形式,受到了越来越多用户的喜爱。为了提供更好的用户体验和满足用户需求,一个好的短剧系统需要具备多元化的功能和优质的界面设计。 本文将介绍国内短剧源码短剧系统搭建小程序部署H5、APP所需的…

Python基于TensorFlow实现GRU-Transformer回归模型(GRU-Transformer回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 GRU是循环神经网络(RNN)的一种变体,旨在解决传统RNN中的梯度消失和梯度爆炸问题&#xff0…

知识竞赛活动筹备小组人员分工和安排

组织知识竞赛是一项需要精心策划和团队协作的活动。以下是一些步骤和建议,用于安排组建工作团队及安排工作人员: 1.项目经理: 选择一个项目经理来统筹整个活动。 确定关键角色,如策划、技术、后勤、宣传等。 2.角色分配&#x…

第十七章 章节练习电商首页组件拆分

目录 一、运行效果 二、页面拆分 2.1. 页面拆分思路 2.2. 初始原代码结构 三、拆分后代码 3.1. 拆分后工程结构 3.2. main.js 3.3. App.vue 3.4. XtxTopic.vue 3.5. XtxShortCut.vue 3.6. XtxNewGoods.vue 3.7. XtxHotBrand.vue 3.8. XtxHeaderNav.vue 3.9. Xtx…

Java 语法糖详解

语法糖是大厂 Java 面试常问的一个知识点。 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理。 什…

LuaJIT源码分析(五)词法分析

LuaJIT源码分析(五)词法分析 lua虽然是脚本语言,但在执行时,还是先将脚本编译成字节码,然后再由虚拟机解释执行。在编译脚本时,首先需要对源代码进行词法分析,把源代码分解为token流。lua的toke…