REPORT z_dyn_classname.
CLASS cl_abap_objectdescr DEFINITION LOAD.
DATA: container TYPE REF TO object,
pic_container TYPE REF TO cl_gui_container,
exc_ref TYPE REF TO cx_root,
lo_cast_error TYPE REF TO cx_sy_move_cast_error,
exc_text TYPE string.
* Picture Control
DATA picture TYPE REF TO cl_gui_picture.
DATA: class TYPE string VALUE 'CL_GUI_DIALOGBOX_CONTAINER',
ptab TYPE abap_parmbind_tab,
ptab_line TYPE abap_parmbind.
CALL SCREEN 100.
*----------------------------------------------------------------------*
* MODULE STATUS_0100 OUTPUT
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
ptab_line-name = 'WIDTH'.
ptab_line-kind = cl_abap_objectdescr=>exporting.
GET REFERENCE OF 1000 INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.
ptab_line-name = 'PARENT'.
ptab_line-kind = cl_abap_objectdescr=>exporting.
GET REFERENCE OF cl_gui_container=>desktop
INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.
ptab_line-name = 'HEIGHT'.
ptab_line-kind = cl_abap_objectdescr=>exporting.
GET REFERENCE OF 300 INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.
TRY.
CREATE OBJECT container TYPE (class)
PARAMETER-TABLE ptab.
CATCH cx_sy_create_object_error INTO exc_ref.
exc_text = exc_ref->get_text( ).
MESSAGE exc_text TYPE 'I'.
ENDTRY.
TRY.
* Now, the Widening cast to move the reference from the
* generic object to dialogbox parent container class (more specific class).
pic_container ?= container.
CATCH cx_sy_move_cast_error INTO lo_cast_error.
WRITE: / 'Widening cast failed'.
ENDTRY.
CREATE OBJECT picture
EXPORTING
parent = pic_container.
* Request an URL from the data provider by exporting the pic_data.
DATA url(255).
CLEAR url.
PERFORM load_pic_from_db CHANGING url.
* load picture
CALL METHOD picture->load_picture_from_url
EXPORTING
url = url.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2.
IF sy-subrc <> 0.
* error handling
ENDIF.
ENDMODULE. "STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Form load_pic_from_db
*&---------------------------------------------------------------------*
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 = 'ENJOYSAP_LOGO'.
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. "load_pic_from_db
No comments:
Post a Comment