GUI_UPLOAD中文问题[转]
(2011-02-21 16:50:13)
标签:
杂谈 |
分类: ABAP-Basic |
1. cl_gui_frontend_services类
这个类提供了很多对操作系统文件的操作,例如拷贝,列出文件名等等。这些方法和java里还有我写过的VBA里那些放都差不多,所以以后如果要有一些对文件的操作可以用这个类提供的静态方法。顺便说下TEST_FRONTEND_SERVICES在IDES是个范例程序可以在里面看看,不过只写了几个方法的运用。
2.WS_UPLOAD和GUI_UPLOAD
这两者的区别我就从今天碰到的一个问题里用现象去表明他们的区别吧,从底层代码看太痛苦了。我写了一个小的测试程序用来读取一个txt文本,再输出list中。txt文本是中文的。我分别用WS_UPLOAD和GUI_UPLOAD实现,发现怎样都实现不了,只能实现英文。我觉得这不可能了啊!装了Unicode不可能读不了中文的,后来在同事的提醒下用中文登陆系统程序就可以实现了!可是我觉得仍然不对,在英文系统下也应该能读中文,毕竟GUI和server都有Unicode,在参数列表里我发现了code page这个参数,于是我加上code page = '8400' 。呵呵,终于发现可以在英文登陆状态下上传中文文本了,不过使用WS_UPLOAD仍然不能上传中文,而GUI_UPLOAD此时就可以。
我又查阅了相关资料果然,WS_UPLOAD是一个要被GUI_UPLOAD替代的funtion,所以以后写程序就都用GUI_UPLOAD就好了。
3.调用GUI_UPLOAD的两种方式
GUI_UPLOAD虽然是cl_gui_frontend_services类的静态方法但是也可以用function的方法调用!SAP估计将某些静态方法封装了一层所以就可以用调用函数的方式调用GUI_UPLOAD方法。我又测试了下GUI_DOWNLOAD和GET_WINDOWS_DIRECTORY,不过只有GUI_DOWNLOAD可以用函数调用。看来不是所有的静态方法都可以用函数调用。下面的代码提供了一个简单的调用GUI_UPLOAD的代码:
TYPES:
end
DATA: