将excel文件发送到ftp,但所有数据都位于一列

2020-08-23 18:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在将内部表中的数据发送到ex...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在将内部表中的数据发送到excel文件,然后再发送到ftp服务器,excel文件放置在ftp服务器上,但是所有数据都位于一列。

2条回答
宇峰Kouji
2020-08-23 18:34

我以自己为例进行了修复

类型池:slis。

表:mseg。

类型:gty_mseg的开头,

mblnr类型mseg-mblnr,
mjahr类型mseg-mjahr,
matnr类型mseg-matnr,
bwart类型mseg-bwart,
werks类型mseg-werks,
lgort类型 mseg-lgort,

gty_mseg的结尾。

类型:ty_final的开头,"填充标题表
findata(2000)type c,
ty_final的结尾。

data:ty_final的gt_final类型标准表,
ty_final的gw_final类型。

data:htab(1)类型c。 "水平制表位"字符

htab = cl_abap_char_utilities => horizo​​ntal_tab。

数据:gty_mseg的gt_mseg类型标准表,
gw_mseg类型gty_mseg,
gt_fcat类型slis_t_fieldcat_alv,
gw_fcat类型slis_field 输入i。

选择框b2的选择屏幕开始,框架标题为text-003。
select-options:s_matnr for mseg-matnr无间隔修改标识符sc1。
选择框b2的选择屏幕结束。
< br>选择开始。

从mseg中选择mblnr
mjahr
matnr
bwart
werks
lgort
到表gt_mseg中,其中s_matnr中的matnr。

连接'Material''MatYear ''MatNo''MovTyp''Plant''StorLoc'到由htab分隔的gw_final-findata中。
将gw_final添加到gt_final中。
clear:gw_final。

在gt_mseg处循环到gw_mseg。
串联
gw_mseg-mblnr
gw_mseg-mjahr
gw_mseg-matnr
gw_mseg-bwart
gw_mseg-werks
gw_mseg-lgort
由htab分隔的gw_final-findata。 br>将gw_final附加到gt_final。
清除gw_final。
结束循环。

*************************************************** ********* FTP部分******************************************* **************************************************

数据:
gc_delimiter(1)类型c值';',
* gt_raw_data类型truxs_t_text_data,
l_host(64)类型c值''," FTP服务器的IP地址
l_user (30)输入c值''," ftp服务器的用户名
l_pwd(30)输入c值''," ftp服务器的密码
l_dest,如rfcdes-rfcdest值'SAPFTPA'。"背景RFC目标

数据:w_hdl类型i,
c_key类型i值26101957,
l_slen类型i,
lv_filename类型rlgrap-filename,
docid,如sysuuid-c,
lf_file 类型draw-filep,
lv_text类型字符串值'Mat'。

* HTTP_SCRAMBLE:用于加扰以SAP识别的格式提供的密码。

设置扩展检查。 br> l_slen = strlen(l_pwd)。
调用函数'HTTP_SCRAMBLE'
exporting
source = l_pwd
sourcelen = l_slen
键= c_key
importing
目标= l_pwd。

调用函数'SAPGUI_PROGRESS_INDICATOR'
导出
text ='连接到FTP服务器'。

*要使用FTP连接到服务器
调用f 功能'FTP_CONNECT'
导出
用户= l_user
密码= l_pwd
主机= l_host
rfc_destination = l_dest
导入
句柄= w_hdl
异常
其他 = 1.

将'/''材料'sy-uzeit sy-datum'.XLS'连接为lv_filename。 "文件名'.xls'

docid = lv_filename。

* FTP_R3_TO_SERVER:用于在字符模式下将内部表数据作为文件传输到其他系统。
调用函数' FTP_R3_TO_SERVER'
导出
句柄= w_hdl
fname = docid"'/itb/MSEG_test.csv'"目标系统的文件路径
character_mode ='X'
* blob_length = file_size"' X'
* blob_length = lv_filename

文本= gt_final" it_dat []
异常
tcpip_error = 1
command_error = 2
data_error = 3
其他= 4.
如果sy-subrc <> 0。
endif。
* ftp_disconnect:用于断开sap与其他系统之间的连接。
*断开FTP
调用功能'FTP_DISCONNECT'
exporting
handle = w_hdl。
* RFC_CONNECTION_CLOSE:这用于断开SAP与其他系统之间的RFC连接。
调用functio n'RFC_CONNECTION_CLOSE'
导出
目标= l_dest
异常
其他=1。

写入:'Excel文件已成功发送到ftp'。

*************************************************** ************** FTP部分********************************** **************************************************

# p#

一周热门 更多>