Funktionsbaustein POPUP TO CONFIRM
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Der Funktionsbaustein POPUP_TO_CONFIRM erzeugt sehr unkompliziert eine Bestätigungsabfrage für den User als Popup-Fenster. Dieser Funktionsbaustein wird in der Praxis häufig verwendet.
Man kann u. a. den Titel des Fensters, den Text und den Text der Bestätigungsbuttons frei wählen.
Die Auswahl vom User wird über den Parameter "ANSWER" zurückgegeben, in dem dann "1" (erster Button geklickt), "2" (zweiter Button geklickt) oder "A" (Abbrechen-Button geklickt) steht.
Muster
Data: lv_answer type c.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = 'Abfrage'
" DIAGNOSE_OBJECT = ' '
TEXT_QUESTION =
TEXT_BUTTON_1 = 'Ja'
" ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = 'Nein'
" ICON_BUTTON_2 = ' '
" DEFAULT_BUTTON = '1'
" DISPLAY_CANCEL_BUTTON = 'X'
" USERDEFINED_F1_HELP = ' '
" START_COLUMN = 25
" START_ROW = 6
" POPUP_TYPE =
" IV_QUICKINFO_BUTTON_1 = ' '
" IV_QUICKINFO_BUTTON_2 = ' '
IMPORTING
ANSWER = lv_answer "Rückgabewerte: '1', '2', 'A'
" TABLES
" PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
Projektbeispiel
DATA: lv_counter TYPE i,
lt_parameter TYPE STANDARD TABLE OF spar.
* Verdichte Datensätze auf markierte Datensätze
DATA(lt_itab) = gt_itab.
DELETE lt_itab WHERE selkz = space.
IF lt_itab IS INITIAL.
MESSAGE i531(0u) WITH 'Es wurden keine Datensätze zum Löschen markiert'.
RETURN.
ENDIF.
* Anzahl relevante Datensätze
lv_counter = lines( lt_itab ).
* Parametertabelle füllen
lt_parameter = VALUE #( ( param = 'LV_COUNTER'
value = lv_counter ) ).
DATA: lv_answer TYPE c.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Löschabfrage'
text_question = 'Sollen &LV_COUNTER& Datensätze wirklich gelöscht werden?'
text_button_1 = 'Ja'
" ICON_BUTTON_1 = ' '
text_button_2 = 'Nein'
" ICON_BUTTON_2 = ' '
default_button = '2'
IMPORTING
answer = lv_answer "Rückgabewerte: '1', '2', 'A'
TABLES
parameter = lt_parameter
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i531(0u) WITH 'Fehler beim Funktionsbaustein POPUP_TO_CONFIRM'.
RETURN.
ENDIF.
IF lv_answer = '2' OR
lv_answer = 'A'.
RETURN.
ENDIF.
* Löschen der Einträge
LOOP AT ct_itab ASSIGNING FIELD-SYMBOL(<fs_itab>) where selkz = abap_true.
DELETE FROM zmm_inbship WHERE tknum = <fs_itab>-tknum.
DELETE ct_itab.
ENDLOOP.
commit work.
* Bestätigung der Löschung
MESSAGE i532(ou) WITH lv_counter
'Datensätze wurden gelöscht'.
Web-Links
Literatur
- Function Modules in ABAP: A Quick Reference Guide, von Tanmaya Gupta, S. (EN)
- Common SAP R/3 Functions Manual, von William Lawlor, S. (EN)