核心内容摘要
微算法科技(NASDAQ: MLGO)基于量子技术的区块链架构:量子原生验证模型与分布式账本革新
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 FCO
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
其他错误 * 根据剪贴板导出结果给出对应的消息提示 IF sy-subrc
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