Views / Sichten für eigene Spaltenkombinationen

Der Begriff View wird innerhalb von server-daten in einer speziellen Bedeutung verwendet. Er beschreibt ein Objekt, welches einzelne Spalten einer Tabelle in einer neuen Reihenfolge auswählt und die charakteristische Filter- und Sortierfunktionalität bereitstellt. Gefiltert und sortiert werden kann immer über alle Spalten, sofern - bei Ausgabeseiten - Eingabefelder und Sortierlinks zu allen Spalten erzeugt werden. Jedes Menü nutzt einmalig erstellte System-Views für den Zugriff auf die internen Systemtabellen, welche die erste Spalte ausgeben. Ein benutzerdefinierter View stellt dieselbe Funktionalität für die von Nutzern definierten Tabellen bereit. Die wesentliche Aufgabe benutzerdefinierter Views besteht darin, für eine Tabelle mit vielen Spalten jene Spalten auszuwählen, welche für die Voransicht in der Listendarstellung am besten geeignet sind.

Für einen View werden dementsprechend nur wenige Informationen benötigt. Die Grunddaten erfaßt das folgende Menü:

SuchenNeue View-SpalteSpeichernAbbruch



Hilfe
Übersicht  (1/2)
 < 1 > 
 +    myArtikelView
 -    myUmsatzView
   - Umsatz.ArtikelId
   - Umsatz.VertreterId
   - Umsatz.Datum
   - Umsatz.A_Stueck
Id
Name der Sicht *
Tabelle *
Status der Sicht *
Xml-Ausgabe *
Owner
Protokoll2005-09-18 14:00:06, admin    Liste

Löschen

Der Name des Views muß eindeutig sein und den verschärften Regeln für Tabellennamen entsprechen (keine Leerzeichen und '-'). Views können nur zu benutzerdefinierten Tabellen erstellt werden, zu einer Tabelle können mehrere Views erzeugt werden. Für Views kann der Xml-Zugriff erlaubt werden. Näheres ist unter Xml-Ausgaben zu finden.

Die Ausgabespalten werden mittels des folgenden Menüs festgelegt:

SuchenNeue View-SpalteSpeichernAbbruch



Hilfe
Übersicht  (1/2)
 < 1 > 
 +    myArtikelView
 -    myUmsatzView
   - Umsatz.ArtikelId
   - Umsatz.VertreterId
   - Umsatz.Datum
   - Umsatz.A_Stueck
Id
Spaltenname *
Position *

Löschen

Hier sind, analog zu den Spalten bei Constraints, nur die Spalte und ihre Position festzulegen.

Sicherheit

Zu Views kann keine eigenständige Sicherheit bei der Ausführung definiert werden. Das Execute-Recht wird ignoriert. Stattdessen überprüft ein View bei seinem Aufruf, ob der Aufrufer die Berechtigung hat, lesend auf die zugrundeliegende Tabelle zuzugreifen. Verfügt der Nutzer über das globale Leserecht für diese Tabelle, so wird die Suche mit den vom Nutzer gewünschten Filtern ausgeführt. Fehlt dieses Recht, so wird anschließend überprüft, ob der Nutzer das Recht hat, die von ihm selbst erstellten Zeilen zu lesen. Falls ja, wird der Owner-Suchwert passend gesetzt und die Suche anschließend ausgeführt. Ein von diesem Nutzer gesetzter, eventuell abweichender Owner-Wert wird überschrieben.

Aufgrund der Implementierung (s.u.) sind Views relativ klein. Zu einer Tabelle verfügbare Views werden im Menü 1 neben dem Abbruch-Button als Liste eingeblendet. Sie ermöglichen es, zwischen verschiedenen Listendarstellungen der Suchergebnisse rasch zu wechseln. Dies kann dann sehr sinnvoll sein, falls einige interne Nutzer häufig mit den internen Masken arbeiten. In solchen Fällen kann die Berechtigung zum Erstellen von Views großzügig vergeben werden.

Hinweise

Views sind intern als gespeicherte Prozeduren implementiert, sie werden deshalb verzögert erstellt. Views sind relativ kleine Objekte. Zu jeder Tabelle ist die eigentliche Filter- und Sortierlogik in mehreren internen gespeicherten Prozeduren gekapselt. Deren Zahl vergrößert sich mit jeder Multilang-Spalte. Views rufen nur diese Prozeduren auf und fügen die zusätzlich gewünschten Ausgabespalten hinzu. Beim Erstellen einer Tabelle wird ein Standardview erzeugt, welcher die erste Spalte ausgibt. Dieser wird für die Erstanzeige bei der Datenbearbeitung genutzt. Ebenso wird er verwendet, falls auf dem sd:rs -Element einer Ausgabeseite sd:source-type='table' definiert wird. Views können folglich immer als Grundlage zur Datenbearbeitung auf Ausgabeseiten genutzt werden.

Das Erstellen eines Views kann nicht wegen Inkonsistenzen der vorhandenen Daten scheitern. Wenn Spaltennamen oder Datentypen von einer Tabelle geändert werden, so bleiben alle auf dieser Tabelle basierenden, mit Hilfe der obigen Menüs erstellten Viewdefinitionen unverändert. Intern werden die tatsächlich ausgeführten gespeicherten Prozeduren automatisch neu erstellt. Wird eine Spalte, die in einem View genutzt wird, gelöscht, so wird die zugeordnete Viewspalte gelöscht. Ansonsten würde das Löschen der Tabellenspalte aufgrund einer Fremdschlüsselverletzung scheitern. Der View wird deaktiviert, auf den Status 'inaktiv' gesetzt.


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-2018 Jürgen Auer, Berlin.