MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 11/06/08, 19:15:23
fitog4 fitog4 is offline
Junior Member
 
Fecha de Ingreso: jul 2007
Mensajes: 23
Quitar una imagen de una dynpro

Hola a todos:

Me he creado una dynpro en la que inserto una imagen. Lo he hecho con un custom control llamado 'picture' y con la siguiente funcion:


La imagen la importo a traves de la se78.
El caso es que una vez mostrada, no se como quitarla. Es como si se quedara bloqueada. Solo quiero que se muestre en ciertos casos.
¿como podría hacerlo?

Un saludo.
Responder Con Cita
  #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
  #3  
Viejo 12/06/08, 17:22:03
fitog4 fitog4 is offline
Junior Member
 
Fecha de Ingreso: jul 2007
Mensajes: 23
Ha funcionado.

Muchisimas gracias.
Responder Con Cita
  #4  
Viejo 17/06/11, 05:52:37
cassares cassares is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 4
Solucion para imagenes desde GOS

Hola frankmerlos, Me parece muy bueno el aporte, me ayudo mucho tambien. Quiero tambien hacer un aporte para los que quiera traer una imagen de GOS, para traer una imagen desde GOS puedes reemplazar del codigo anterior la rutina donde se genera el url: PERFORM selscn_load_pic_from_db USING p_logo CHANGING url. y creas la siguiente funcion o lo puedes pegar como form tambien. En este caso el número del material es el mismo nombre con que se cargó la imagen, que se encuentra en la tabla: SRGBTBREL. El objetivo es general la url desde gos sin necesidad de descarga a un archivo local la imagen:


FUNCTION zread_images_gos.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(P_MATNR) TYPE MATNR
*" EXPORTING
*" REFERENCE(E_URL) TYPE C
*"----------------------------------------------------------------------



*Definición de variables

DATA: gs_lpor TYPE sibflporb,
lt_relat TYPE obl_t_relt,
la_relat LIKE LINE OF lt_relat,
t_links TYPE obl_t_link,
la_links LIKE LINE OF t_links,
l_folder_id TYPE soodk,
l_object_id TYPE soodk,
document_id TYPE sofmk,
document_content TYPE STANDARD TABLE OF soli WITH HEADER LINE,
soli_head TYPE STANDARD TABLE OF soli WITH HEADER LINE,
object_id TYPE sdokobject,
it_file_content_binary LIKE TABLE OF sdokcntbin WITH HEADER LINE,
vl_file_name(200) TYPE c,
line TYPE so_text255,
vl_phio_id TYPE soffphio-phio_id,
data_txt LIKE TABLE OF sdokcntasc,
data_bin LIKE TABLE OF sdokcntbin WITH HEADER LINE,
class TYPE string,
objid TYPE string,
lo_root TYPE REF TO cx_root.


gs_lpor-instid = p_matnr.
gs_lpor-typeid = 'BUS1001006'.
gs_lpor-catid = 'BO'.

*Leer el link
la_relat-sign = 'I'.
la_relat-option = 'EQ'.
la_relat-low = 'NOTE'.
APPEND la_relat TO lt_relat.
la_relat-sign = 'I'.
la_relat-option = 'EQ'.
la_relat-low = 'ATTA'.
APPEND la_relat TO lt_relat.
la_relat-sign = 'I'.
la_relat-option = 'EQ'.
la_relat-low = 'URL'.
APPEND la_relat TO lt_relat.

TRY.
CALL METHOD cl_binary_relation=>read_links
EXPORTING
is_object = gs_lpor
it_relation_options = lt_relat
IMPORTING
et_links = t_links.
CATCH cx_root INTO lo_root.
ENDTRY.

IF t_links IS NOT INITIAL.

READ TABLE t_links INTO la_links INDEX 1.

document_id = la_links-instid_b.
l_folder_id-objtp = document_id-foltp.
l_folder_id-objyr = document_id-folyr.
l_folder_id-objno = document_id-folno.
l_object_id-objtp = document_id-doctp.
l_object_id-objyr = document_id-docyr.
l_object_id-objno = document_id-docno.

* Leer Objeto
CALL FUNCTION 'SO_OBJECT_READ'
EXPORTING
folder_id = l_folder_id
object_id = l_object_id
TABLES
objcont = document_content
objhead = soli_head
EXCEPTIONS
active_user_not_exist = 1
communication_failure = 2
component_not_available = 3
folder_not_exist = 4
folder_no_authorization = 5
object_not_exist = 6
object_no_authorization = 7
operation_no_authorization = 8
owner_not_exist = 9
parameter_error = 10
substitute_not_active = 11
substitute_not_defined = 12
system_failure = 13
x_error = 14
OTHERS = 15.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

READ TABLE document_content INDEX 1.
READ TABLE soli_head INDEX 1.

vl_file_name = soli_head-line+13.
line = document_content-line.


SPLIT line AT space INTO: class objid.
class = class+17.
CONDENSE class NO-GAPS.
CONDENSE objid NO-GAPS.

* Consultar el id físico
SELECT SINGLE phio_id
INTO vl_phio_id
FROM soffphio WHERE loio_id = objid.

* Leer el contenido BIN
IF sy-subrc = 0.

CALL FUNCTION 'SCMS_R3DB_GET'
EXPORTING
crep_id = 'SOFFDB'
doc_id = vl_phio_id
comp_id = vl_file_name
TABLES
data_txt = data_txt
data_bin = data_bin.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.


CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
subtype = cndp_sap_tab_unknown"'BMP'
cacheable = 'X'
lifetime = cndp_lifetime_transaction
TABLES
data = data_bin
CHANGING
url = e_url.


ENDIF.
ELSE.
MESSAGE 'No se encuentra la imagen' TYPE 'E'.
ENDIF.

ENDFUNCTION.

Espero les ayude, Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 23:00:12.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web