*&---------------------------------------------------------------------*
* 读服务器上的文件和读本地的文件
*
*&---------------------------------------------------------------------*
* 读服务器上的文件 open dataset
* 读本地的文件 GUI_UPLOAD
*
*&---------------------------------------------------------------------*
* 读服务器上的文件 open dataset
data filename type string.
data: begin of st_up,
record(600) type c,
end of st_up.
data: it_lin like table of st_up with header line,
st_lin like table of st_up with header line.
call function 'GUI_UPLOAD'
exporting
filename = filename
tables
data_tab = it_lin.
loop at it_lin.
split it_lin at ',' into st_tab-pron st_tab-fwsr
st_tab-czfy st_tab-sjsr.
append st_tab to it_tab.
endloop.
* 读服务器上的文件 open dataset
* 读服务器上的文件 open dataset
DATA: F_name(150) TYPE C,
lo_line(200) type c. "记录文件中每行的数据
* 内部表声明
data: begin of st_f01 occurs 0,
del type c,
bktxt(10) type c, "记录号
bldat(8) type c, "凭证日期
budat(8) type c, "记账日期
newbs(2) type c, "记账码
saknr(10) type c, "总账科目
kunnr(10) type c, "客户
wrbtr(16) type c, "金额
sgtxt(50) type c, "文本
prctr(10) type c, "利润中心
rstgr(3) type c, "原因代码
end of st_f01.
open dataset F_name for input in text mode.
if sy-subrc <> 0.
exit.
endif.
do.
read dataset f_name into lo_line. "一条 一条的读数据
if sy-subrc <> 0. "最后一条的情况
exit.
endif.
st_f01-bktxt = lo_line+0(10). "记录号
st_f01-bldat = lo_line+10(8). "凭证日期
st_f01-budat = lo_line+10(8). "记账日期
st_f01-newbs = lo_line+26(2). "记账码
st_f01-saknr = lo_line+28(10). "总账科目
st_f01-kunnr = lo_line+38(10). "客户
st_f01-wrbtr = lo_line+48(16). "金额
st_f01-sgtxt = lo_line+64(50). "文本
st_f01-prctr = lo_line+114(10). "利润中心
st_f01-rstgr = lo_line+124(3). "原因代码
append tbl_f01.
enddo.
close dataset v_name.
loop at st_f01.
**数据库操作
endloop.
本文档详细介绍了如何使用SAP进行服务器上文件的读取,包括通过'GUI_UPLOAD'函数读取数据集,以及通过打开数据集逐行读取本地文件的内容,涉及字段分割、数据存储到内部表等操作。

被折叠的 条评论
为什么被折叠?



