2008年(49)
分类:
2008-03-28 10:28:22
关于本程序的一点说明和疑问:
1. GUI_UPLOAD 我理解的是file type为'BIN' 时读出来文件是以 binary形式存在的,但是我的内表为 hex,还原图片的时候反而可以成功,而用c类型的内表却不能成功. 我觉得有可能 BIN并不是指的二进制,而是指的SAP系统中的压缩形式,也就是16进制. 不解???? 但是记住用BIN加载出来的用hex的来接收就绝对不会错.
2.cl_gui_picture的load_picture_from_url方法中的传出参数result
在这个方法调用完的时候, 这个result参数并不会马上起作用,这里只是把这个result参数传给cl_gui_picture的对象而已.因为load只是对象简单的把数据和自己联系起来,但是还不知道这些数据到底能否组成一张图片.而要等到PBO之后,也就是图片显示出来了之后,该对象才知道. 它才会把之前传给load_picture_from_url 方法的那个参数result变成1或者0,也就是我们只有在PAI里才可以取得到这个值......
DATA: BEGIN OF pic_tab OCCURS 0,
my_data(500) TYPE x,
END OF pic_tab.
DATA: container TYPE REF TO cl_gui_custom_container,
pic TYPE REF TO cl_gui_picture.
DATA url(256).
DATA resu TYPE i.
DATA path_string TYPE string.
PARAMETERS f_path LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR f_path.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
static = 'X'
CHANGING
file_name = f_path.
START-OF-SELECTION.
path_string = f_path.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = path_string
filetype = 'BIN'
TABLES
data_tab = pic_tab[].
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
subtype = cndp_sap_tab_unknown
* SIZE = g_size
* DATE =
* TIME =
* description =
* LIFETIME = cndp_lifetime_transaction
* CACHEABLE =
* SEND_DATA_AS_STRING =
* FIELDS_FROM_APP =
TABLES
data = pic_tab[]
CHANGING
url = url.
CREATE OBJECT container
EXPORTING
container_name = 'ZC'
.
CREATE OBJECT pic
EXPORTING
parent = container
.
CALL METHOD pic->load_picture_from_url
EXPORTING
url = url.
CALL SCREEN 9000.