专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > SAP

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

发布时间:2010-06-06 17:05:08 文章来源:www.iduyao.cn 采编人员:星星草
[SAP ABAP开发技术总结]以二进制、字符模式下载文件
声明:原创作品转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun并以超链接形式标明文章原始出处否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4265688.html

20.26.        下载文件 ... 257

20.26.1.             BIN 二进制下载 ... 257

20.26.2.             以字符模式下载 ... 258

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

image006

 

另外,发现 TCP00 表里也存储了 CODEPAGE ,而且该表有一个 CPCOMPANY 字段标示该代码是由哪个组织定义的(一般我们使用 ISO 国际标准),可以将 TCP00A TCP00 通过 CODEPAGE 联合起来查询, TCP00A 可以根据字符集名称(如 GBK UTF-8 TCP00A-CPATTR 来查询,而 TCP00 可以根据字符集描述(如: Chinese )来查询 TCP00- CPCOMMENT

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • :安装MINI SAP失败

    求救:安装MINI SAP失败! 如题。 怎么办啊? 安装之前已经把SQL2000 2005 VS.NET05 08全都卸载了的。 安装CD1的时候就开始报错...

  • 哪位高手有abap eclipse editor

    谁有abap eclipse editor? 那位哥们有,可以进行资料交换。 ------解决方案-------------------- 这个现在只支持460,好像不支持640...

  • ,关于t-code:sgen的有关问题!

    求助,关于t-code:sgen的问题!急~~~ 昨天刚把sap ecc6装好了 。为了能够快速运行,事先准备用sgen编译一下 非常郁闷的是,在还没有开始...

  • sql查询语句中WHERE条件后面AND的个数解决方案

    sql查询语句中WHERE条件后面AND的个数 sql查询语句中WHERE条件后面AND的个数有没有限制啊! ------解决方案-------------------- ...

  • SAP模块,学哪个模块未来发展比较顺利

    【求助】SAP模块,学哪个模块未来发展比较顺利? 各位大侠,我是SAP新人。最近公司在培训,3周培训后要我们从PS,FI,CO,MM等中选择一个模...

  • 站在十字路口,该怎么处理

    站在十字路口 本人在一个快消公司做IT程序员,主要负责内部系统开发、报表开发、数据库维护等工作。现在公司要上SAP了,我也有幸参与...

  • alv field 是否可以进行日期选择解决方法

    alv field 是否可以进行日期选择 哪位达人知道怎么在ALV报表中实现 日期的选择,就像调整系统日期一样,不用手动收入 ------解决方...

  • 在sap中怎样获取字段所属的表解决思路

    在sap中怎样获取字段所属的表 小弟是SAP初学者,在这里遇到一个问题,由于对sap内部表结构不是很了解,现在要根据一些字段获取所属的表...

  • ABAP list report 输出有关问题

    ABAP list report 输出问题 小弟初学ABAP,苦难重重,望大侠门指点。两个问题: 第一,我做了一个list report,输出deliveray item 和invoi...

  • 在SAP中如何截取字符串

    在SAP中怎么截取字符串 在SAP中怎么截取字符串 比如 DATA:STR(10) LIKE C VALUE '1234567890', STR1(4) LIKE C. 我要取...

热门推荐: