SAP ABAP代码实现常规数据批导(剪切板方式)
SAP中经常会需要开发很多批导的程序一般会用Excel上传数据的方式这种经常会出现excel的各种问题处理起来也麻烦。所以本文介绍另外一种方式全程不使用Excel下载或者上传使用剪切板获取模板和上传数据。一、导出模板到剪切板以下代码使用了AI帮我加上了注释。这里是点击选择屏幕上方的自定义按钮导出目录字段到剪切板前提是需要在这段代码之前维护好目录。* 变量定义补充原代码隐含的变量定义确保可独立运行 DATA: gt_clipboard_data TYPE TABLE OF char2048 WITH HEADER LINE, 剪贴板输出数据内表 gt_field_catalog TYPE lvc_t_fcat WITH HEADER LINE, ALV字段目录内表 gv_return_code TYPE sy-subrc, 剪贴板导出返回码 gs_dfies TYPE dfies. 数据元素信息结构存储字段文本 CASE sscrfields-ucomm. WHEN FCO1. CLEAR: gt_clipboard_data, gt_clipboard_data[]. * 遍历字段目录筛选排除指定字段RTYPE/RTMSG拼接表头文本 LOOP AT gt_field_catalog WHERE fieldname RTYPE AND fieldname RTMSG. * 判断字段目录的列文本是否为空为空则读取数据元素文本否则直接使用列文本 IF gt_field_catalog-coltext . * 调用系统函数读取数据元素的字段文本 CALL C_DD_READ_FIELD ID TYPE FIELD T ID TABNAME FIELD gt_field_catalog-ref_table ID FIELDNAME FIELD gt_field_catalog-ref_field ID LANGUAGE FIELD sy-langu. ELSE. * 字段目录有列文本直接赋值到数据元素文本字段 gs_dfies-fieldtext gt_field_catalog-coltext. ENDIF. * 拼接剪贴板数据水平制表符分隔拼接字段文本Excel粘贴后自动分列 CONCATENATE gt_clipboard_data cl_abap_char_utilitieshorizontal_tab gs_dfies-fieldtext INTO gt_clipboard_data. ENDLOOP. * 移除拼接后字符串开头的水平制表符避免Excel粘贴后首列空值 SHIFT gt_clipboard_data. * 将处理后的表头文本追加到剪贴板数据内表 APPEND gt_clipboard_data. * 调用GUI服务将表头数据导出到操作系统剪贴板 CALL METHOD cl_gui_frontend_servicesclipboard_export IMPORTING data gt_clipboard_data[] CHANGING rc gv_return_code EXCEPTIONS cntl_error 1 控件错误 error_no_gui 2 无GUI环境如后台执行 not_supported_by_gui 3 GUI不支持该操作 OTHERS 4. 其他错误 * 根据剪贴板导出结果给出对应的消息提示 IF sy-subrc 0. MESSAGE s000(oo) WITH 已经把表头复制到剪贴板,可以打开一个Excel文件然后粘贴. ELSE. MESSAGE e000(oo) WITH 复制到剪贴板失败. ENDIF. * 其他操作码无处理逻辑 WHEN OTHERS. ENDCASE.二、剪切板数据上传以下代码是将剪切板数据导入到指定内表的form。FORM frm_cliptoitab TABLES itab. * 常量分割符水平制表符 CONSTANTS: gc_tab_separator TYPE c VALUE cl_abap_char_utilitieshorizontal_tab. 根据水平制表符分割数据 * 内表定义剪贴板数据、分割后字段、需替换为空的符号 DATA: lt_clipboard_data TYPE TABLE OF char2048 WITH HEADER LINE, 剪贴板导入的原始数据 lt_split_fields TYPE TABLE OF char2048 WITH HEADER LINE. 按分隔符分割后的字段内表 * 异常相关变量 DATA: lo_exception TYPE REF TO cx_root, lv_exception_msg TYPE string. * 索引 DATA: lv_field_index TYPE sy-tabix. FIELD-SYMBOLS: fs_target_field , fs_target_table . * 赋值目标内表到字段符号 ASSIGN itab TO fs_target_table. * 从剪贴板导入数据 CALL METHOD cl_gui_frontend_servicesclipboard_import IMPORTING data lt_clipboard_data[] EXCEPTIONS cntl_error 1 error_no_gui 2 not_supported_by_gui 3 OTHERS 4. IF sy-subrc 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * 刷新GUI控件 CALL METHOD cl_gui_cfwflush. * 遍历剪贴板每行数据 LOOP AT lt_clipboard_data. CLEAR: lv_field_index, lt_split_fields[]. * 按分隔符分割当前行数据到字段内表 SPLIT lt_clipboard_data AT gc_tab_separator INTO TABLE lt_split_fields. * 遍历分割后的字段赋值到目标内表 LOOP AT lt_split_fields. lv_field_index lv_field_index 1. * 分配目标内表的对应字段到字段符号 ASSIGN COMPONENT lv_field_index OF STRUCTURE fs_target_table TO fs_target_field. CHECK sy-subrc 0. * 字段赋值 TRY . fs_target_field lt_split_fields. CATCH cx_root INTO lo_exception. lv_exception_msg lo_exception-get_text( ). ENDTRY. ENDLOOP. * 将处理后的行追加到目标内表 APPEND itab. CLEAR itab. ENDLOOP. ENDFORM.

相关新闻

ESP32-S2-MINI-2:高性能、高集成度的物联网Wi-Fi模组解析

ESP32-S2-MINI-2:高性能、高集成度的物联网Wi-Fi模组解析

ESP32-S2-MINI-2是一款紧凑的2.4 GHz Wi-Fi(802.11 b/g/n)模块,内置ESP32-S2 系列芯片(版本v1.0),搭载Xtensa单核32位LX7微控制器。该模块通过芯片叠封技术集成4MB flash,并支持额外叠封2MB PSRAM,提供多达…

2026/7/3 15:02:34 阅读更多 →
MOMENT:时间序列预测、分类、异常检测的基础模型

MOMENT:时间序列预测、分类、异常检测的基础模型

原文:towardsdatascience.com/moment-a-foundation-model-for-time-series-forecasting-classification-anomaly-detection-1e35f5b6ca76 基础模型点燃了 LLM 在时间序列中的应用。 在过去几个月里,我们看到了新型预测模型的发布,如TimesFM&…

2026/7/3 15:02:39 阅读更多 →
/*+ MATERIALIZE */ 优化器提示在 WITH 子句中的使用验证

/*+ MATERIALIZE */ 优化器提示在 WITH 子句中的使用验证

Oracle /* MATERIALIZE */ 优化器提示在 WITH 子句中的使用验证 概述 /* MATERIALIZE */ 是 Oracle 数据库的优化器提示(Hint),核心作用是强制将 WITH 子句(公共表表达式,CTE)的查询结果物化到临时表 中。当…

2026/7/3 15:02:39 阅读更多 →

最新新闻

Pandas数据读取全攻略:从CSV到数据库实战技巧

Pandas数据读取全攻略:从CSV到数据库实战技巧

1. Pandas数据读取基础认知作为Python数据分析的瑞士军刀,Pandas的数据读取能力是其核心功能之一。我初次接触Pandas时,最让我惊讶的是它能够用一行代码读取各种格式的数据文件。但真正深入使用后才发现,这看似简单的功能背后隐藏着许多值得深…

2026/7/4 2:15:31 阅读更多 →
BGA芯片手工焊接全流程:从植球到对齐的12个关键步骤与避坑点

BGA芯片手工焊接全流程:从植球到对齐的12个关键步骤与避坑点

BGA芯片手工焊接全流程:从植球到对齐的12个关键步骤与避坑点在电子维修和研发领域,BGA封装芯片的手工焊接一直被视为一项高难度操作。这种底部布满锡球的封装形式,虽然带来了更高的引脚密度和更好的散热性能,但也让焊接过程变得&q…

2026/7/4 2:13:30 阅读更多 →
彻底关闭Hyper-V的完整指南与性能优化

彻底关闭Hyper-V的完整指南与性能优化

1. 为什么需要关闭Hyper-V?Hyper-V作为Windows系统内置的虚拟化技术,确实为开发者和管理员提供了便利的虚拟机环境。但实际工作中,我们经常会遇到必须彻底关闭Hyper-V的场景。最常见的就是当你需要运行VMware Workstation或VirtualBox这类第三…

2026/7/4 2:13:30 阅读更多 →
Apache HTTPD命令详解与Web服务器管理实践

Apache HTTPD命令详解与Web服务器管理实践

1. HTTPD命令概述与核心功能httpd是Apache HTTP服务器的核心管理命令,作为Linux系统中最流行的Web服务器软件之一,Apache通过httpd命令实现服务的全生命周期管理。这个看似简单的命令背后,实际上承载着Web服务最基础也最重要的功能——将你的…

2026/7/4 2:13:30 阅读更多 →
我把考研名师刘晓艳“骂“进了 AI:一个开源 Agent Skill 从 0 到 1 的完整记录

我把考研名师刘晓艳“骂“进了 AI:一个开源 Agent Skill 从 0 到 1 的完整记录

📖 目录 一、起因:当 AI 遇到备考焦虑症二、她是谁:为什么是她三、技术架构:心智蒸馏怎么做的四、核心设计:5 大心智模型 4 条启发式五、表达 DNA:怎么让她"像"刘晓艳六、实战演示:…

2026/7/4 2:11:29 阅读更多 →
Linux文件管理与Vim编辑器高效使用指南

Linux文件管理与Vim编辑器高效使用指南

1. 文件管理命令基础操作在Linux系统中,文件管理是最基础也是最重要的技能之一。掌握这些命令能让你高效地组织和管理文件系统。下面我将详细介绍几个最常用的文件管理命令及其实际应用场景。1.1 目录操作命令pwd(Print Working Directory)命…

2026/7/4 2:11:29 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻