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使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦