少司缘:无声的羁绊,心之所向

核心内容摘要

《“人人摸”触碰科技的脉搏,点亮生活的色彩》
17起草:点亮创意火花,重塑数字叙事

120分钟的舆论围剿:从董卿“被躁”看流量时代的集体狂欢与真相之困

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

IF sy-subrc

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv

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

* 分配目标内表的对应字段到字段符号 ASSIGN COMPONENT lv_field_index OF STRUCTURE fs_target_table TO fs_target_field. CHECK sy-subrc

* 字段赋值 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.

免费看大片真人电视剧满春楼-免费看大片真人电视剧满春楼应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123