ABAP SM30添加导入excel的功能按钮

2023-12-28 15:18

本文主要是介绍ABAP SM30添加导入excel的功能按钮,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

场景:ABAP SM30添加导入excel的功能按钮

需求提出:SM30维护试图时可以导入excel数据:


第一步,为已创建的维护试图添加导入按钮:

找到对应的status,如图:

在这里插入图片描述
在这里插入图片描述
进入tcode:SE41
找到并进入上图对应的status,(注意:此处的维护status应该是EULG),点击更改!
在这里插入图片描述
新增导入按钮
在这里插入图片描述
至此按钮添加完毕


第二步,添加对应事件处理:

按钮事件一般在PAI处理就行了:
添加一个新MODULE。

在这里插入图片描述
UPLOAD内部代码

MODULE upload INPUT.DATA: lt_itab TYPE STANDARD TABLE OF ****,ls_wa   LIKE LINE OF           lt_itab.DATA: lt_tab  TYPE         filetable,ls_file_table  TYPE         file_table,ls_file        LIKE LINE OF lt_file_table,lv_rc          TYPE         i,lv_user_action TYPE         i.DATA: lt_data TYPE alsmex_tabline OCCURS 0 WITH HEADER LINE.DATA lv_file TYPE rlgrap-filename.CONSTANTS: lc_default_extension TYPE string VALUE 'xlsx',lc_file_filter       TYPE string VALUE '*.xlsx'.CONSTANTS: lv_beign_row TYPE i VALUE 1,lv_end_row   TYPE i VALUE 3000,lv_begin_col TYPE i VALUE 1,lv_end_col   TYPE i VALUE 2.CASE function.WHEN 'IMPORT'.CALL METHOD cl_gui_frontend_services=>file_open_dialogEXPORTINGwindow_title      = 'Select File'
*     default_filename  = '*.XLSX'file_filter       = 'Excel Files (*.xlsx)|*.xlsx|Excel Files (*.xls)|*.xls'initial_directory = '/'           "初始化的目录
*     multiselection    = 'X'CHANGINGfile_table        = lt_tabrc                = lv_rc.IF sy-subrc <> 0 AND sy-subrc <> 3.MESSAGE e000(****) WITH '选择文件出错!'(007).ENDIF.READ TABLE lt_tab INTO ls_file_table INDEX 1.lv_file = ls_file_table.IF ls_file_table-filename = ''.MESSAGE S000(****) WITH '未选择文件!' DISPLAY LIKE 'E'.EXIT.ENDIF.CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGfilename                = lv_filei_begin_col             = lv_begin_coli_begin_row             = lv_beign_rowi_end_col               = lv_end_coli_end_row               = lv_end_row"如果需要自定义sheet name,百度搜索自建方法,很简单,教程很多,这里不做赘述TABLESintern                  = lt_data "此处放上面定义的Excel专用内表EXCEPTIONSinconsistent_parameters = 1upload_ole              = 2OTHERS                  = 3.IF lt_data[] IS  INITIAL .MESSAGE s000(****) WITH '文件无数据或文件格式出错,请重新选择文件!' DISPLAY LIKE 'E'.SORT lt_data BY row col ASCENDING.ENDIF.LOOP AT lt_data. "将上面定义的excel专用内表赋值给alv出力内表CASE lt_data-col.WHEN 1.ls_wa-pcon_dec_code = lt_data-value.WHEN 2.ls_wa-pcon_ran_dec = lt_data-value.APPEND  ls_wa TO lt_itab."对于这个例子,excel表有3列,append要加在最后一列.CLEAR  ls_wa.ENDCASE.ENDLOOP.MODIFY **** FROM TABLE lt_itab.IF sy-subrc = 0.MESSAGE s000(***) WITH '导入并更新****成功'.COMMIT WORK.ELSE.MESSAGE s000(***) WITH '导入并更新****失败'.ROLLBACK WORK.ENDIF.ENDCASE.ENDMODULE.                 " UPLOAD  INPUT

结语:

按照上述步骤导入就可以了,代码可能略显粗糙,主要提供思路不是最终版,我的代码有个缺点,这种方法导入就直接更新底表了,查看数据需要重新进此维护试图,期待大神改进方法,把导入的数据放入”新条目“的内表中去用标准保存,感谢观看,希望能对你有所帮助,有问题评论区一起讨论吧!

这篇关于ABAP SM30添加导入excel的功能按钮的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/546393

相关文章

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

MySQL Workbench工具导出导入数据库方式

《MySQLWorkbench工具导出导入数据库方式》:本文主要介绍MySQLWorkbench工具导出导入数据库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录mysql Workbench工具导出导入数据库第一步 www.chinasem.cn数据库导出第二步

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Java如何用乘号来重复字符串的功能

《Java如何用乘号来重复字符串的功能》:本文主要介绍Java使用乘号来重复字符串的功能,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java乘号来重复字符串的功能1、利用循环2、使用StringBuilder3、采用 Java 11 引入的String.rep

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

将图片导入Python的turtle库的详细过程

《将图片导入Python的turtle库的详细过程》在Python编程的世界里,turtle库以其简单易用、图形化交互的特点,深受初学者喜爱,随着项目的复杂度增加,仅仅依靠线条和颜色来绘制图形可能已经... 目录开篇引言正文剖析1. 理解基础:Turtle库的工作原理2. 图片格式与支持3. 实现步骤详解第

通过C#获取Excel单元格的数据类型的方法详解

《通过C#获取Excel单元格的数据类型的方法详解》在处理Excel文件时,了解单元格的数据类型有助于我们正确地解析和处理数据,本文将详细介绍如何使用FreeSpire.XLS来获取Excel单元格的... 目录引言环境配置6种常见数据类型C# 读取单元格数据类型引言在处理 Excel 文件时,了解单元格

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel