Anda di halaman 1dari 4

Clase: CL_GUI_FRONTEND_SERVICES Clase: CL_GUI_FRONTEND_SERVICES

Mtodo: FILE_OPEN_DIALOG Mtodo: FILE_OPEN_DIALOG


Versin activa Versin activa
Sistema locGEP Sistema remoGED
Orden: 11.02.2007 SAP Orden: 27.05.2010 SAP
Texto: Texto:
1 1
2 METHOD FILE_OPEN_DIALOG . 2 METHOD FILE_OPEN_DIALOG .
3 * ... 3 * ...
... ... 4 lneas no modificadas omitidas ... ... 4 lneas no modificadas omitidas
8 DATA: L_RESULT TYPE FILE_TABLE, 8 DATA: L_RESULT TYPE FILE_TABLE,
9 FIELDLEN TYPE I, 9 FIELDLEN TYPE I,
10 NO_ROWS TYPE I, 10 NO_ROWS TYPE I,
11 RET_VAL TYPE ABAP_BOOL. 11 RET_VAL TYPE ABAP_BOOL,
12 table_ref TYPE REF TO data,
13 orig_table_ref TYPE REF TO data.
14 FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
12 15
13 DATA : DL_PATH TYPE STRING, 16 DATA : DL_PATH TYPE STRING,
14 UPL_PATH TYPE STRING. 17 UPL_PATH TYPE STRING.
15 18
16 CLASS CL_GUI_CONTROL DEFINITION LOAD . 19 CLASS CL_GUI_CONTROL DEFINITION LOAD .
17 20
18 21 *-check if valid GUI is available
22 IF IS_VALID_HANDLE( ) NE 0 AND cl_gui_control=>www_active IS INITIAL.
23 RAISE NOT_SUPPORTED_BY_GUI.
24 ENDIF.
19 25
20 * Get the initial directory for upload if not set....................... 26 * Get the initial directory for upload if not set.......................
21 IF INITIAL_DIRECTORY = SPACE. 27 IF INITIAL_DIRECTORY = SPACE.
... ... 68 lneas no modificadas omitidas ... ... 68 lneas no modificadas omitidas
90 RET_VAL = 'X'. 96 RET_VAL = 'X'.
91 97
92 ELSE. 98 ELSE.
99
100 CALL FUNCTION 'DP_STRETCH_SIMPLE_TABLE'
101 EXPORTING
102 copy_lines = ' '
103 IMPORTING
104 stretched_data_ref = table_ref
105 TABLES
106 data = FILE_TABLE
107 EXCEPTIONS
108 DP_ERROR_MULTIPLE_COLS = 1
109 DP_ERROR_NOT_CHARLIKE = 2.
93 110
111 IF sy-subrc = 0.
112 ASSIGN table_ref->* TO <table>.
113 ELSE.
114 ASSIGN FILE_TABLE TO <table>.
115 ENDIF.
116
94 CALL FUNCTION 'DP_CONTROL_ASSIGN_TABLE' 117 CALL FUNCTION 'DP_CONTROL_ASSIGN_TABLE'
95 EXPORTING 118 EXPORTING
96 H_CNTL = HANDLE->H_CONTROL 119 H_CNTL = HANDLE->H_CONTROL
97 MEDIUM = CNDP_MEDIUM_R3TABLE 120 MEDIUM = CNDP_MEDIUM_R3TABLE
98 PROPERTYNAME = 'R3TABLE' 121 PROPERTYNAME = 'R3TABLE'
99 TABLES 122 TABLES
100 DATA = FILE_TABLE 123 DATA = <table>
101 EXCEPTIONS 124 EXCEPTIONS
102 DP_ERROR_CREATE = 1 125 DP_ERROR_CREATE = 1
103 DP_ERROR_SEND_DATA = 2 126 DP_ERROR_SEND_DATA = 2
... ... 77 lneas no modificadas omitidas ... ... 77 lneas no modificadas omitidas
181 PROPERTYNAME = 'R3TABLE' 204 PROPERTYNAME = 'R3TABLE'
182 MEDIUM = CNDP_MEDIUM_R3TABLE 205 MEDIUM = CNDP_MEDIUM_R3TABLE
183 TABLES 206 TABLES
184 DATA = FILE_TABLE 207 DATA = <table>
185 EXCEPTIONS 208 EXCEPTIONS
186 DP_ERROR_CREATE = 1 209 DP_ERROR_CREATE = 1
187 DP_ERROR_GET_PROPERTY = 2 210 DP_ERROR_GET_PROPERTY = 2
... ... 3 lneas no modificadas omitidas ... ... 3 lneas no modificadas omitidas
191 214
192 IF SY-SUBRC <> 0. 215 IF SY-SUBRC <> 0.
193 RAISE CNTL_ERROR. 216 RAISE CNTL_ERROR.
217 ENDIF.
218
219 GET REFERENCE OF FILE_TABLE[] INTO orig_table_ref.
220
221 IF orig_table_ref <> table_ref.
222 FILE_TABLE = <table>[].
194 ENDIF. 223 ENDIF.
195 224
196 ENDIF. 225 ENDIF.
... ... 9 lneas no modificadas omitidas ... ... 9 lneas no modificadas omitidas
206 *check if support bit is set............................................ 235 *check if support bit is set............................................
207 IF RET_VAL = 'X'. 236 IF RET_VAL = 'X'.
208 IF NOT WITH_ENCODING IS INITIAL. 237 IF NOT WITH_ENCODING IS INITIAL.
209 DATA: CODE_P TYPE ABAP_ENCODING.
210
211
212 DESCRIBE TABLE FILE_TABLE LINES NO_ROWS. 238 DESCRIBE TABLE FILE_TABLE LINES NO_ROWS.
213 IF SY-SUBRC = 0. 239 IF SY-SUBRC = 0.
214 READ TABLE FILE_TABLE INTO L_RESULT INDEX NO_ROWS. 240 READ TABLE FILE_TABLE INTO L_RESULT INDEX NO_ROWS.
215 ENDIF. 241 ENDIF.
216 242
217
218 CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_SAPLOGON_ENCODING
219 CHANGING
220 FILE_ENCODING = CODE_P
221 RC = RC
222 EXCEPTIONS
223 CNTL_ERROR = 1
224 ERROR_NO_GUI = 2
225 NOT_SUPPORTED_BY_GUI = 3
226 CANNOT_INITIALIZE_GLOBALSTATE = 4
227 others = 5.
228
229 IF SY-SUBRC <> 0.
230 CLEAR SY-SUBRC. 243 CLEAR SY-SUBRC.
231 FIELDLEN = STRLEN( L_RESULT ). 244 FIELDLEN = STRLEN( L_RESULT ).
232 IF NO_ROWS > 1. 245 IF NO_ROWS > 1.
233 IF FIELDLEN > 0. 246 IF FIELDLEN > 0.
234 FILE_ENCODING = L_RESULT(FIELDLEN). 247 FILE_ENCODING = L_RESULT(FIELDLEN).
235 CASE FILE_ENCODING. 248 CASE FILE_ENCODING.
236 WHEN 1. 249 WHEN 1.
237 250 IF CL_GUI_CONTROL=>WWW_ACTIVE IS NOT INITIAL.
238 DATA cp(4) TYPE C. 251 CALL FUNCTION 'ITS_GET_UP_DOWN_CP'
239 CALL 'CUR_LCL' id 'GUICP' field cp. 252 EXPORTING
240 FILE_ENCODING = cp. 253 DOWNLOAD = 'X'
241 254 CHANGING
255 FILE_ENCODING = FILE_ENCODING
256 EXCEPTIONS
257 OTHERS = 1.
258 ELSE.
259 DATA cp(4) TYPE C.
260 CALL 'CUR_LCL' id 'GUICP' field cp.
261 FILE_ENCODING = cp.
262 ENDIF.
242 WHEN 2. 263 WHEN 2.
243 CLEAR FILE_ENCODING . 264 IF CL_GUI_CONTROL=>WWW_ACTIVE IS NOT INITIAL.
244 DATA prcLoginLanguage TYPE T002-SPRAS. 265 CALL FUNCTION 'ITS_GET_UP_DOWN_CP'
245 CALL FUNCTION 'SCP_GET_LANGUAGE_ID'
246 IMPORTING
247 USER_LOGIN = prcLoginLanguage
248 EXCEPTIONS
249 INTERNAL_ERROR = 1
250 OTHERS = 2.
251 IF SY-SUBRC = 0.
252 DATA prc_cp TYPE CPCODEPAGE.
253 CALL FUNCTION 'NLS_GET_FRONTEND_CP'
254 EXPORTING 266 EXPORTING
255 LANGU = prcLoginLanguage 267 DOWNLOAD = ''
256 FETYPE = 'MS' 268 CHANGING
269 FILE_ENCODING = FILE_ENCODING
270 EXCEPTIONS
271 OTHERS = 1.
272 ELSE.
273 CLEAR FILE_ENCODING .
274 DATA prcLoginLanguage TYPE T002-SPRAS.
275 CALL FUNCTION 'SCP_GET_LANGUAGE_ID'
257 IMPORTING 276 IMPORTING
258 FRONTEND_CODEPAGE = prc_cp 277 USER_LOGIN = prcLoginLanguage
259 EXCEPTIONS 278 EXCEPTIONS
260 ILLEGAL_SYST_CODEPAGE = 1 279 INTERNAL_ERROR = 1
261 NO_FRONTEND_CP_FOUND = 2 280 OTHERS = 2.
262 INTERNAL_OR_DB_ERROR = 3
263 OTHERS = 4.
264 IF SY-SUBRC = 0. 281 IF SY-SUBRC = 0.
265 MOVE prc_cp TO FILE_ENCODING . 282 DATA prc_cp TYPE CPCODEPAGE.
283 CALL FUNCTION 'NLS_GET_FRONTEND_CP'
284 EXPORTING
285 LANGU = prcLoginLanguage
286 FETYPE = 'MS'
287 IMPORTING
288 FRONTEND_CODEPAGE = prc_cp
289 EXCEPTIONS
290 ILLEGAL_SYST_CODEPAGE = 1
291 NO_FRONTEND_CP_FOUND = 2
292 INTERNAL_OR_DB_ERROR = 3
293 OTHERS = 4.
294 IF SY-SUBRC = 0.
295 MOVE prc_cp TO FILE_ENCODING .
296 ENDIF.
266 ENDIF. 297 ENDIF.
267 ENDIF. 298 ENDIF.
268 ENDCASE. 299 ENDCASE.
269 *end........................................................ 300 *end........................................................
270 ENDIF. 301 ENDIF.
271 ENDIF. 302 ENDIF.
272 ELSE.
273 MOVE CODE_P TO FILE_ENCODING.
274 ENDIF.
275 DELETE FILE_TABLE INDEX NO_ROWS. 303 DELETE FILE_TABLE INDEX NO_ROWS.
276 ENDIF. 304 ENDIF.
277 ENDIF. 305 ENDIF.
278 USER_ACTION = ACTION_OK. 306 USER_ACTION = ACTION_OK.
307 if FILE_ENCODING = 0. clear FILE_ENCODING. endif.
279 ENDIF. 308 ENDIF.
280 309
281 310
282 ENDMETHOD. " 311 ENDMETHOD. "

Anda mungkin juga menyukai