1
*---------------------------------------------------------------------*
2
* FORM BEENDEN *
3
4
* ........ *
5
6
FORM beenden.
7
DATA: line1(30) TYPE c,
8
handle TYPE ad_handle,
9
adrnum TYPE ad_addrnum.
10
11
CASE function.
12
WHEN 'ANZG'.
13
line1 = svim_text_001.
14
WHEN 'ATAB'.
15
line1 = svim_text_008.
16
WHEN 'ENDE'.
17
line1 = svim_text_003.
18
ENDCASE.
19
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
20
EXPORTING
21
titel = line1
22
textline1 = svim_text_018 "Daten wurden verändert.
23
textline2 = svim_text_019 "Änderungen vorher sichern ?
24
IMPORTING
25
answer = answer.
26
CASE answer.
27
WHEN 'J'.
28
sy-subrc = 0.
29
WHEN 'N'.
30
CLEAR <status>-upd_flag.
31
IF maint_mode EQ transportieren.
32
<status>-keytbinvld = 'X'.
33
ELSEIF maint_mode EQ aendern. "AND x_header-adrnbrflag EQ 'N'.
34
* reset unsaved addresses UF557286/2000b
35
LOOP AT vim_addresses_to_save.
36
IF vim_addresses_to_save-addrnumber CP '@NEW*'.
37
CLEAR adrnum.
38
handle = vim_addresses_to_save-handle.
39
ELSE.
40
CLEAR handle.
41
adrnum = vim_addresses_to_save-addrnumber.
42
ENDIF.
43
CALL FUNCTION 'ADDR_SINGLE_RESET'
44
45
address_number = adrnum
46
address_handle = handle
47
EXCEPTIONS
48
OTHERS = 1.
49
IF sy-subrc <> 0.
50
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
51
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
52
53
ENDLOOP.
54
REFRESH vim_addresses_to_save.
55
ENDIF. "UF557286/2000e
56
sy-subrc = 8.
57
WHEN 'A'.
58
sy-subrc = 12.
59
60
ENDFORM.