1 |
2 |
3 |
4 |
5 |
6 | MODULE detail_init OUTPUT. |
7 | IF vim_called_by_cluster <> space. "SW CTRL .. |
8 | PERFORM vim_vcldocking_control. |
9 | ENDIF. ".. SW CTRL |
10 | PERFORM vim_add_img_notices_pbo USING x_header-detail. |
11 | PERFORM detail_init. |
12 | IF ( replace_mode NE space AND |
13 | neuer NE 'X' ) "no error in CHECK_KEY for timedep. objects |
14 | OR vim_pr_activating <> space. "UF profile |
15 | SUPPRESS DIALOG. |
16 | ENDIF. |
17 | PERFORM vim_modify_detail_screen. |
18 | ENDMODULE. "detail_init OUTPUT |
19 | |
20 |
21 |
22 |
23 |
24 |
25 | MODULE vim_modif_detail OUTPUT. |
26 | PERFORM vim_modify_detail_screen. |
27 | ENDMODULE. "vim_modif_detail OUTPUT |
28 | |
29 |
30 |
31 |
32 |
33 |
34 | MODULE liste_show_liste OUTPUT. |
35 |
36 | IF vim_tabctrl_active NE space. |
37 | IF <vim_tctrl>-current_line GT maxlines AND "no more entries |
38 | <xact> NE leer. "in EXTRACT and no new entry |
39 | EXIT FROM STEP-LOOP. |
40 | ENDIF. |
41 | ENDIF. |
42 |
43 | looplines = sy-loopc. |
44 | IF l GT looplines. |
45 | counter = ( l - firstline ) div looplines + 1. |
46 | DO counter TIMES. |
47 | firstline = firstline + looplines - 1. |
48 | ENDDO. |
49 | MOVE firstline TO <status>-firstline. |
50 | <status>-cur_line = l = l - firstline + 1. |
51 | SET CURSOR FIELD f LINE l OFFSET o. |
52 | ENDIF. |
53 | IF vim_special_mode NE vim_upgrade AND |
54 | status-action EQ hinzufuegen AND maxlines EQ 0 AND sy-stepl EQ 1. |
55 | DESCRIBE TABLE extract. |
56 | IF sy-tfill GT looplines. |
57 | sy-tfill = looplines + 1. |
58 | LOOP AT extract FROM sy-tfill. |
59 | DELETE extract. |
60 | ENDLOOP. |
61 | nbr_of_added_dummy_entries = looplines. |
62 | ENDIF. |
63 | ENDIF. |
64 |
65 | CLEAR vim_set_from_bc_pbo. |
66 | IF replace_mode = space AND status-action = aendern |
67 | AND vim_bc_chng_allowed = space. "fix field changeability forced |
68 | READ TABLE vim_bc_entry_list INTO vim_bc_entry_list_wa |
69 | WITH TABLE KEY viewname = x_header-viewname |
70 | keys = <vim_xextract_key>. |
71 | IF sy-subrc = 0. |
72 | vim_set_from_bc_pbo = 'X'. |
73 | ENDIF. |
74 | ENDIF. |
75 | IF replace_mode NE space OR vim_special_mode EQ vim_delete."aro |
76 | IF sy-stepl GT 1. |
77 | EXIT FROM STEP-LOOP. |
78 | ELSE. |
79 | MOVE <vim_xtotal> TO <table2_x>. |
80 | ENDIF. |
81 | ENDIF. "aro |
82 | index = exind = nextline. |
83 | IF status-action EQ kopieren AND status-type EQ einstufig. |
84 | READ TABLE vim_copied_indices WITH KEY level = vim_copy_call_level |
85 | ex_ix = nextline. |
86 | IF sy-subrc EQ 0. "entry already copied |
87 | READ TABLE total INDEX vim_copied_indices-ix. |
88 | extract = total. neuer = 'N'. |
89 | ELSE. |
90 | neuer = 'J'. |
91 | ENDIF. |
92 | ENDIF. |
93 | PERFORM move_extract_to_view_wa. |
94 | IF vim_special_mode EQ vim_delimit. |
95 | MOVE vim_sval_tab-value TO <vim_new_begdate>. |
96 | ENDIF. |
97 | IF status-action EQ hinzufuegen AND status-type EQ einstufig AND |
98 | neuer NE 'J' AND <xact> EQ leer. |
99 | neuer = 'J'. |
100 | ENDIF. |
101 | IF <xmark> EQ markiert. |
102 | MOVE 'X' TO vim_marked. |
103 | ENDIF. |
104 | LOOP AT SCREEN. |
105 | CLEAR vim_modify_screen. |
106 | SPLIT screen-name AT '-' INTO vim_object vim_objfield. |
107 | IF ( status-action EQ anzeigen OR status-action EQ transportieren OR |
108 | status-delete EQ geloescht ) AND screen-name NE 'VIM_MARKED'. |
109 | screen-input = '0'. vim_modify_screen = 'X'. |
110 | ELSE. |
111 | IF screen-group1 EQ 'KEY'. |
112 | IF vim_tabctrl_active NE space AND screen-input EQ '0'. |
113 | READ TABLE <vim_tctrl>-cols INTO vim_tc_cols |
114 | WITH KEY |
115 | screen-name = screen-name |
116 | TRANSPORTING screen-required. |
117 | IF sy-subrc EQ 0 AND |
118 | screen-required NE vim_tc_cols-screen-required. |
119 | screen-required = vim_tc_cols-screen-required. |
120 | vim_modify_screen = 'X'. |
121 | ENDIF. |
122 | ENDIF. |
123 | IF screen-required NE 0 AND screen-input NE '0'. |
124 | screen-input = '0'. vim_modify_screen = 'X'. |
125 | ENDIF. |
126 | IF vim_single_entry_function EQ 'INS'. |
127 | screen-request = 1. vim_modify_screen = 'X'. |
128 | ENDIF. |
129 |
130 | IF status-action = kopieren. |
131 | screen-request = 1. vim_modify_screen = 'X'. |
132 | ENDIF. |
133 |
134 | ENDIF. |
135 |
136 | IF neuer EQ 'J'. |
137 | IF vim_special_mode NE vim_delimit AND |
138 | screen-group1 EQ 'KEY' AND |
139 | ( vim_single_entry_function NE 'INS' OR |
140 | vim_single_entry_ins_key_input NE space ) AND |
141 | ( x_header-existency NE 'M' OR |
142 | screen-name EQ vim_enddate_name ). |
143 | ADD 1 TO pos. |
144 | IF pos EQ 1. |
145 | SET CURSOR FIELD screen-name LINE sy-stepl. |
146 | ENDIF. |
147 | screen-input = '1'. vim_modify_screen = 'X'. |
148 | ENDIF. |
149 | IF screen-name EQ 'VIM_MARKED'. |
150 | screen-input = '0'. vim_modify_screen = 'X'. |
151 | ELSE. |
152 | IF <xact> = profil_hinzufuegen. |
153 | READ TABLE vim_pr_fields_wa-fields WITH TABLE KEY |
154 | fieldname = vim_objfield TRANSPORTING NO FIELDS. |
155 | IF sy-subrc = 0. |
156 | screen-request = 1. vim_modify_screen = 'X'. |
157 | ENDIF. |
158 | ENDIF. |
159 | IF vim_special_mode EQ vim_upgrade AND function NE 'DELE'. |
160 | IF <status>-prof_found = vim_pr_into_view "UFprofiles begin |
161 | AND status-action = hinzufuegen AND screen-group1 = 'KEY'. |
162 | PERFORM set_profile_key_attributes USING vim_objfield |
163 | CHANGING screen-input |
164 | vim_modify_screen. |
165 | ENDIF. "UFprofiles end |
166 | screen-request = 1. vim_modify_screen = 'X'. |
167 | ENDIF. |
168 | ENDIF. |
169 | ELSE. |
170 | IF x_header-delmdtflag NE space AND |
171 | x_header-existency EQ 'U' AND |
172 | screen-name EQ vim_begdate_name. |
173 | screen-input = '0'. vim_modify_screen = 'X'. |
174 | ENDIF. |
175 | IF f EQ space AND screen-name NE 'VIM_MARKED' AND |
176 | screen-input EQ '1'. |
177 | SET CURSOR FIELD screen-name LINE l. |
178 | f = screen-name. |
179 | ENDIF. |
180 | IF replace_mode NE space. |
181 | CASE vim_special_mode. |
182 | WHEN vim_replace. |
183 | IF screen-name EQ sel_field_for_replace_l. |
184 | screen-request = 1. vim_modify_screen = 'X'. |
185 | ENDIF. |
186 | WHEN vim_upgrade. |
187 | IF NOT function IN exted_functions AND |
188 | screen-name NE 'VIM_MARKED'. |
189 | screen-request = 1. vim_modify_screen = 'X'. |
190 | ENDIF. |
191 | screen-input = '1'. vim_modify_screen = 'X'. |
192 | ENDCASE. |
193 | ELSE. |
194 | IF vim_special_mode EQ vim_delete. |
195 | screen-input = '0'. vim_modify_screen = 'X'. |
196 | ENDIF. |
197 | IF vim_set_from_bc_pbo <> space AND screen-group1 <> 'KEY'. |
198 |
199 | PERFORM vim_bc_logs_use USING vim_objfield |
200 | vim_bc_entry_list_wa |
201 | CHANGING screen |
202 | vim_modify_screen. |
203 | ENDIF. |
204 | ENDIF. "replace_mode <> space |
205 | ENDIF. "neuer = 'J' |
206 | ENDIF. "update mode |
207 | IF <xmark> EQ markiert AND screen-name NE 'VIM_MARKED'. |
208 | screen-intensified = 1. vim_modify_screen = 'X'. |
209 | ENDIF. |
210 | IF vim_special_mode EQ vim_delimit AND |
211 | screen-name EQ vim_begdate_name. |
212 | screen-request = 1. vim_modify_screen = 'X'. |
213 | ENDIF. |
214 |
215 |
216 | IF vim_objfield <> space AND vim_object = x_header-maintview. |
217 | LOOP AT x_namtab WHERE viewfield = vim_objfield AND |
218 | ( texttabfld = space OR keyflag = space ). |
219 | IF x_namtab-readonly = vim_hidden. |
220 | screen-active = '0'. vim_modify_screen = 'X'. |
221 | ELSEIF x_namtab-readonly = rdonly. |
222 | screen-input = '0'. vim_modify_screen = 'X'. |
223 | ENDIF. |
224 | EXIT. |
225 | ENDLOOP. |
226 | ENDIF. |
227 |
228 | IF vim_modify_screen = 'X'. |
229 | MODIFY SCREEN. |
230 | ENDIF. |
231 | ENDLOOP. |
232 | IF status-action EQ kopieren. |
233 | neuer = 'N'. |
234 | ENDIF. |
235 | ENDMODULE. "liste_show_liste OUTPUT |
236 | |
237 |
238 |
239 |
240 |
241 |
242 | MODULE liste_initialisieren OUTPUT. |
243 | IF vim_called_by_cluster <> space. "SW CTRL .. |
244 | PERFORM vim_vcldocking_control. |
245 | ENDIF. ".. SW CTRL |
246 | status-mode = list_bild. |
247 | title-mode = list_bild. |
248 | firstline = nextline. |
249 | aktuell = firstline. |
250 | vim_act_dynp_view = x_header-viewname. |
251 | PERFORM vim_add_img_notices_pbo USING x_header-liste. |
252 | IF vim_special_mode EQ vim_direct_upgrade. |
253 | SUPPRESS DIALOG. |
254 | ok_code = function = 'CMPR'. |
255 | EXIT. |
256 | ENDIF. |
257 | CLEAR <status>-mark_only. "ufdetail |
258 | IF replace_mode NE space OR vim_special_mode EQ vim_delete. |
259 | PERFORM set_title USING title <name>. |
260 | IF vim_special_mode NE vim_delete. SUPPRESS DIALOG. ENDIF. |
261 | PERFORM set_pf_status USING 'REPLACE'. |
262 | MOVE <table1> TO <vim_total_struc>. |
263 |
264 | IF x_header-bastab NE space AND x_header-texttbexst NE space. |
265 | MOVE <table1_text> TO <vim_tot_txt_struc>. |
266 | ENDIF. |
267 |
268 | IF vim_tabctrl_active NE space. |
269 | IF status-action EQ hinzufuegen. |
270 | <vim_tctrl>-lines = maxlines + nbr_of_added_dummy_entries. |
271 | ELSE. |
272 | <vim_tctrl>-lines = maxlines. |
273 | ENDIF. |
274 | <vim_tctrl>-top_line = firstline. |
275 | LOOP AT <vim_tctrl>-cols INTO vim_tc_cols |
276 | WHERE screen-active EQ 0. |
277 | vim_tc_cols-vislength = 0. |
278 | MODIFY <vim_tctrl>-cols FROM vim_tc_cols. |
279 | ENDLOOP. |
280 | ENDIF. |
281 | EXIT. |
282 | ENDIF. |
283 | IF mark_extract GT 0. |
284 | status-mark = markiert. |
285 | ELSE. |
286 | status-mark = nicht_markiert. |
287 | ENDIF. |
288 | IF maxlines EQ 0. |
289 | IF status-action NE hinzufuegen |
290 | OR status-type NE einstufig. |
291 | PERFORM fill_extract. |
292 | ELSE. "aro |
293 | title-data = auswahldaten. "aro |
294 | ENDIF. "aro |
295 | status-delete = nicht_geloescht. |
296 | PERFORM vim_send_sv005_or_sv766 USING '766' |
297 | 'RESET'. |
298 | ELSEIF maxlines = 1 AND function <> 'UEBE'. |
299 |
300 |
301 | PERFORM vim_maintain_single_set. "UFint2329966/2000 |
302 |
303 | ELSE. |
304 | PERFORM vim_send_sv005_or_sv766 USING '766' |
305 | 'RESET'. |
306 | IF status-action EQ hinzufuegen. |
307 | pos = 1. |
308 | LOOP AT extract. |
309 | CHECK <xact> NE leer. |
310 | IF sy-tabix NE pos. |
311 | DELETE extract. |
312 | INSERT extract INDEX pos. |
313 | ENDIF. |
314 | ADD 1 TO pos. |
315 | ENDLOOP. |
316 | ENDIF. |
317 |
318 | ENDIF. |
319 | maximal = maxlines. |
320 |
321 | IF vim_tabctrl_active NE space. |
322 | IF status-action EQ hinzufuegen. |
323 | <vim_tctrl>-lines = maxlines + nbr_of_added_dummy_entries. |
324 | ELSE. |
325 | <vim_tctrl>-lines = maxlines. |
326 | ENDIF. |
327 | <vim_tctrl>-top_line = firstline. |
328 | LOOP AT <vim_tctrl>-cols INTO vim_tc_cols |
329 |
330 |
331 | WHERE screen-active EQ 0. |
332 | vim_tc_cols-vislength = 0. |
333 | MODIFY <vim_tctrl>-cols FROM vim_tc_cols. |
334 | ENDLOOP. |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 | ELSE. "Subviews .. |
343 | LOOP AT SCREEN. |
344 | SPLIT screen-name AT '-' INTO vim_object vim_objfield. |
345 | IF vim_objfield <> space AND vim_object = x_header-maintview. |
346 | LOOP AT x_namtab WHERE viewfield = vim_objfield AND |
347 | ( texttabfld = space OR keyflag = space ). |
348 | IF x_namtab-readonly = vim_hidden. |
349 | screen-active = '0'. MODIFY SCREEN. |
350 | ELSEIF x_namtab-readonly = rdonly. |
351 | screen-input = '0'. MODIFY SCREEN. |
352 | ENDIF. |
353 | EXIT. |
354 | ENDLOOP. |
355 | ENDIF. |
356 | ENDLOOP. ".. Subviews |
357 | ENDIF. |
358 |
359 | PERFORM set_position_info USING firstline maxlines. |
360 | pos = maxlines - firstline + 1. |
361 | IF l GT pos. |
362 | l = 1. |
363 | ENDIF. |
364 | pos = 0. "aro |
365 | SET CURSOR FIELD f LINE l OFFSET o. |
366 | PERFORM set_pf_status USING status. |
367 | PERFORM set_title USING title <name>. |
368 |
369 | IF maxlines EQ 0. |
370 | LOOP AT SCREEN. |
371 | CHECK screen-name EQ 'VIM_POSI_PUSH'. |
372 | screen-input = 0. |
373 | MODIFY SCREEN. |
374 | EXIT. |
375 | ENDLOOP. |
376 | ENDIF. |
377 |
378 | IF status-action EQ kopieren OR vim_single_entry_function NE space. |
379 | LOOP AT SCREEN. |
380 | CHECK screen-name EQ 'VIM_POSI_PUSH'. |
381 | screen-active = 0. |
382 | MODIFY SCREEN. |
383 | EXIT. |
384 | ENDLOOP. |
385 | ENDIF. |
386 | ENDMODULE. "liste_initialisieren OUTPUT |
387 | |
388 |
389 |
390 |
391 |
392 |
393 | MODULE fill_substflds OUTPUT. |
394 | CHECK x_header-subsetflag NE space. |
395 | PERFORM fill_subsetfields. |
396 | ENDMODULE. "fill_substflds OUTPUT |
397 | |
398 |
399 |
400 |
401 |
402 |
403 | MODULE liste_deactivate OUTPUT. |
404 | CHECK <xact> NE leer AND status-action NE kopieren. |
405 | LOOP AT SCREEN. |
406 | CHECK screen-group2 EQ 'EZN' . |
407 | IF x_header-ptfrkyexst EQ space. |
408 | MOVE screen-name TO f. |
409 | SHIFT f UP TO '-'. SHIFT f. |
410 | LOOP AT x_namtab WHERE keyflag EQ space "ignore keyfields |
411 | AND viewfield EQ f. |
412 | MOVE 'X' TO x_namtab-prtfrkyfld. |
413 | MOVE 'X' TO x_header-ptfrkyexst. |
414 | MODIFY x_namtab. |
415 | ENDLOOP. |
416 | ENDIF. |
417 | CHECK sy-stepl NE 1 AND |
418 | <vim_f1_beforex> EQ <vim_mkey_beforex> AND |
419 | ( vim_mkey_after_exists EQ space OR |
420 | <vim_f1_afterx> EQ <vim_mkey_afterx> ). |
421 |
422 |
423 |
424 | screen-active = 0. |
425 | MODIFY SCREEN. |
426 | ENDLOOP. |
427 | MODIFY x_header INDEX 1. |
428 | IF vim_no_mainkey_exists EQ vim_no_mkey_not_procsd OR |
429 | <vim_f1_beforex> NE <vim_mkey_beforex> OR |
430 | ( vim_mkey_after_exists NE space AND |
431 | <vim_f1_afterx> NE <vim_mkey_afterx> ). |
432 |
433 |
434 |
435 | <vim_h_mkey>(x_header-keylen) = <f1_x>. |
436 |
437 | TRANSLATE vim_no_mainkey_exists USING vim_no_mkey_procsd_patt. |
438 | ENDIF. |
439 | ENDMODULE. "liste_deactivate. |
440 | |
441 |
442 |
443 |
444 |
445 |
446 | MODULE vim_suppress_liste OUTPUT. |
447 | CHECK vim_special_mode <> vim_direct_upgrade AND |
448 | function NE space AND function NE 'ANZG' AND |
449 | function NE 'AEND' AND "function NE 'ABR ' AND |
450 | NOT ( vim_called_by_cluster NE space AND |
451 | ( function CP 'DET*' OR function CP '%_*' ) ). |
452 | SUPPRESS DIALOG. |
453 | ok_code = back. |
454 | ENDMODULE. "vim_suppres_liste |