当前位置:网站首页>SAP ABAP EXCEL 导入
SAP ABAP EXCEL 导入
2022-08-05 17:39:00 【请输入昵称膨胀的馒头】
SAP ABAP EXCEL 导入
选择屏幕 输入框
用于属于导入的 EXCEL 文件路径
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
PARAMETERS p_file TYPE rlgrap-filename MEMORY ID fil MODIF ID ty1.
SELECTION-SCREEN END OF BLOCK blk1.
为输入框添加 F4 搜索帮助
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mode = 'O'
title = '导入模板'
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
定义全局变量
定义类型ty_cols_rows和工作区gs_cols_rows的目的是便于维护修改读取 EXCEL 的行列数
TYPES: BEGIN OF ty_cols_rows,
begin_col TYPE i,
begin_row TYPE i,
end_col TYPE i,
end_row TYPE i,
END OF ty_cols_rows.
DATA: gs_cols_rows TYPE ty_cols_rows.
定义导入的子例程
定义变量 lv_index 的目的是为了简洁代码可以使用field-symbols指针给工作区赋值,同时可以使用变量lv_index判断并对某些特殊数据进行处理
例如日期填入时可能包含小数点或其他的什么符号,这在SAP里是不被允许的
还有比如说给物料增加前导零等处理
FORM frm_upload_data USING lv_file LIKE rlgrap-filename
` ls_cols_rows LIKE gs_cols_rows.
DATA: excel TYPE ole2_object,
lv_index TYPE i.
DATA: lt_excel LIKE TABLE OF alsmex_tabline,
ls_excel LIKE alsmex_tabline.
FIELD-SYMBOLS: <fs>.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
` filename = lv_file
` i_begin_col = ls_cols_rows-begin_col
` i_begin_row = ls_cols_rows-begin_row
` i_end_col = ls_cols_rows-end_col
` i_end_row = ls_cols_rows-end_row
TABLES
intern = lt_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
SET PROPERTY OF excel 'DisplayAlerts' = 0.
SORT lt_excel BY row col.
LOOP AT lt_excel INTO ls_excel.
lv_index = ls_excel-col.
IF lv_index EQ 5 OR lv_index EQ 6.
WHILE ls_excel-value CA '.'.
REPLACE '.' WITH '' INTO ls_excel-value.
CONDENSE ls_excel-value NO-GAPS.
ENDWHILE.
ENDIF.
ASSIGN COMPONENT lv_index OF STRUCTURE gs_data TO <fs>.
<fs> = ls_excel-value.
IF lv_index EQ 1.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = <fs>
IMPORTING
output = <fs>.
ENDIF.
AT END OF row.
APPEND gs_data TO gt_data.
CLEAR gs_data.
ENDAT.
ENDLOOP.
ENDFORM.
执行导入子例程
START-OF-SELECTION.
gs_cols_rows-begin_col = 1.
` gs_cols_rows-begin_row = 2.
gs_cols_rows-end_col = 12.
gs_cols_rows-end_row = 9999.
PERFORM frm_upload_data USING p_file gs_cols_rows.
边栏推荐
- 【OAuth2】十四、OAuth2授权端点配置类OAuth2AuthorizationEndpointConfigurer和OAuth2AuthorizationEndpointFilter
- Notes from Google Play | Google Play 持续助力您的应用和游戏
- The role and use of mmap()
- [uvm]create_item ???
- INPUT
- 和我一起学习自动化运维
- 生成扩散模型漫谈:DDIM = 高观点DDPM
- 力扣623.在二叉树中增加一行 dfs
- ERMiner: Sequential Rule Mining Using Equivalence Classes
- Excel文件中大批量工作表如何自动生成目录
猜你喜欢

Notes from Google Play | Google Play 持续助力您的应用和游戏

What is the future trend of software testing jobs?

Pipenv

ansible批量添加巡检服务器

After using Stream for many years, does collect still have these "saucy operations"?

mysql主主复制

平凯星辰合伙人余梦杰:全球化和云计算趋势下的开源生态构建

Sentinel链路模式规则无效

如何成为一名合格的 DBA?看看“老油条”们怎么说

Jmix - 业务系统高效开发的新方式
随机推荐
工作中必会的57个Excel小技巧
ERMiner: Sequential Rule Mining Using Equivalence Classes
How to become a qualified DBA?See what the "old fritters" have to say
js图片热点提示气泡插件
文末送书 | CCF优秀博士论文丛书:搜索引擎中的实体推荐关键技术研究
【数据挖掘】顺丰公司数据挖掘笔试题
牛客网剑指offer之二分查找
ERMiner: Sequential Rule Mining Using Equivalence Classes
Matlab求解线性方程式与线性问题
疏水18碳磷脂磷脂-聚乙二醇-羧基,DSPE-PEG-Acid,CAS:1403744-37-5
想问一下,安装box的时候报这个错误,但是数据库容器起的都能用,是什么原因造成的啊?1.02和1.0
likeshop搭建商城系统,一步到位
智能合约安全——随机数
ICML 2022 | 图神经网络的局部增强
SwiftUI 教程之使用 DocumentGroup 和 FileDocument 创建基于文本文档的应用程序
不能不知道的excel实用操作技巧!
[Knowledge] How much do you know about LiDAR point cloud data?
WPF 截图控件之绘制箭头(五)「仿微信」
培训机构与自学的优缺点都有什么
每日一题(1)—— 最大连号