1 GUI_DOWNLOAD
1.1 问题表现
GUI_DOWNLOAD在应用当中有时会导致输出的文件在某些电脑正常显示,在某些电脑乱码显示。这个固然是由于各个电脑系统配置有差异,但是我们可以在应用该函数时就排除该差异来保证任意台电脑正常显示输出的文件。
如下属代码:
该代码把一个内表it_printab[]直接放到一个文件sfile中(代码示例来自于ZHRR0028)。
call function 'GUI_DOWNLOAD'
exporting
* BIN_FILESIZE =
filename = sfile "sfile " "p_file
filetype = 'DAT'
codepage = '8404'
tables
data_tab = it_printab[] .
1.2 问题排除方法
在函数中指定codepage就可以了,如该代码示例中指定codepage为’8404’。
2 关于codepage
2.1 gui_download中对codepage的解释
通过上述解释可以知道,SAP codepage是一个4位的number。函数SCP_CODEPAGE_BY_EXTERNAL_NAME可以通过iso,gbk等输入参数确定返回的是the SAP codepage number for an external character set name;函数NLS_GET_FRONTEND_CP通过输入语言参数返回的是the appropriate non-Unicode frontend codepage for a language。比如本例用的函数是NLS_GET_FRONTEND_CP,输入是语言zh,返回的是8404。
2.2 表
实际上有两个表存储codepage,其对应的函数关系如下:
函数:SCP_CODEPAGE_BY_EXTERNAL_NAME
表:TCP00A- Code Page Attributes
函数:NLS_GET_FRONTEND_CP:
表:TCP0F-Relationship Between System Codepage and Frontend Codepage