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