当前位置: 首页 > news >正文

SAP_ABAP_OLE_EXCEL批导案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977

一、OLE_EXCEL批导

1.1 下载按钮
1.2  选择EXCEL上传,解析EXCLE数据, Call屏幕。

1.3 实现效果


1.4 代码样例

*&---------------------------------------------------------------------*
*& Report ZMMRP010
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmmrp007.*******************************************************
*程序名: zmmrp007
*程序描述: 采购订单审批
*----------------------------------------------------------------------
*创建日期     开发顾问     业务顾问
*2019.09.17. terryzhong 
*===============================================
*修改请求号 修改日期 修改人 修改描述
*xxxxxxxx xxxx.xx.xx xxxxxxxx xxxxxxxx
*******************************************************
INCLUDE zmmrp007_top.INCLUDE zmmrp007_sel.INCLUDE zmmrp007_frm.INCLUDE zmmrp007_9000.INCLUDE zmmrp007_status_9000pbo.INCLUDE zmmrp007_user_command_9000i01.INITIALIZATION."第一次打开屏幕或者点击执行代码已经执行完成重新显示屏幕的时候会运行
*(1).只能用于报表程序
*(2).在选择屏幕出现之前执行.
*(3).通常的用法是在这里给选择屏幕中的字段赋值。sscrfields-functxt_02 = '下载模板'.AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_file.PERFORM get_excel.AT SELECTION-SCREEN."当在选择屏幕上有做操作的时候都会进入到这个事件IF sscrfields-ucomm = 'FC02'.PERFORM download_template.ENDIF.START-OF-SELECTION."当触发执行的时候屏幕IF p_rd2 EQ 'X'."批量修改"执行对EXCEL数据的解析PERFORM get_data.CLEAR gs_cdata.CALL SCREEN '9000'.ENDIF.END-OF-SELECTION.IF p_rd1 EQ 'X'.CALL TRANSACTION 'ZMMRP007A'."单个修改ENDIF.*&---------------------------------------------------------------------*
*& 包含 ZMMRP007_TOP
*&---------------------------------------------------------------------*TABLES: sscrfields.TYPES: BEGIN OF gy_cdata,check(2) TYPE c,ebeln TYPE ekko-ebeln, "采购订单号ebelp TYPE ekpo-ebelp, "采购订单项次zindex TYPE etens, "确认序号ebtyp TYPE ekes-ebtyp, "确认类型eindt TYPE ekes-eindt, "交货日期menge TYPE ekpo-menge, "数量* peinh TYPE ztmm_quotesi-peinh, "价格单位bstme TYPE bstme,
* bstme(10) type c,suppliercno TYPE xblnr_long, "参考exestatus(2) TYPE c,exedesc(255) TYPE c,END OF gy_cdata.
DATA gs_cdata TYPE gy_cdata.
DATA gt_cdata TYPE TABLE OF gy_cdata.
DATA gv_ok_code LIKE sy-ucomm.DATA gt_cdata_copy TYPE TABLE OF gy_cdata.
DATA gs_cdata_copy TYPE gy_cdata.*DATA gt_cdata_update TYPE TABLE OF gy_cdata.
*DATA gs_cdata_update TYPE gy_cdata.*&---------------------------------------------------------------------*
*& 包含 ZMMRP007_SEL
*&---------------------------------------------------------------------*SELECTION-SCREEN FUNCTION KEY 2.
SELECTION-SCREEN:BEGIN OF BLOCK bl1 WITH FRAME.
SELECTION-SCREEN SKIP 1.
PARAMETERS:p_rd1 RADIOBUTTON GROUP g1."单个采购订单确定
PARAMETERS:p_rd2 RADIOBUTTON GROUP g1."批导一采购订单确认
SELECTION-SCREEN SKIP 1.
PARAMETERS: pa_file TYPE rlgrap-filename."文件夹上传
SELECTION-SCREEN:END OF BLOCK bl1.*&---------------------------------------------------------------------*
*& 包含               ZMMRP007_FRM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form DOWNLOAD_TEMPLATE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM download_template .DATA:lw_objdata     TYPE wwwdatatab,l_filename     TYPE string  VALUE '卡片BDC',    "默认下载名称l_fullpath     TYPE string  VALUE 'D:\' ,       "文件保存目录l_path         TYPE string  VALUE 'D:\' ,       "模板保存路径lw_destination LIKE rlgrap-filename,l_rc           LIKE sy-subrc,l_user_action  TYPE i.* 保存下载的模板CALL METHOD cl_gui_frontend_services=>file_save_dialogEXPORTINGdefault_extension    = 'xlsx'             "文件格式default_file_name    = '采购订单交期确认批导模板'            "默认名称CHANGINGfilename             = l_filename             "默认下载名称path                 = l_path                 "文件保存目录fullpath             = l_fullpath             "获取模板保存路径user_action          = l_user_actionEXCEPTIONScntl_error           = 1error_no_gui         = 2not_supported_by_gui = 3OTHERS               = 4.IF l_user_action NE 0.MESSAGE e208(00) WITH '取消操作'.ENDIF.lw_destination = l_fullpath.* 检查模板是否为空IF l_fullpath = '' OR l_path IS  NOT INITIAL.SELECT SINGLE *INTO CORRESPONDING FIELDS OF lw_objdataFROM wwwdata WHERE objid = 'ZMMRP007_TEMPLATE' .CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'EXPORTINGkey         = lw_objdatadestination = lw_destinationIMPORTINGrc          = l_rc.IF l_rc NE 0.MESSAGE  '模板下载失败'TYPE 'E'.
*   模板下载失败!RETURN.ENDIF.ENDIF.
ENDFORM.FORM get_excel .DATA : l_filetab TYPE filetable,l_waftab  LIKE LINE OF l_filetab,l_rc      TYPE i.CALL METHOD cl_gui_frontend_services=>file_open_dialogEXPORTINGwindow_title            = '打开文件'initial_directory       = 'C:/'CHANGINGfile_table              = l_filetabrc                      = l_rcEXCEPTIONSfile_open_dialog_failed = 1cntl_error              = 2error_no_gui            = 3not_supported_by_gui    = 4OTHERS                  = 5.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.EXIT.ELSE.READ TABLE l_filetab INTO l_waftab INDEX 1.pa_file = l_waftab-filename.CLEAR: l_filetab,l_waftab.ENDIF.
ENDFORM.FORM get_data .TYPES: BEGIN OF ly_excel_data,ebeln       TYPE ekko-ebeln, "采购订单号ebelp       TYPE ekpo-ebelp, "采购订单项次zindex      TYPE etens, "确认序号ebtyp       TYPE ekes-ebtyp, "确认类型eindt       TYPE ekes-eindt, "交货日期menge       TYPE ekpo-menge, "数量bstme       TYPE bstme, "单位
*           peinh       TYPE ztmm_quotesi-peinh, "价格单位suppliercno TYPE xblnr_long, "参考END OF ly_excel_data.DATA ls_excel_data TYPE ly_excel_data.DATA lt_excel TYPE TABLE OF alsmex_tabline WITH HEADER LINE.DATA l_index LIKE sy-tabix.DATA: lv_lines TYPE i.FIELD-SYMBOLS: <fs>.IF pa_file IS NOT INITIAL.CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGfilename                = pa_filei_begin_col             = '1'i_begin_row             = '2'i_end_col               = '8'i_end_row               = '50000'TABLESintern                  = lt_excelEXCEPTIONSinconsistent_parameters = 1upload_ole              = 2OTHERS                  = 3.IF sy-subrc = 0.
*&& 将EXCEL格式中的数据导入到内表TAB_LOAD中LOOP AT lt_excel.ASSIGN COMPONENT lt_excel-col OF STRUCTURE ls_excel_data TO <fs>.<fs> = lt_excel-value.AT END OF row.MOVE-CORRESPONDING ls_excel_data TO gs_cdata."跟Excel的列一一对应的内表APPEND gs_cdata TO gt_cdata.CLEAR: ls_excel_data, gs_cdata.ENDAT.ENDLOOP.lv_lines = lines( gt_cdata ).IF lv_lines > 200.MESSAGE  '本次导入数据超过200,请拆分数据文件!' TYPE 'S'DISPLAY LIKE 'E'.STOP.ENDIF.ENDIF.ELSE.MESSAGE  '请输入文件路径!' TYPE 'S'DISPLAY LIKE 'E'.STOP.ENDIF.ENDFORM.

相关文章:

SAP_ABAP_OLE_EXCEL批导案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、OLE_EXCEL批导 1.1 下载按钮 1.2 选择EXCEL上传&#xff0c;解析EXCLE数据&#xff0c; Call屏幕。 1.3 实现效果 1.4…...

MySQL以及版本介绍

一、MySQL的介绍 MySQL数据库管理系统由瑞典的DataKonsultAB公司研发&#xff0c;该公司被Sun公司收购&#xff0c;现在Sun公司又被Oracle公司收购&#xff0c;因此MySQL目前属于 Oracle 旗下产品。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用…...

stm32 iap sd卡升级

参考&#xff1a;STM32F4 IAP 跳转 APP问题_stm32程序跳转_古城码农的博客-CSDN博客 app程序改两个位置 1.程序首地址&#xff1a; 2.改中断向量表位移&#xff0c;偏移量和上面一样就可以 然后编译成bin文件就可以了...

D358周赛复盘:哈希表模拟⭐⭐+链表乘法翻倍运算(先反转)⭐⭐⭐

文章目录 2815.数组中的最大数对和思路完整版 2816.翻倍以链表形式表示的数字&#xff08;先反转&#xff0c;再处理进位&#xff09;思路完整版 补充&#xff1a;206.反转链表&#xff08;双指针法&#xff09;完整版 2817.限制条件下元素之间的最小绝对差&#xff08;cpp不知…...

java八股文面试[数据库]——索引的基本原理、设计原则

索引的设计原则 索引覆盖是什么&#xff1a; 索引&#xff08;在MySQL中也叫做“键&#xff08;key&#xff09;”&#xff09; 是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时&#xff0c;索引…...

2023年京东方便食品行业数据分析(京东数据报告)

​疫情中方便食品的销售一度火爆&#xff0c;但随着当前消费场景的开放&#xff0c;方便食品销售又恢复常态并开始下滑。根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;今年7月份&#xff0c;京东平台方便食品的销量为800万&#xff0c;环比降低约23%&#xff0c;同比降…...

无涯教程-Android - Style Demo Example函数

下面的示例演示如何将样式用于单个元素。让我们开始按照以下步骤创建一个简单的Android应用程序- 步骤说明 1 您将使用Android Studio IDE创建一个Android应用程序,并在 com.example.saira_000.myapplication 包下将其命名为 myapplication ,如中所述您好世界Example一章。 2 …...

【算法训练-字符串 二】最长回文子串

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【最长回文子串】&#xff0c;使用【字符串】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为…...

结合OB Cloud区别于MySQL的4大特性,规划降本方案

任何一家企业想要获得持续性的发展与盈利&#xff0c;“降本增效”都是难以绕开的命题。但是“一刀切”的降本影响往往不太可控&#xff0c;成本的快速收缩往往会给业务带来低效运营和增长缓慢的风险。所以我们所说的降本&#xff0c;是指在成本降低的同时&#xff0c;效率不降…...

题目有点太简单了,不知道怎么选了

有个公司给了下面一个题目&#xff0c;看了下太简单了&#xff0c;都怕选错了。 后来拿着程序跑了下&#xff0c;就是这个意思嘛。 结论 程序跑出来的结果就是对输入的列表进行倒序排列。 public void testGetPut() throws Exception {List<Integer> numbers List.of(…...

Bug:mac上运行go run main.go 报错,fork/exec /var/fold/T/go-build269/b001/ex

Bug&#xff1a;mac上运行go run main.go 报错&#xff0c;fork/exec /var/fold/T/go-build269/b001/ex 今天通过goland执行go run main.go运行我本地编写好的go代码时&#xff0c;发现报错fork/exec / xxx 解决办法 方法一&#xff1a; 因为当前go的build环境不对&#xff0c…...

CSRF与XSS结合利用

文章目录 修改cms网站后台管理员密码成功登录总结 修改cms网站后台管理员密码 CSRF和XSS结合的JS代码&#xff1a; <script> xmlhttp new XMLHttpRequest(); xmlhttp.open("post","http://10.4.7.130/cms/admin/user.action.php",false); xmlhttp…...

【爬虫】实验项目一:文本反爬网站的分析和爬取

目录 一、实验目的 二、实验预习提示 ​编辑 三、实验内容 四、实验要求 五、实验过程 1. 基本要求&#xff1a; 2. 改进要求A 3. 改进要求B: 六、资料 1.实验框架代码&#xff1a; 2.OpenSSL&#xff1a;Win32/Win64 OpenSSL Installer for Windows - Shining Light…...

DEAP库文档教程二-----创建类型

本节将展示如何通过creator创建类型以及如何使用toolbox进行初始化。 1、Fitness 已经提供的Fitness类是一个抽象类&#xff0c;它需要weight来使得它成为一个函数。一个最小化的适应度是通过负权重构建的&#xff0c;而一个最大化适应度则需要正权重。 creator.create(&quo…...

Axure RP美容美妆医美行业上门服务交互原型图模板源文件

Axure RP美容美妆医美行业上门服务交互原型图模板源文件&#xff0c;原型内容属于电商APP&#xff0c;区别于一般电商&#xff0c;它的内容是‘美容美发美妆等’上门服务等。大致流程是线上买单&#xff0c;线下实体店核销消费。 附上预览演示&#xff1a;axure9.com/mobile/73…...

【SpringBoot】用SpringBoot代码详细解释<List>的用法

在Spring Boot应用程序中&#xff0c;我们可以使用Java集合框架中的List接口来存储并操作一组数据。 List是Java集合框架中的一种数据结构&#xff0c;用于存储一组有序的元素。使用List可以方便地向其中添加、删除或者修改元素&#xff0c;也可以通过下标或者迭代器遍历其中的…...

HRS--人力资源系统(Springboot+vue)--打基础升级--(六)分页查询 + 重置按钮

一&#xff1a;先弄个简单的重置按钮 1.界面设计就放在搜索框同一列的位置 2. 在点击重置按钮时&#xff0c;清空搜索框内的内容&#xff0c;同时触发一次无条件查询(这个写法有bug&#xff0c;下面会有说明) 二&#xff1a;做分页 在MyBatis中&#xff0c;有多种方法可以实现分…...

JavaScript设计模式(二)——简单工厂模式、抽象工厂模式、建造者模式

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…...

DEAP库文档教程五----计算统计

本小结将重点围绕模型在计算统计方面的问题&#xff0c;进行详细的论述 1、Computing Statistics 通常情况下&#xff0c;我们想要在优化过程中编辑数据。Statistic模块可以在任何设计好的目标上改变一些本不可改变的数据。为了达到这个目的&#xff0c;需要使用与工具箱中完…...

新型安卓恶意软件使用Protobuf协议窃取用户数据

近日有研究人员发现&#xff0c;MMRat新型安卓银行恶意软件利用protobuf 数据序列化这种罕见的通信方法入侵设备窃取数据。 趋势科技最早是在2023年6月底首次发现了MMRat&#xff0c;它主要针对东南亚用户&#xff0c;在VirusTotal等反病毒扫描服务中一直未被发现。 虽然研究…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...