Anfang des Inhaltsbereichs

Vorgehensweisen OnInitialization Dokument im Navigationsbaum lokalisieren

Dieser Eventhandler wird nach OnRequest durchlaufen. Er dient dazu, Daten für das Layout zu beschaffen, aufzubereiten und eventuell Berechnungen durchzuführen.

In unserem Beispiel enthält der Eventhandler OnInitialization den folgenden Programmcode.

DATA: line_item TYPE bsbasket,

      item_detail TYPE bsbookdata,

      catid_tab TYPE catid_tab,

      psubtotal TYPE bscurr.

 

IF application->m_basket IS NOT INITIAL.

  LOOP AT application->m_basket INTO line_item.

    IF line_item-qty > 0.

      append line_item-catid to catid_tab.

    ELSE.

      DELETE application->m_basket.

    ENDIF.

  ENDLOOP.

 

  SORT catid_tab.

  DELETE ADJACENT DUPLICATES from catid_tab.

 

  CALL METHOD cl_book_shop=>get_items

      EXPORTING catid_tab = catid_tab

      IMPORTING bookdata = bookcat_tab.

 

* calculate total price

  LOOP AT bookcat_tab INTO item_detail.

    READ TABLE application->m_basket

      WITH KEY catid = item_detail-cata_id INTO line_item.

    psubtotal = psubtotal + ( item_detail-our_price * line_item-qty ).

  ENDLOOP.

  totalamount = psubtotal.

ENDIF.

Wenn der Einkaufskorb nicht leer ist, werden die Katalog-Ids der Einträge in der Tabelle catid_tab gespeichert. Anhand dieser Tabelle werden dann die benötigten Detaildaten zu den Büchern mittels der Methode cl_book_shop=>get_items ermittelt und in die interne Tabelle bookcat_tab geschrieben (vgl. Seitenattribute).

Abschließend wird der Gesamtpreis der Bücher im Korb berechnet, der dann im Layout mit ausgegeben wird.

Diese Grafik wird im zugehörigen Text erklärtNun zum letzten Eventhandler dieser Seite: OnInputProcessing

Ende des Inhaltsbereichs