Functional ALV系列 (04) - 自定义工具栏_怎么给alv报表添加导出为excel文件的按钮-程序员宅基地

技术标签: # SAP ABAP  

调用函数生成 ALV,显示的时候已经具备了默认的工具栏。在很多情况下,需要自定义工具栏,比如增加与用户交互的功能,也可能希望移除某个按钮。

自定义工具栏有三个步骤:

  • SE41从程序 SAPLKKBL 拷贝 GUI Status,将 STANDARD_FULLSCREEN, 拷贝到程序中, GUI Status 名为 ZStandard
  • REUSE_ALV_GRID_DISPLAYi_callback_pf_status_set 参数设置为某个子例程,在子例程中设置工具栏
  • REUSE_ALV_GRID_DISPLAYi_callback_user_command 参数设置为某个子例程,在子例程中编写用户交互代码

本文实现自定义一个工具栏,在工具栏种添加「导出到Excel」按钮,实现将 ALV 数据导出到 Excel。ALV 数据来自内表,所以我采用直接从 internal table 导出 Excel 的方式实现。

内表导出到 Excel

SAP 提供了 cl_salv_export_tool 类用于将 ALV 数据导出到 Excel,如果是早一点的版本,系统没有这个函数,可以用本篇的方法。我编写了一个 zitab_to_excel 函数,实现将 internal table 导出到 Excel,包括表头。函数放在 zexcel 函数组中。在 include 程序编写一个例程,从 internal table 获取内行结构的所有字段:

函数的 import 参数:


调用 xxl_simple_api 函数实现将internal table 导出到 Excel 中。xxl_simple_api 用法请参考我另一篇博文:厌倦了SE11/SE16N? 告诉你如何在Excel中查看SAP的表数据

自定义工具栏

SE41从程序 SAPLKKBL 拷贝 GUI Status,将 STANDARD_FULLSCREEN, 拷贝到程序中, GUI Status 名为 ZStandard


REUSE_ALV_GRID_DISPLAYi_callback_pf_status_set 参数设置为 FRM_GUI_STATUS ,在子例程中设置工具栏:


在 frm_gui_status 中设置工具栏:

用可视化的方式修改 zstandard,增加一个按钮:


按钮表示导出到 Excel,设置如下:

REUSE_ALV_GRID_DISPLAYi_callback_user_command 参数设置为 frm_user_command,中编写导出到 Excel 的编码:

如果要移除按钮,可以用可视化的方式,从 zstandard 中移除,或者通过代码移除。下面的代码演示了代码移除发送邮件按钮:

源码

FALV/04-Custom toolbar

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/stone0823/article/details/117216216

智能推荐

Token Bucket 与 Leaky bucket算法_token bucket leaky bucket-程序员宅基地

文章浏览阅读1.1k次。对比漏桶算法强行限制数据的传输速率令牌桶算法在限制数据的平均传输速率的同时还允许某种程度的突发传输Token Bucket 算法令牌桶算法可控制发送到网络上数据的数目,并允许突发数据的发送是网络流量整形和速率限制中最常使用的一种算法大小固定的令牌桶可自行以恒定的速率源源不断地产生令牌:令牌桶中的每一个令牌都代表一个字节:如果令牌桶中存在令牌,则允许发送流量如果..._token bucket leaky bucket

8250驱动使用workqueue加入RS485控制逻辑_up_to_u8250p-程序员宅基地

文章浏览阅读2.2k次,点赞5次,收藏19次。项目中使用了RS485,主控是PX30查看资料,有些前辈的帖子写了用了tasklet 中断服务来做,占资源比较多,而且无法在内部执行一段udelay (看有人这么操作,但是我的系统源码编译出来后会产生互斥锁递归导致系统崩溃)。于是使用了workqueue来进行延迟检测操作,主要是为了检查是否数据发送完毕,数据发送完后就拉低IO口。在结构体中新增定义:diff --git a/kernel/include/linux/serial_8250.h b/kernel/include/linu._up_to_u8250p

Spring Data Jdbc和JdbcTemplate知识概括_springdatajdbc jdbctemplate-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏3次。spring对JDBC的支持之JdbcTemplate知识概括简介方法概述JDBC和JPA与spring data,原生jdbc的联系简介简介:为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. 作为Spring JDBC 框架的核心JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法. 每个模板方法都能控制整个过程, 并允许覆盖过程中的特定任务.通过这种方式, 可以在尽可能保留灵活性的情况下, 将数据库存取_springdatajdbc jdbctemplate

概率论基础知识汇总-程序员宅基地

文章浏览阅读1.8k次。存在意义:在数学和统计学中,矩(moment)是对变量分布和形态特点的一组度量。原点矩和中心距的定义直接使用变量XXX计算的矩被称为原点矩(raw moment),矩通常默认就是指原始矩,比如一阶矩,二阶矩。移除均值后X−E(X)X-E(X)X−E(X)计算的矩被称为中心矩(central moment)。nnn阶矩的定义为:vn=∫−∞+∞xnf(x)dxv_n=\int_{-\infty}^{+\infty}x^nf(x)dxvn​=∫−∞+∞​xnf(x)dxnnn阶中心矩的定义为:_概率论基础

Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) | 解压安装_could not find wrapvulkanheaders (missing: vulkan_-程序员宅基地

文章浏览阅读9.4k次,点赞2次,收藏4次。文章目录遇到报错VULKAN 解压安装【解压安装 -- 实际采用 】遇到报错CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR)Call Stack (most recent call first): /usr/share_could not find wrapvulkanheaders (missing: vulkan_include_dir)

css-loader和style-loader的区别和使用-程序员宅基地

文章浏览阅读3.1w次,点赞24次,收藏33次。webpack是用JS写的,运行在node环境,所以默认webpack打包的时候只会处理JS之间的依赖关系!!!因为像 .css 这样的文件不是一个 JavaScript 模块,你需要配置 webpack 使用 css-loader 或者 style-loader 去合理地处理它们。如果在JS中导入了css,那么就需要使用 css-loader 来识别这个模块,通过特定的语法规则进行转换内容最..._style-loader

随便推点

踩坑路上——IOS Safari浏览器下固定定位position:fixed带来的问题与解决方案_ios fixed定位滚动时跑-程序员宅基地

文章浏览阅读4.3w次,点赞6次,收藏25次。1.-webkit-overflow-scroll:touch;2.使用其他布局方式_ios fixed定位滚动时跑

Rider + IdeaVim 常被忽略的快捷键列表-程序员宅基地

文章浏览阅读1.6k次。Rider 是 JetBrain 推出的一款用于 .net 平台的 IDE。IdeaVim 是在 Rider 里面模拟 Vim 的一款插件。在本文里,我整理了一下经常会被忽略,但是却可以大幅度提升编码效率的快捷键集合,Rider 快捷键基于 Visual Studio 方案进行整理,供大家参考。..._rider vim

华为 1+X 网络系统建设与运维课程资源目录_网络系统建设与运维中级pdf-程序员宅基地

文章浏览阅读3.5k次。背景介绍:为贯彻落实教育部等部门联合印发的《关于在院校实施“学历证书+若干职业技能等级证书”制度试点方案》(简称1+X证书)文件精神,华为积极参与国家1+X证书试点工作,2020年成为职业教育培训评价组织,所申请的《网络系统建设与运维职业技能等级标准》、《智能计算平台应用开发职业技能等级标准》被批准参与1+X证书制度试点工作。同时,为保障1+X职业技能等级标准工作的顺利推进,华为联合高校教师共同编纂《网络系统建设与运维》(初级、中级、高级)和《智能计算平台应用开发》(初级、中级、高级)系列教材。_网络系统建设与运维中级pdf

有趣的博客-防止博客被吸的32种方法-程序员宅基地

文章浏览阅读269次。I blogfor me, mostly so I can Google myself later. But, I also enjoy the back and forth, the connections, with you, Dear Reader. I like being able to kick ideas around with a collective of peers an..._如何防止博客被刷流量

镜头像差之一——球差_镜头球差-程序员宅基地

文章浏览阅读2.9k次。1.什么是球差 近中心视场的光线与边缘光线,因为球面折射率不能均匀的将平行光线汇聚到同一点而形成弥散斑。 直接上图: 模拟图​​​ _镜头球差

火狐浏览器安装插件提示:“此附加组件无法安装,因为他有可能已损坏”_xpinstall.signatures.required-程序员宅基地

文章浏览阅读1.9w次。新开一个火狐浏览器输入“about:config”,然后回车然后找到xpinstall.signatures.required将它的true改为false,怎么将xpinstall.signatures.required将它的true改为false,双击xpinstall.signatures.required就可以将true改为falsehttps://blog.csd..._xpinstall.signatures.required