Im Dynpro über einen Container ein Bild anzeigen
1. SMW0: Bild in BMP-Format hochladen
2. Programm und Dynpro erstellen
3. Screen Painter aufrufen in dem man auf den Button "Layout" klickt
4. In der linken Spalte das Icon " Custom Control" nach rechts ziehen (+ die Grösse einstellen) und beschriften (z.B. P_BILD_05). Dann nicht vergessen zu aktivieren.
5. In der Ablauflogik folgende Einträge im PBO erstellen
PROCESS BEFORE OUTPUT.
MODULE status_9000.
"Bilder anzeigen
MODULE bild_9000.
"HTML Container anzeigen
MODULE html_9000.
PROCESS AFTER INPUT.
MODULE user_command_9000.
6. Doppelklick auf "bild_9000" und legen Sie ein PBO Modul an. Folgenden Code einfügen
MODULE bild_9000 OUTPUT.
TYPE-POOLS: cndp.
DATA: lv_objid TYPE w3objid VALUE 'Z_LOGO', "NAME BILD SMW0
go_container TYPE REF TO cl_gui_custom_container,
go_picture TYPE REF TO cl_gui_picture,
lv_url TYPE cndp_url.
IF go_container IS INITIAL.
CREATE OBJECT go_container
EXPORTING
container_name = 'P_BILD_01' "NAME CUSTOM CONTAINER
repid = 'Z_DYNPROBILD' "PROGRAMM NAME
dynnr = '9000' "DYNPRONAME
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE i001(00) WITH 'Fehler mit dem erstellen des containers'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
IF go_picture IS INITIAL.
CREATE OBJECT go_picture
EXPORTING
parent = go_container
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i001(00) WITH 'Fehler mit dem anzeigen des Bildes'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
IF go_picture IS NOT INITIAL.
CALL FUNCTION 'DP_PUBLISH_WWW_URL'
EXPORTING
objid = lv_objid
lifetime = cndp_lifetime_transaction
IMPORTING
url = lv_url
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0.
CALL METHOD go_picture->load_picture_from_url_async
EXPORTING
url = lv_url.
CALL METHOD go_picture->set_display_mode
EXPORTING
display_mode = cl_gui_picture=>display_mode_fit.
ELSE.
MESSAGE i001(00) WITH 'Fehler mit dem Laden des Bildes'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
EDNMODULE