Mit Url-Überschreibungen Ausgabeseiten variieren
Das Grundprinzip
Bei der Erstellung von Ausgabeseiten gibt es zwei Möglichkeiten, Daten auszugeben oder sie zu bearbeiten. Im Menü
<Ausgabeseiten> - <Wahl einer einzelnen Seite> - <Vorlage verwenden> liefert die Position
Erstellungstyp die beiden hierzu gehörenden Alternativen
explizit und
dynamisch.
Explizite Version: Pro Spalte wird ein
sd:input-text- bzw.
sd:cell-value-Element
im passenden Kontext eingefügt und verweist mit seinem
sd:col-Attribut auf die gewünschte Spalte.
Damit läßt sich die Reihenfolge der Spalten sowie die Html-Darstellung jeder einzelnen Spalte individuell festlegen. Wird
eine Spalte ausgelassen, so wird sie nicht ausgegeben bzw. kann nicht bearbeitet werden. Bei der Ausgabe einer Tabelle kann
das
sd:rs-Element die zusätzlichen Attribute
sd:sc (SortColumn) und
sd:so (SortOrder)
erhalten, um die Ausgabe für jeden Erstaufruf geeignet zu sortieren.
Dynamische Version: Alternativ können mit
sd:input-cell-set,
sd:col-set und
sd:cell-set auch
Bereiche deklariert werden, welche
sd:label,
sd:input-text und
sd:cell-value
ohne das
sd:col-Attribut enthalten. Diese Bereiche werden bei der Seitenausgabe für jede Spalte einmal
aufgerufen, so daß sich der Name der aktuellen Spalte jeweils aus dem Kontext ergibt. Hier entspricht die Reihenfolge der
Spalten der Definition in der Datenbank, es kann keine Spalte entfernt werden. Da für alle Spalten nur eine Vorlage existiert,
werden auch alle Spalten gleichartig formatiert, wobei verschiedene Typen (Texteingabe, Relation, Ja/Nein oder BitSet)
automatisiert berücksichtigt werden.
Diese Dynamisierung läßt sich zusätzlich durch
Url-Überschreibungen so ausdehnen, daß dieselbe Ausgabeseite
für die Bearbeitung mehrerer Tabellen genutzt wird. Ebenso können durch Url-Überschreibungen Sortierspalte, Richtung und der
ausgegebene Bereich geändert werden. Damit läßt sich eine (einzige) Ausgabeseite zunächst für eine Tabelle dynamisch deklarieren
und anschließend durch Links einer passenden Form so aufrufen, daß alle Tabellen der Datenbank mit dieser einzigen Ausgabeseite
bearbeitet werden können.
Die Url-Überschreibungen stehen immer zur Verfügung. Sie werden intern auch genutzt, um die Logik für Sortierpfeile und
das Blättern durch die Ergebnisse bereitzustellen. Es ist nicht möglich, Url-Überschreibungen auf einer Ausgabeseite
zu verhindern. Sie bleiben jedoch wirkungslos, falls Ausgabespalten explizit ausgegeben werden und sich die Spaltennamen
der verschiedenen Tabellen voneinander unterscheiden. Ferner wird die Berechtigungsprüfung immer ausgeführt, unabhängig davon,
ob die Tabelle im
sd:source-name-Attribut oder per Url-Überschreibung benannt ist.
Die Verwendung im Detail
Bei der Nutzung des oben genannten Menüs werden ein
sd:input-table-Element mit dem Name 'sample-input' sowie ein
sd:rs-Element mit dem Namen 'sample-output' erstellt, die Seite möge 'mySample.html' heißen, als erste Tabelle
sei eine Tabelle 'Artikel' eingebunden. Die Syntax für Url-Überschreibungen lautet:
Seitenname.html/Objektname/Parametername/Parameterwert
[/weiterer Parameter/Wert]
[/weiterer Objektname mit Parametern]
Die Werte müssen fortlaufend notiert werden, hiesige Umbrüche
erfolgen nur aus Gründen der Darstellung. Es folgt also immer der Objektname, gefolgt von Name-Wert-Paaren. Deren Reihenfolge
ist beliebig, nicht benötigte Paare können weggelassen werden. Gültige Parameternamen sind:
table
sc
so
range
'table' kann für
sd:input-table- und
sd:rs-Elemente genutzt werden und erwartet als
nächsten Ausdruck einen gültigen Tabellen-, View- oder Abfragennamen. Die beiden letzten Versionen sind nur beim sd:rs-Element
sinnvoll. Die anderen Parameter gelten ebenfalls nur für dieses und erwarten einen gültigen Spaltennamen, 1 bzw. 2 für die
Sortierrichtung oder einen Bereich '1-10' für die ersten zehn Ergebnisse. Damit erzeugt die Url
mySample.html/sample-output/table/Vertreter/sample-input/table/Vertreter
dieselbe Ausgabeseite, behandelt diese jedoch so, als sei die Tabelle 'Vertreter' jeweils als Attributwert für die beiden
Hauptelemente angegeben. Diese Tabelle wird ausgegeben und zur Bearbeitung angeboten. Die Url
mySample.html/sample-output/table/Umsatz/sample-input/table/Umsatz
leistet dasselbe für die Tabelle 'Umsatz'.
Der Ausdruck
mySample.html/sample-output/so/2
sortiert die Standardtabelle für das Element mit dem Namen sample-output abwärts und übernimmt hierbei die vorgegebene Sortierspalte.
Die Ergänzung
mySample.html/sample-output/so/2/sc/A_Preis
angewandt auf die Tabelle 'Artikel' zeigt den teuersten Artikel als erstes an.
© 2003-2009 Jürgen Auer, Berlin.