#2
|
||||
|
||||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|