!--a11y-->
Das Layout für die Seite
basket.htm , das Sie über die Registerkarte Layout festlegen, sieht folgendermaßen aus:|
<%@ page language="abap" %> <%@ include file="head.htm" %> <h3>Shopping Basket</h3> <% IF application->m_basket IS INITIAL.%> <p> You have no items in your shopping basket. <% ELSE.%> <form action=" <%= runtime->page_url %>"><table> <tr> <td> <b>Title</b> </td> <% data: line_item type bsbasket, item_detail type bsbookdata, count type i. loop at application->m_basket into line_item. add 1 to count. read table bookcat_tab with key cata_id = line_item-catid into item_detail. %> <tr> <td> <input type=hidden value="<%= line_item-catid %>"> <%= item_detail-title %> </td> <td> <%= item_detail-our_price %> <%= item_detail-book_curr %> </td> <td> <input type="text" value="<%= line_item-qty %>"> </td> <td> <input type="checkbox" value="X" > </td> </tr> <% endloop. %> <tr> <td align="right"><b>Total Price</b></td> <td> <%=totalamount%> <%= item_detail-book_curr %> </td><td><input type=submit name="onInputProcessing(update)" value="Update Basket Contents"> </td> <td><input type=submit </tr> </table> </form> <% ENDIF.%> </body> </html> |
Über das obige Coding kann man auf die Struktur
application->m_basket zugreifen, die den Einkaufskorb darstellt. m_basket ist das einzige Attribut der Applikationsklasse CL_BSP_TUTORIAL.Ist diese Struktur leer, so wird der Satz
You have no items in your shopping basket. ausgegeben.Enthält der Einkaufskorb Einträge, so wird zunächst durch den Aufruf wieder auf diese Seite verzweigt. Dies führt dazu, daß die Eventhandler OnRequest und OnInitialization vor dem Layout durchlaufen werden (dieser Ablauf ist in der Referenzdokumentation im Abschnitt
Eventhandler detailliert beschrieben). Beispielsweise der Gesamtpreis der Artikel im Korb wird in OnInitialization berechnet.
Anschließend werden die Einträge in der Einkaufskorb-Struktur zeilenweise in die Variable
line_item type bsbasket eingelesen. Dann werden die Detaildaten der Artikel aus der internen Tabelle bookcat_tab ausgelesen und mittels der Valriable item_detail type bsbookdata als HTML-Tabelle ausgegeben.Für jeden Artikel in dem Korb gibt es ein HTML-Input-Feld
<input type="text" size="4" name="basket_input[<%= count %>].qty" value="<%= line_item-qty %>">, das die bisher bestelle Anzahl des Artikels enthält und das geändert werden kann. (count ist ein Zähler, der für den n-ten Artikel im Korb den Wert n hat.)Überdies gibt es für jeden Artikel eine Checkbox, mit der man den Artikel aus dem Einkaufskorb löschen kann:
<input type="checkbox" name="basket_input[<%= count %>].del" value="X" >
Es gibt auf dieser Seite 2 Buttons.
Wenn Sie den Layout-Teil erstellt haben, können Sie sich den
Seitenattributen und den Eventhandlern widmen.
