giovedì 26 novembre 2009

Caricare una immagine in una dynpro

Per poter caricare una immagine è necessario caricarla sul server sap seguendo le seguenti istruzioni:
-From transaction SMW0, select Binary data for WEBRFC applications.
-The new logo must be in a .gif format.
-From this transaction create a new object and then choose IMPORT.

Successivamente inserire il seguente codice nel PAI della dynpro:

DATA container TYPE REF TO cl_gui_custom_container.
DATA picture TYPE REF TO cl_gui_picture.
CLASS cl_gui_cfw DEFINITION LOAD.


CREATE OBJECT container
EXPORTING container_name = 'CUSTOM'.
" nome del container custom

CREATE OBJECT picture
EXPORTING parent = container.

CALL METHOD picture->set_display_mode
EXPORTING display_mode = 1.
CALL METHOD picture->set_3d_border
EXPORTING border = 1.

CLEAR url.
PERFORM load_pic_from_db CHANGING url.


CALL METHOD picture->load_picture_from_url
EXPORTING url = url.
init = 'X'.

CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS cntl_system_error = 1
cntl_error = 2.



FORM load_pic_from_db CHANGING 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 = 'ZTAGETIK'.
" Inserire il nome dell'immagine custom
APPEND query_table.

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
invalid_table = 1
parameter_not_found = 2
OTHERS = 3.
IF sy-subrc = 0.
pic_size = content_length.
ENDIF.

CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'image'
subtype = cndp_sap_tab_unknown
size = pic_size
lifetime = cndp_lifetime_transaction
TABLES
data = pic_data
CHANGING
url = url
EXCEPTIONS
OTHERS = 1.

ENDFORM.

Nessun commento:

Posta un commento