Das sd:choose- Element

Ermöglicht die Deklaration einer Verzweigung innerhalb eines sd:rs -Elements. Das gesamte Element wird für jede Zeile der Ausgabetabelle einmal aufgerufen, die Spaltennamen können in den Bedingungen genutzt werden. Die definierten sd:when -Elemente werden der Reihe nach auf die Bedingung geprüft, die im sd:test -Attribut formuliert ist. Scheitern alle Vergleiche, so wird das sd:otherwise -Element ausgeführt.

Dieses Element ermöglicht es, Zeilen einer Tabelle oder Abfrage in Abhängigkeit von den Werten dieser Zeile verschiedenartig zu formatieren.

Typ
Äußere Elemente
Attribute
sd:name
Legt den Namen des Objektes fest. Dieses Attribut ist immer ein Pflicht-Attribut.
sd:cache-name
Erwartet eine Zeichenfolge als Wert. Wenn der Wert mit einem '$' beginnt und wenn es einen gleichnamigen, unter diesem Namen gecachten Wert gibt, dann muß das sd:test -Attribut einen Spaltennamen enthalten. Falls der Wert dieser Spalte gleich dem gecachten Wert ist, wird das sd:when -Element ausgeführt.
sd:cache-name-simple
Erwartet eine Zeichenfolge als Wert. Wenn der Wert mit einem '$' beginnt und wenn es einen gleichnamigen, unter diesem Namen gecachten Wert gibt, dann muß das sd:test -Attribut einen einfachen Wert enthalten. Falls dieser Wert gleich dem gecachten Wert ist, wird das sd:when -Element ausgeführt.
sd:geo-distance
Das Attribut muß mit dem Namen eines sd:rs -Elements belegt werden, welches eine Umkreissuche bereitstellt. Dann kann es dafür genutzt werden, per sd:test='0' eine Mitteilung darüber auszugeben, daß nichts gefunden und die Suche entsprechend ausgedehnt wurde.
sd:col
Wenn dieses Attribut belegt ist, wird nach einer Spalte mit diesem Namen gesucht und der Spaltenwert mit den sd:test-Werten der sd:when -Elemente verglichen. Dies entspricht einem Vergleich
Spaltenname = Wert
für die verschiedenen Werte, kann intern jedoch weitaus schneller ausgeführt werden als die komplexe Variante.
sd:input-col
Ermöglicht es, den Wert einer Spalte in einer Eingabemaske für einen sd:choose-null - Vergleich heranzuziehen.
sd:check-col
Falls das sd:choose - Element im Kontext eines sd:rs mit sd:cols-as-rows='true' notiert ist, kann ein Wert 'true' in Kombination mit Spaltennamen beim sd:test - Attribut dazu genutzt werden, um verschiedene Ausgaben für verschiedene Spalten zu erzeugen.
sd:check-col-outside-row
Falls das sd:choose - Element im Kontext eines sd:rs mit sd:cols-as-rows='true' notiert ist und selbst außerhalb des <tr> - Elements, kann ein Wert 'true' in Kombination mit Spaltennamen beim sd:test - Attribut dazu genutzt werden, um verschiedene Ausgaben für verschiedene Spalten zu erzeugen.
sd:check-col-pos
Ein Wert 'true' im Kontext sd:cols-as-rows='true' und eine Zahl 0 - Zahl der Spalten im sd:test - Attribut ermöglicht es, für die Spalte 0 (mit den Spaltenüberschriften) gesonderte Anweisungen festzulegen.
sd:check-login
Der Login-Status kann 0 (nicht angemeldet) oder 1 (angemeldet) sein. Ist dieses Attribut mit 'true' belegt, dann kann per sd:test='0' die Anzeige für nicht angemeldete Nutzer explizit festgelegt werden.
sd:check-is-local
Kann mit true belegt sein und im sd:when - Element die Werte 1 oder 0 haben. Falls 1, wird bei einer lokalen Ausführung (im Rahmen der PDF-Generierung) verzweigt.
sd:check-https
Kann mit true belegt sein und im sd:when - Element die Werte 1 oder 0 nutzen. Falls 0 und falls der Aufruf über http erfolgt, wird dieser Zweig aufgerufen, ansonsten der sd:otherwise-Zweig.
sd:check-filename
Falls dieses Attribut mit 'true' belegt ist, werden bei den sd:test - Attributen Dateinamen erwartet. Diese werden mit dem aktuellen Dateinamen verglichen.
sd:check-http-status
Falls dieses Attribut mit 'true' belegt ist, werden bei den sd:test - Attributen Http-Statuscodes erwartet. Der Statuscode wird beim Aufruf der Seite festgelegt, ist normalerweise 200, kann aber bsp. bei einem fehlerhaften SoftCheck als 404 festgelegt sein. Für so einen Fall kann eine gesonderte Meldung ausgegeben werden, bsp. mit einem Link zur korrekten Seite.
sd:check-user-id
Falls das Attribut mit 'true' belegt ist, werden bei den sd:test - Attributen Nutzer-IDs > 0 erwartet. Wenn für den ausführenden Nutzer ein Zweig existiert, wird dieser ausgeführt. Ansonsten wird der sd:otherwise-Zweig abgearbeitet.
sd:check-mode
Falls das Attribut mit 'true' belegt ist, werden bei den sd:test - Attributen Seitenmodi (search, new-iM, edit-iM) erwartet. Der entsprechende Zweig wird ausgeführt.
sd:check-action-retvalue
Falls das Attribut mit 'true' belegt ist, wird ein sd:test-Attribut mit 1 erwartet. Das wird ausgeführt, falls der globale Rückgabewert = 1 ist. Ansonsten - etwa bei einem gescheiterten Speichern - wird der sd:otherwise-Zweig ausgeführt.
sd:check-domain
Falls das Attribut mit 'true' belegt ist, werden bei den sd:test - Attributen mögliche externe Domains erwartet. Dies kann hilfreich sein, falls bsp. beim Aufruf über eine externe Domain ein eigener google-Map - Api-Schlüssel benötigt wird.
sd:check-lang
Wenn dieses Attribut mit 'true' belegt ist, dann werden bei den folgenden sd:when -Elementen Sprachkürzel für die sd:test -Attribute erwartet. Das sd:choose -Element prüft, welche Sprache aktuell gültig ist und führt den entsprechenden Zweig aus.
sd:check-first-row
Falls dieses Attribut mit 'true' belegt ist und das Element im Context eines sd:rs - bzw. sd:cell-set -Elements verwendet wird, kann für die erste Zeile zusätzlich der Inhalt dieses Elements ausgeführt werden. Das sd:test -Attribut ist mit der zu testenden Spalte zu belegen.
sd:check-last-row
Falls dieses Attribut mit 'true' belegt ist und das Element im Context eines sd:rs - bzw. sd:cell-set -Elements verwendet wird, kann für die letzte Zeile zusätzlich der Inhalt dieses Elements ausgeführt werden. Das sd:test -Attribut ist mit "last()" zu belegen.
sd:check-is-api-call
Wenn dieses Attribut mit 'true' belegt ist, dann wird bei einem API-Aufruf der Zweig mit sd:when="1" ausgeführt, ansonsten der sd:otherwise-Zweig.
sd:check-is-api-documentation
Falls mit "true" belegt, ist das sd-when-Element mit sd:test='1' der Container für die API-Dokumentation, die Mitgliedern der Gruppe __API_DOCUMENTATION angezeigt wird.
sd:check-is-api-elements
Falls mit "true" belegt, ist das sd-when-Element mit sd:test='1' der Container für die API-Dokumentation aller Elemente, die auf dieser Seite adressiert werden können.
sd:has-new-value
Keine Beschreibung
sd:as-bitcheck
Wenn dieses Attribut mit dem Wert 'or' belegt ist, dann wird geprüft, ob ein Bitvergleich der beiden angegebenen Werte <> 0 liefert.
sd:test-type
Kann derzeit mit dem Ausdruck 'soft-check' belegt werden. Dann werden die beiden Werte 'schwach' auf Übereinstimmung geprüft. Das ist nützlich, falls ein Ausdruck in einer Url ohne Umlaute, Leerzeichen und ähnliches gegen einen beliebigen String getestet werden soll.
Child-Elemente
Beispiele
Das folgende Beispiel gibt die Tabelle 'Artikel' über den View 'ArtikelView' aus. Das sd:choose-Element ist hier im Kontext eines sd:normal -Elements notiert. Dieses Element wird für jede Zeile einmal ausgeführt. Die sd:choose -Verzweigung prüft, ob der Preis kleiner oder gleich 100 ist. Falls ja, wird der Artikel-Preis mit rotem Hintergrund dargestellt. Falls der Preis größer 100 ist, wird der Artikelpreis mit dem Standard-Hintergrund ausgegeben.
<table>
    <sd:rs sd:name="sample-output" sd:edit="sample-input"
        sd:source-type="view" sd:source-name="ArtikelView">
        <sd:normal>
          <tr>
            <td>
                <sd:edit-link>
                    <sd:cell-value sd:col="ArtikelId" />
                </sd:edit-link>
            </td>
            <td>
                <sd:cell-value sd:col="A_Name" />
            </td>
            <td>
                <sd:choose sd:name="choose-A_Preis">
                    <sd:when sd:test="A_Preis &lt;= 100">
                        <span style="background-color:red;">
                            <sd:cell-value sd:col="A_Preis" />
                        </span>
                    </sd:when>
                    <sd:otherwise>
                        <sd:cell-value sd:col="A_Preis" />
                    </sd:otherwise>
                </sd:choose>
            </td>
          </tr>
        </sd:normal>
    </sd:rs>
</table>

Link zur hiesigen Seite als QR-Code

Kontaktformular:

Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!

Die Erläuterungen zum Datenschutz habe ich gelesen und stimme diesen zu.

© 2003-2023 Jürgen Auer, Berlin.