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 GesamtsummeSie 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