1 *&---------------------------------------------------------------------*
2 *& Report ZTEST4
3 *&
4 *&---------------------------------------------------------------------*
5 *&
6 *&
7 *&---------------------------------------------------------------------*
8 REPORT ZTEST4.
9
10
11 DATA :
12 OK_CODE LIKE SY-UCOMM,
13 SAVE_OK LIKE SY-UCOMM.
14
15 DATA :
16 URL(256) TYPE C,
17 INIT(1) TYPE C.
18
19 " cl_gui_custom_container container for hosting splitter
20 DATA CL_GUI_CUSTOM_CONTAINER_OBJ TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
21 " cl_gui_splitter_container splitter container
22 DATA CL_GUI_SPLITTER_CONTAINER_OBJ TYPE REF TO CL_GUI_SPLITTER_CONTAINER.
23 " cl_gui_container objects for splitter
24 DATA CL_GUI_CONTAINER_1 TYPE REF TO CL_GUI_CONTAINER.
25 DATA CL_GUI_CONTAINER_2 TYPE REF TO CL_GUI_CONTAINER.
26 DATA CL_GUI_CONTAINER_3 TYPE REF TO CL_GUI_CONTAINER.
27 " cl_gui_picture objects
28 DATA CL_GUI_PICTURE_1 TYPE REF TO CL_GUI_PICTURE.
29 DATA CL_GUI_PICTURE_2 TYPE REF TO CL_GUI_PICTURE.
30 DATA CL_GUI_PICTURE_3 TYPE REF TO CL_GUI_PICTURE.
31
32 START-OF-SELECTION.
33 CALL SCREEN 100.
34
35 END-OF-SELECTION.
36
37
38 MODULE STATUS_0100 OUTPUT.
39
40 SET TITLEBAR 'TITLE'.
41 SET PF-STATUS 'STATUS'.
42
43 IF INIT IS INITIAL.
44
45 CREATE OBJECT CL_GUI_CUSTOM_CONTAINER_OBJ EXPORTING CONTAINER_NAME = 'CUSTOM'.
46
47 " Create SPLITTER and SPLITTER panes
48 CREATE OBJECT CL_GUI_SPLITTER_CONTAINER_OBJ
49 EXPORTING
50 PARENT = CL_GUI_CUSTOM_CONTAINER_OBJ
51 ROWS = 1
52 COLUMNS = 3.
53
54 CALL METHOD CL_GUI_SPLITTER_CONTAINER_OBJ->GET_CONTAINER
55 EXPORTING
56 ROW = 1
57 COLUMN = 1
58 RECEIVING
59 CONTAINER = CL_GUI_CONTAINER_1.
60
61 CALL METHOD CL_GUI_SPLITTER_CONTAINER_OBJ->GET_CONTAINER
62 EXPORTING
63 ROW = 1
64 COLUMN = 2
65 RECEIVING
66 CONTAINER = CL_GUI_CONTAINER_2.
67
68 CALL METHOD CL_GUI_SPLITTER_CONTAINER_OBJ->GET_CONTAINER
69 EXPORTING
70 ROW = 1
71 COLUMN = 3
72 RECEIVING
73 CONTAINER = CL_GUI_CONTAINER_3.
74
75 DATA REPID TYPE SY-REPID.
76 DATA DYNNR TYPE SY-DYNNR.
77 REPID = SY-REPID.
78 DYNNR = SY-DYNNR.
79
80 CREATE OBJECT CL_GUI_PICTURE_1 EXPORTING PARENT = CL_GUI_CONTAINER_1.
81 CREATE OBJECT CL_GUI_PICTURE_2 EXPORTING PARENT = CL_GUI_CONTAINER_2.
82 CREATE OBJECT CL_GUI_PICTURE_3 EXPORTING PARENT = CL_GUI_CONTAINER_3.
83
84 " Request an URL from the data provider by exporting the pic_data.
85 CLEAR URL.
86 PERFORM LOAD_PIC_FROM_DB CHANGING URL.
87
88 " load picture
89 CALL METHOD CL_GUI_PICTURE_1->LOAD_PICTURE_FROM_URL
90 EXPORTING
91 URL = URL.
92
93 CLEAR URL.
94 URL = 'file://C:\sap-logo.gif'.
95 CALL METHOD CL_GUI_PICTURE_2->LOAD_PICTURE_FROM_URL
96 EXPORTING
97 URL = URL.
98
99 CLEAR URL.
100 URL = 'C:\TEST\T1\1.JPG'.
101 CALL METHOD CL_GUI_PICTURE_3->LOAD_PICTURE_FROM_URL
102 EXPORTING
103 URL = URL.
104
105 INIT = 'X'.
106
107 CALL METHOD CL_GUI_CFW=>FLUSH
108 EXCEPTIONS
109 CNTL_SYSTEM_ERROR = 1
110 CNTL_ERROR = 2.
111
112 ENDIF.
113
114 ENDMODULE. " STATUS_0100 OUTPUT
115 FORM LOAD_PIC_FROM_DB CHANGING URL.
116
117 DATA QUERY_TABLE LIKE W3QUERY OCCURS 1 WITH HEADER LINE.
118 DATA HTML_TABLE LIKE W3HTML OCCURS 1.
119 DATA RETURN_CODE LIKE W3PARAM-RET_CODE.
120 DATA CONTENT_TYPE LIKE W3PARAM-CONT_TYPE.
121 DATA CONTENT_LENGTH LIKE W3PARAM-CONT_LEN.
122 DATA PIC_DATA LIKE W3MIME OCCURS 0.
123 DATA PIC_SIZE TYPE I.
124
125 REFRESH QUERY_TABLE.
126 QUERY_TABLE-NAME = '_OBJECT_ID'.
127 QUERY_TABLE-VALUE = 'ENJOYSAP_LOGO'.
128 APPEND QUERY_TABLE.
129
130 CALL FUNCTION 'WWW_GET_MIME_OBJECT'
131 TABLES
132 QUERY_STRING = QUERY_TABLE
133 HTML = HTML_TABLE
134 MIME = PIC_DATA
135 CHANGING
136 RETURN_CODE = RETURN_CODE
137 CONTENT_TYPE = CONTENT_TYPE
138 CONTENT_LENGTH = CONTENT_LENGTH
139 EXCEPTIONS
140 OBJECT_NOT_FOUND = 1
141 PARAMETER_NOT_FOUND = 2
142 OTHERS = 3.
143 IF SY-SUBRC = 0.
144 PIC_SIZE = CONTENT_LENGTH.
145 ENDIF.
146
147 CALL FUNCTION 'DP_CREATE_URL'
148 EXPORTING
149 TYPE = 'image'
150 SUBTYPE = CNDP_SAP_TAB_UNKNOWN
151 SIZE = PIC_SIZE
152 LIFETIME = CNDP_LIFETIME_TRANSACTION
153 TABLES
154 DATA = PIC_DATA
155 CHANGING
156 URL = URL
157 EXCEPTIONS
158 OTHERS = 1.
159
160 ENDFORM. " load_pic_from_db
161 MODULE USER_COMMAND_0100 INPUT.
162
163 SAVE_OK = OK_CODE.
164 CLEAR OK_CODE.
165
166 CASE SAVE_OK.
167 WHEN 'EXIT' OR 'CNCL' OR 'BACK'.
168 LEAVE PROGRAM.
169 WHEN OTHERS.
170 ENDCASE.
171
172 ENDMODULE. " USER_COMMAND_0100 INPUT