1 |
2 |
3 |
4 |
5 |
6 | FORM LOESCHEN. |
7 | DATA: NUMBER_OF_IGN_ENTR TYPE I, KEY_SAFE type VIM_tabKEY, |
8 | L_IGN_ENTR_EX(1) TYPE C. |
9 | IF STATUS-ACTION NE AENDERN AND STATUS-ACTION NE HINZUFUEGEN. |
10 | MESSAGE I001(SV). |
11 | EXIT. |
12 | ENDIF. |
13 | IF STATUS-MODE EQ DETAIL_BILD. |
14 |
15 | IF STATUS-ACTION EQ HINZUFUEGEN AND NEUER EQ 'J'. |
16 | MOVE <INITIAL> TO <TABLE1>. |
17 | IF X_HEADER-BASTAB NE SPACE AND X_HEADER-TEXTTBEXST NE SPACE. |
18 | MOVE <TEXT_INITIAL> TO <TABLE1_TEXT>. |
19 | ENDIF. |
20 | MESSAGE S013(SV). |
21 | CLEAR <STATUS>-UPD_FLAG. |
22 | EXIT. |
23 | ENDIF. |
24 | MOVE <XMARK> TO DETA_MARK_SAFE. |
25 | IF X_HEADER-DELMDTFLAG NE SPACE. |
26 | PERFORM CHECK_IF_ENTRY_IS_TO_DISPLAY USING 'L' <VIM_xEXTRACT_KEY> |
27 | SPACE <VIM_BEGDATE>. |
28 | NUMBER_OF_IGN_ENTR = SY-SUBRC. |
29 | KEY_SAFE = <VIM_xEXTRACT_KEY>. |
30 | ENDIF. |
31 | IF X_HEADER-DELMDTFLAG EQ SPACE OR NUMBER_OF_IGN_ENTR LT 8. |
32 | READ TABLE EXTRACT INDEX NEXTLINE. |
33 | ELSE. |
34 | MOVE KEY_SAFE TO <VIM_xEXTRACT_KEY>. |
35 | READ TABLE TOTAL WITH KEY <VIM_xEXTRACT_KEY> BINARY SEARCH. |
36 | EXTRACT = TOTAL. |
37 | ENDIF. |
38 | ENDIF. |
39 | IF X_HEADER-FRM_BF_DEL NE SPACE. |
40 | PERFORM (X_HEADER-FRM_BF_DEL) IN PROGRAM (SY-REPID). |
41 | ENDIF. |
42 | IF VIM_CALLED_BY_CLUSTER NE SPACE. |
43 | PERFORM VIM_STORE_STATE_INFO. |
44 | CALL FUNCTION 'VIEWCLUSTER_DELETE_DEPENDENT' |
45 | EXPORTING |
46 | VIEW_NAME = X_HEADER-VIEWNAME |
47 | STATUS_MODE = STATUS-MODE |
48 | WORKAREA = EXTRACT |
49 | NO_DIALOG = VIM_EXTERNAL_MODE |
50 | IMPORTING |
51 | IGN_ENTRIES_EXIST = L_IGN_ENTR_EX. |
52 | IF L_IGN_ENTR_EX NE SPACE. |
53 | IGNORED_ENTRIES_EXIST = L_IGN_ENTR_EX. |
54 | ENDIF. |
55 | ENDIF. |
56 | IF STATUS-MODE EQ LIST_BILD. |
57 | PERFORM LISTE_LOESCHE. |
58 | ELSE. |
59 |
60 |
61 |
62 |
63 |
64 |
65 | IF <XMARK> NE UEBERGEHEN. |
66 | PERFORM DELETE_CHECK_KEYRANGE. |
67 | IF SY-SUBRC EQ 0. |
68 | PERFORM DETAIL_LOESCHE. |
69 | ELSE. |
70 | COUNTER = 0. |
71 | ENDIF. |
72 | ELSE. |
73 | COUNTER = 0. |
74 | ENDIF. |
75 | ENDIF. |
76 | IF VIM_SPECIAL_MODE EQ VIM_UPGRADE AND COUNTER EQ 0. |
77 | FUNCTION = OK_CODE = 'IGN '. |
78 | ENDIF. |
79 | IF X_HEADER-FRM_AF_DEL NE SPACE. |
80 | PERFORM (X_HEADER-FRM_AF_DEL) IN PROGRAM (SY-REPID). |
81 | ELSE. |
82 | IF IGNORED_ENTRIES_EXIST NE SPACE. |
83 | PERFORM MARK_IGNORED_ENTRIES CHANGING NUMBER_OF_IGN_ENTR. |
84 | CHECK VIM_SPECIAL_MODE NE VIM_UPGRADE. |
85 | IF NUMBER_OF_IGN_ENTR EQ 1. |
86 | MESSAGE S115(SV). "Eintrag konnte nicht gelöscht werden |
87 | ELSEIF NUMBER_OF_IGN_ENTR GT 1. |
88 | MESSAGE S116(SV) WITH NUMBER_OF_IGN_ENTR. |
89 | ENDIF. |
90 | ENDIF. |
91 | ENDIF. |
92 | ENDFORM. " LOESCHEN |