1、图片上载
图片的上载是在事务代码SWM0中操作的。
输入包slis进去,然后新建一个对象,尚在成功后相关的数据在数据表WWWDATA中存储,可以通过对象名称查找出来
2、创建屏幕100在屏幕上加上定制控制对象元素P1。
3.代码实现:
*&---------------------------------------------------------------------*
*& Report YTEST019
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ytest019.
DATA:ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
*定义控制和图片对象定义
DATA container TYPE REF TO cl_gui_custom_container.
DATA picture TYPE REF TO cl_gui_picture.
*初始标识字段定义
DATA init.
*直接调用窗口
CALL SCREEN 100.
INCLUDE ytest019_exiti01.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
save_ok = ok_code.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
*如果还未创建定制对象
IF init IS INITIAL.
DATA url(255).
CLEAR url.
CREATE OBJECT container
EXPORTING
container_name = 'P1'.
CREATE OBJECT picture
EXPORTING
parent = container
EXCEPTIONS
error = 1.
IF sy-subrc NE 0.
ENDIF.
*定义通过函数取得图片地址
PERFORM load_pic_from_db CHANGING url.
* 显示图片
CALL METHOD picture->load_picture_from_url
EXPORTING
url = url.
IF sy-subrc NE 0.
ENDIF.
*置标识位置已初始
init = 'X'.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Form LOAD_PIC_FROM_DB
*&---------------------------------------------------------------------*
FORM load_pic_from_db CHANGING p_url.
DATA query_table LIKE w3query OCCURS 1 WITH HEADER LINE.
DATA html_table LIKE w3html OCCURS 1.
DATA return_code LIKE w3param-ret_code.
DATA content_type LIKE w3param-cont_type.
DATA content_length LIKE w3param-cont_len.
DATA pic_data LIKE w3mime OCCURS 0.
DATA pic_size TYPE i.
REFRESH query_table.
*查询数据对象
query_table-name = '_OBJECT_ID'.
*查询对象名称
query_table-value = 'TESTPICS'.
APPEND query_table.
*读取表WWWDATA,取出图片对象信息
CALL FUNCTION 'WWW_GET_MIME_OBJECT'
TABLES
query_string = query_table
html = html_table
mime = pic_data
CHANGING
return_code = return_code
content_type = content_type
content_length = content_length
EXCEPTIONS
object_not_found = 1
parameter_not_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
pic_size = content_length.
ENDIF.
* 创建图片URL地址
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'image'
subtype = cndp_sap_tab_unknown
size = pic_size
* DATE =
* TIME =
* DESCRIPTION =
lifetime = cndp_lifetime_transaction
* CACHEABLE =
* SEND_DATA_AS_STRING =
* FIELDS_FROM_APP =
TABLES
data = pic_data
* FIELDS =
* PROPERTIES =
* COLUMNS_TO_STRETCH =
CHANGING
url = url
EXCEPTIONS
* DP_INVALID_PARAMETER = 1
* DP_ERROR_PUT_TABLE = 2
* DP_ERROR_GENERAL = 3
others = 1
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " LOAD_PIC_FROM_DB