该程序需要注意的地方: 用Read dataset读取的时候,有两种情况,一种是文件刚好为500的整数倍,sy-subrc为4的时候是,容器pic_tab-data 里已经为空; 另一种情况则不是500的整数倍,sy-subrc为4的时候pic_tab-data里还保留有最后一行数据,因为最后一行长度不满500, 所以系统认为文件已经结束, 而sy-subrc为4.
所以在Close了Dataset之后,要看pic_tab-data是不是为空,如果不是空的则需要添加到内表中.
TYPE-POOLS cndp.
DATA: BEGIN OF pic_tab OCCURS 0,
data(500) TYPE x,
END OF pic_tab.
DATA temp(2) TYPE x.
DATA: wa_indx LIKE indx,
url(256).
DATA: container TYPE REF TO cl_gui_custom_container,
pic TYPE REF TO cl_gui_picture.
START-OF-SELECTION.
OPEN DATASET 'd:\hrtest\123.bmp' FOR INPUT IN BINARY MODE.
DO.
CLEAR pic_tab-data.
READ DATASET 'd:\hrtest\123.bmp' INTO pic_tab-data.
IF sy-subrc <> 0.
EXIT.
ELSE.
APPEND pic_tab.
ENDIF.
ENDDO.
CLOSE DATASET 'd:\hrtest\123.bmp'.
IF pic_tab-data IS NOT INITIAL.
APPEND pic_tab.
ENDIF.
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
subtype = cndp_sap_tab_unknown
TABLES
data = pic_tab[]
CHANGING
url = url.
CREATE OBJECT container
EXPORTING
container_name = 'ZCONTAINER'
.
CREATE OBJECT pic
EXPORTING
parent = container .
CALL METHOD pic->load_picture_from_url
EXPORTING
url = url.
CALL SCREEN 9000.
阅读(4341) | 评论(0) | 转发(0) |