Ver Mensaje Individual
  #2  
Viejo 11/06/08, 21:51:09
Avatar de frankmerlos
frankmerlos frankmerlos is offline
Member
 
Fecha de Ingreso: oct 2006
Localización: San Salvador, El Salvador
Mensajes: 51
Aqui tengo un ejemplo que te puede servir.

Utiliza la transaccion SMW0 para cargar la imagenes.

Paso 1.

Crea un programa de prueba con la dynpro 100.
Dentro de la dynpro pon un campo de E/S y llamalo IMAGEN.
colocar tambien un custom control y llamalo PICTURE1.

Paso 2.
La logica del proceso debe quedar de esta manera:

PROCESS BEFORE OUTPUT.
MODULE cargar_logo.
* MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
module destruir.
* MODULE USER_COMMAND_0100.


Paso 3.

El codigo del programa como sigue.

*&---------------------------------------------------------------------*
*& Report ZSVTEST_IMAGENES
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZSVTEST_IMAGENES.

DATA IMAGEN TYPE STRING.
* URL requerida para dibujar el logo en pantalla
DATA url(255).
* Objeto contenedor
DATA logo_container TYPE REF TO cl_gui_custom_container.
* Objeto imagen
DATA logo_picture TYPE REF TO cl_gui_picture.

INITIALIZATION.
IMAGEN = 'ZSV_CITIBANKU'.

START-OF-SELECTION.

CALL SCREEN 100.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Module cargar_logo OUTPUT
*&---------------------------------------------------------------------*

MODULE cargar_logo OUTPUT.

PERFORM selscn_cargar_logo_en_screen
USING
'PICTURE1' " <- Nombre que le diste al control
IMAGEN. " <- Nombre que le diste al logo

ENDMODULE. " cargar_logo OUTPUT

*&---------------------------------------------------------------------*
*& Form selscn_cargar_logo_en_screen
*&---------------------------------------------------------------------*

FORM selscn_cargar_logo_en_screen USING p_container
p_logo.

* Creamos el contenedor
CREATE OBJECT logo_container
EXPORTING container_name = p_container.

* Creamos el objeto imagen asignando el contenedor
CREATE OBJECT logo_picture
EXPORTING parent = logo_container
EXCEPTIONS error = 1.

* Request an URL from the data provider by exporting the pic_data.
CLEAR URL.

PERFORM selscn_load_pic_from_db USING p_logo
CHANGING url.

* Cargamos el logo
CALL METHOD logo_picture->load_picture_from_url
EXPORTING
url = url.
IF sy-subrc NE 0.
ENDIF.

* Hacemos que estire la imagen para colocarlo en todo el contenedor
CALL METHOD logo_picture->set_display_mode
EXPORTING
display_mode = logo_picture->display_mode_fit_center
EXCEPTIONS
error = 1.

ENDFORM. " SELSCN_cargar_logo_en_screen

*&---------------------------------------------------------------------*
*& Form SELSCN_LOAD_PIC_FROM_DB
*&---------------------------------------------------------------------*
* RECUPERA UNA IMAGEN DE SAP Y LA CONVIERTE PARA PODER UTILIZARLA
* (recogida del programa RSDEMO_PICTURE_CONTROL)
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*

FORM selscn_load_pic_from_db USING p_image
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 = p_image.
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
object_not_found = 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. " SELSCN_LOAD_PIC_FROM_DB
*&---------------------------------------------------------------------*
*& Module destruir INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE destruir INPUT.

CALL METHOD logo_picture->free.
CALL METHOD logo_container->free.
FREE logo_picture.
FREE logo_container.

ENDMODULE. " destruir INPUT


Colocar el nombre de la imagen que necesitas en el campo de E/S y veras como cambia la imagen dentro de custom control.

Saludos.
Responder Con Cita