SAP-ABAP开发-FUNCTION ALV 补充

news/2024/10/30 21:02:43/

一、增加表头

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/news/1543183.html

相关文章

爬虫利器playwright

是什么 它是微软在 2020 年初开源的新一代自动化测试工具,其功能和 selenium 类似,都可以驱动浏览器进行各种自动化操作。还可以录制脚本 案列-01 运行之后我们用它自动打开的谷歌浏览器,打开百度,输入漂亮小姐姐并查找&#x…

融合ASPICE与敏捷开发:探索汽车软件开发的最佳实践

ASPICE(Automotive SPICE,即汽车软件过程改进和能力dEtermination)与敏捷开发在软件开发领域各自具有独特的价值和特点,它们之间的关系可以归纳为既相互区别又相互补充。 一、ASPICE的特点 ASPICE是汽车行业对软件开发流程的一个评…

Python中的数据可视化:Matplotlib基础与高级技巧

Python中的数据可视化:Matplotlib基础与高级技巧 数据可视化是数据分析和数据科学中不可或缺的一部分。通过图表,我们可以更直观地观察数据的分布和趋势。Matplotlib作为Python最基础、也是最广泛使用的绘图库之一,不仅支持多种常用图表&…

【更新】A股上市公司百度搜索指数(2011-2023年)dta和xlsx文件

搜索引擎是当今人们获取信息的入口,百度指数反映了关键词被搜索的次数,直接衡量着投资者的有限关注。采用百度指数的数据作为投资者关注度的代理变量具有更好的代表性。参考《金融研究》中俞庆进的做法,整理了上市公司证券代码和证券简称等关…

Linux安装部署数据库:MongoDB

Linux安装部署数据库:MongoDB 一、虚拟机环境说明1、安装前准备2、数据库软件3、数据库工具 二、源码安装 MongoDB1、安装配置环境2、服务启动方式3、设置开机自启 三、管理使用 MongoDB1、登录使用2、常用命令 四、安全优化 MongoDB1、创建普通用户启动服务2、编写…

理解typeScript中的泛型,并在vue3项目中使用

泛型(Generics)是 TypeScript 中一个非常强大的特性,它允许你在编写代码时定义类型参数,并在使用时指定具体的类型。这使得你的代码更加灵活和可复用,同时也能够保持类型的安全性。 泛型的基本概念 在 TypeScript 中…

Docker 部署 Java 项目实践

在当今的软件开发领域,容器化技术已经成为了一种趋势。Docker 作为一种流行的容器化平台,为开发者提供了一种便捷、高效的方式来部署和管理应用程序。对于 Java 项目而言,使用 Docker 进行部署可以带来许多好处,如提高部署效率、增…

vue打包的dist文件,再使用eletron打包为exe

1.下载eletron demo demo 2.npm install 2.1如遇443,使用eletron镜像专用源,参考链接 [eletron]RequestError: connect ETIMEDOUT 20.205.243.166:443,为eletron设置专用源。 3.在electron-quick-start-main下粘贴dist 4.再粘贴static/lo…