Ihre Bestellung

Pizza-WünscheGetränke-Wünsche
GrößeBelagPreis
GetränkAnzahlEinzelpreisPreis
|<<>>|0 / 01

|<<>>|0 / 01

Pizza-Liste ändern?Getränke-Wünsche ändern?

Lieferadresse

Lieferdaten ändern?

Gesamtkosten Ihrer Bestellung: 0.00 €

Ihre Bestellung ist vollständig?

Bestellung starten?
Bestellung absenden


Erläuterungen

Diese Seite gibt alle auf den anderen Seiten gesammelten Information über sd:rs - Elemente aus. Für Pizzas/Getränke werden die auf den Einzelseiten verwendeten Abfragen erneut genutzt. Die Lieferdaten werden durch eine einfache Select-Abfrage ermittelt, welche nur die Zeile des aktuellen Nutzers zurückgibt. Die Belegung des Parameters wird durch das sd:with-param - Element bereitgestellt.

Die Details zu Pizzas/Getränken werden in Blindtabellen ausgegeben, da hier eine oder mehrere Zeilen denkbar sind. Bei den Lieferdaten ist bekannt, daß es sich nur um eine anzuzeigende Zeile handelt. Deren Elemente werden frei postiert.

Interessant ist die Abfrage zur Ermittlung der Gesamt-Bestellkosten.

Declare @i int

Select 
  CoalEsce(
    (Select Sum(A.pizzagrösse * B.preis) As zP 
    From pizza_liste As A Inner Join pizzabelag As B 
    On A.pizzabelag & B.pizzabelagId = B.pizzabelagId 
    Where A.pizza_online_bestellenId = @i), 
    0) +
  CoalEsce(
    (Select Sum(A.Anzahl * B.preis) As Einzelpreis 
    From getränke_liste As A Inner Join getränkeangebote As B
    On A.getränk = B.getränkeangeboteId 
    Where A.pizza_online_bestellenId = @i), 
    0)
As Gesamtsumme
Sie verküpft die beiden auf den anderen Seiten verwendeten Abfragen und addiert die zurückgegebenen Werte. Fehlen Pizzas oder Getränke, so gibt die entsprechende Unterabfrage Null zurück. Da 0 + Null = Null, wird dieser Wert von der CoalEsce-Funktion geprüft und gegebenenfalls durch '0' ersetzt, so daß auch in einem dieser Fälle eine optisch sichtbare '0' ausgegeben wird. Diese Zelle ist, wie die anderen numerischen Zellen, mit
sd:number-format="0.00 €"
ergänzt, so daß ein korrektes Zahlenformat vorliegt.

Nicht direkt sichtbar ist, daß der gesamte Block in ein sd:choose-action - Element und in diesem in ein sd:start - Element eingebettet ist. Beim Klick auf den Button wird der Hauptdatensatz nochmals gespeichert und durch ein Flag ergänzt, welches die Fertigstellung der Bestellung markiert. Ist diese Speicherung schließlich erfolgreich, so wird nicht mehr das sd:start, sondern das sd:success - Element ausgegeben, welches einen kleinen erläuternden Text sowie einen Rücklink zur Startseite anbietet.

Man sieht an diesem Beispiel, daß sich der für Bestellvorgänge notwendige Wechsel zwischen verschiedenen Ansichten derselben Seite über die Vielzahl der sd-Elemente bereitstellen läßt.

Zur Pizza-Bestellung
Zurück zur Startseite