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