[SAP ABAP开发技术总结]以二进制、字符模式下载文件

20.26.
下载文件
20.26.1.
以
BIN
二进制下载
DATA
:
xstr
TYPE
xstring
.
DATA
:
l_codepage
(
4
)
TYPE
n
.
DATA
:
l_encoding
(
20
).
**********
字符集名与内码转换
"
将外部字符集名转换为内部编码
CALL FUNCTION
'
SCP_CODEPAGE_BY_EXTERNAL_NAME
'
EXPORTING
external_name
=
'UTF-8'
IMPORTING
sap_codepage
=
l_codepage
.
l_encoding
=
l_codepage
.
**********
编码
DATA
:
convout
TYPE REF TO
cl_abap_conv_out_ce
.
"
创建编码对象
convout
=
cl_abap_conv_out_ce
=>
create
(
encoding
=
l_encoding
).
convout
->
write
(
data
=
'
江正军
'
).
"
编码
xstr
=
convout
->
get_buffer
( ).
"
获取二进制码流
WRITE
:
/ xstr
.
"E6B19FE6ADA3E5869B
**********
解码
DATA
:
convin
TYPE REF TO
cl_abap_conv_in_ce
.
"
创建解码对象
convin
=
cl_abap_conv_in_ce
=>
create
(
encoding
=
l_encoding
input
=
xstr
).
DATA
:
str
TYPE
string
.
CALL METHOD
convin
->
read
"
解码
IMPORTING data
=
str
.
WRITE
:
/ str
.
"
江正军
TYPES
:
xx
(
100
)
TYPE x
.
DATA
:
xtab
TYPE STANDARD TABLE OF
xx
WITH HEADER LINE
.
xtab
=
xstr
.
APPEND
xtab
.
CALL FUNCTION
'GUI_DOWNLOAD'
EXPORTING
filename
=
'c:\2.txt'
filetype
=
'BIN'
TABLES
"data_tab
的类型为
ANY
,所以
xtab
是一列还是多列,都会写到
"
文件中去,这里还只有一列,而且还没有列名,这也没有关系
data_tab
=
xtab[]
.
20.26.2.
以字符模式下载
DATA
:
BEGIN OF
strc
OCCURS
0
,
c1
(
2
)
TYPE c
,
c2
(
1
)
TYPE c
,
END OF
strc
.
strc
-
c1
=
'
中
'
.
strc
-
c2
=
'
国
'
.
APPEND
strc
.
APPEND
strc
.
CALL FUNCTION
'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE
=
filename
=
'c:\1.txt'
filetype
=
'DAT'
"
列与列之间会使用
TAB
分隔
* APPEND
= ' '
* WRITE_FIELD_SEPARATOR = ' '
* HEADER
= '00'
* codepage
= '8400' "GBK
* codepage
= '8450' "GB2312
codepage
=
'4110'
"utf-8
* CODEPAGE
= '4102'"UTF-16BE
* CODEPAGE
= '4103'"UTF-16LE
TABLES
data_tab
=
strc[]
.
CODEPAGE
l
Description
Use parameter CODEPAGE to specify the desired target codepage. If this
parameter is not set, the codepage of the SAP GUI is used as the target
codepage.
如果不指定,则使用
SAP GUI
所使用的
Codepage
。
l
Value range
4-digit number of the SAP codepage. The function module
SCP_CODEPAGE_BY_EXTERNAL_NAME
returns the SAP codepage number for an external character set name, for
example, "iso-8859-1". The function module NLS_GET_FRONTEND_CP returns
the appropriate non-Unicode frontend codepage for a language.
You can determine the desired codepage interactively, if the parameter
with_encoding of method file_save_dialog is set by cl_gui_frontend_services.
SPACE: Codepage of the SAP GUI
l
Default
SPACE
SCP_CODEPAGE_BY_EXTERNAL_NAME
该函数可将字符集名称转换为
CODEPAGE
,也可以直接查看
TCP00A
表

另外,发现
TCP00
表里也存储了
CODEPAGE
,而且该表有一个
CPCOMPANY
字段标示该代码是由哪个组织定义的(一般我们使用
ISO
国际标准),可以将
TCP00A
与
TCP00
通过
CODEPAGE
联合起来查询,
TCP00A
可以根据字符集名称(如
GBK
、
UTF-8
)
TCP00A-CPATTR
来查询,而
TCP00
可以根据字符集描述(如:
Chinese
)来查询
TCP00-
CPCOMMENT
。
[SAP ABAP开发技术总结]以二进制、字符模式下载文件的更多相关文章
- ABAP开发顾问必备:SAP ABAP开发技术总结
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP开发顾问必备:SAP ABAP开发技术总结[转载]
转载自SAP师太技术博客,原文链接:http://www.cnblogs.com/jiangzhengjun/p/4260224.html 在原文上增加了链接,此文及此文的链接版权都归SAP师太所有. ...
- [SAP ABAP开发技术总结]内表操作
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]OPEN SQL
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]字符串处理函数、正则表达式
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]ABAP程序之间数据共享与传递
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]字符编码与解码、Unicode
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]ALV
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- [SAP ABAP开发技术总结]将文件存储到数据库表中,并可发送邮件
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- poj2407 Relatives 欧拉函数基本应用
题意很简单 就是欧拉函数的定义: 欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) .题目求的就是φ(n) 根据 通式:φ(x)=x*(1-1/p1)*(1-1/ ...
- :eq(index)
匹配一个给定索引值的元素 从 0 开始计数 查找第二行 HTML 代码: <table> <tr><td>Header 1</td></tr> ...
- 手机端上传未知图片大小,js设置宽高比例
<style rel="stylesheet" type="text/css"> .lunboimg{ width: 100%; height: a ...
- HDU 2665 && POJ 2104(主席树)
http://poj.org/problem?id=2104 对权值进行建树(这个时候树的叶子是数组b的有序数列),然后二分查找原数列中每个数在有序数列中的位置(即第几小),对每一个前缀[1,i]建一 ...
- ACM题目————STL练习之字符串替换
描述 编写一个程序实现将字符串中的所有"you"替换成"we" 输入 输入包含多行数据 每行数据是一个字符串,长度不超过1000 数据以EOF结束 输出 对于输 ...
- syntactically incorrect() 404
遇到这个错误就来记录一下吧. 这个错误是springMVC报出的错误.大致的意思就是form传值的类型和controller中的参数不符. 有可能是名字错误,有可能是类型不对.比如前面你传来的是 p ...
- 利用Session实现一次验证码
Session可避免表单的重复提交:实现一次表单提交,可避免恶意提交: 1.首先建立一个Servlet类:ValidateColorServlet,里边有获取验证码的方法,并且验证码是大小写区分: p ...
- NYOJ(21),BFS,三个水杯
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=21 BFS判环,vis标记状态即可. #include <stdio.h> # ...
- [小技巧] git: Your branch and 'origin/master' have diverged
本文参考:http://stackoverflow.com/questions/19864934/git-your-branch-and-origin-master-have-diverged-how ...
- EasyUI 格式化DataGrid列
easyui DataGrid中格式化列,如果单价低于20,则使用定义列formatter为红色文本.格式化DataGrid列,我们应该设置formatter属性,这个属性是一个函数.格式化函数包括两 ...