2020-08-23 18:23发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在将内部表中的数据发送到ex... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在将内部表中的数据发送到excel文件,然后再发送到ftp服务器,excel文件放置在ftp服务器上,但是所有数据都位于一列。
我以自己为例进行了修复
类型池: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 => horizontal_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部分********************************** **************************************************
最多设置5个标签!
我以自己为例进行了修复
类型池: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 => horizontal_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#一周热门 更多>