Diese Funktionalität ist nur in bestimmten Ausbaustufen verfügbar.

pureTable

Das Element <pureTable> dient besonders der Darstellung von großen Datenmengen in einer Tabelle. Innerhalb einer Tabellenspalte können nur jeweils die Elemente <label> oder <input> dargestellt werden. Für das Element <input> sind die Typen check, text und combo zulässig.

Das Attribut receiver muss eine Liste zurückgeben, über die in der Tabelle iteriert wird.

Sortieren von Inhalten:

Die Inhalte der Tabelle werden in der Reihenfolge der Iterationen dargestellt, können aber Spaltenweise an- oder absteigend sortiert werden. Mit jedem Mausklick auf den Spaltennamen wechselt die Sortierung zwischen unsortiert, ansteigend und absteigend. Der manuell ausgewählte Wert wird persistent gespeichert.

Filtern von Inhalten:

Um die Menge der anzuzeigenden Inhalte einzuschränken können Filter aktiviert und bei Bedarf vorkonfiguriert werden. Es sind zwei Filtertypen möglich:

Filter für frei einzugebende Zeichen:

Ist dieser Filter konfiguriert, erscheint nach der Kopfzeile eine Zeile, in der Filtertexte für jede Spalte eingegeben werden können. Vordefinierte Filter werden ebenfalls in der Zeile unterhalb der Kopfzeile angezeigt und können überschrieben werden.

Wird durch einen vordefinierten Filter die Anzahl der anzuzeigenden Inhalte eingeschränkt und anschließend der Filter geändert, um mehr Inhalte anzuzeigen, wird eine Bildlaufleiste am rechten Rand der Tabelle eingeblendet.

Ein manuell eingegebener Filter wird persistent gespeichert.

Filter zur Auswahl eines vorhandenen Zelleninhalts aus einer Dropdown-Liste:

Ist dieser Filter konfiguriert, erscheint nach der Kopfzeile eine Zeile mit je einer Dropdown-Liste für jede Spalte. Die Dropdown-Listen sind mit den Werten der jeweiligen Spalte befüllt. Der gewählte Wert einer Dropdown-Liste schränkt die Anzahl der anzuzeigenden Tabellenzeilen ein.

Ein gewählter Filterwert wird persistent gespeichert.

Spaltenbreiten:

Die Spaltenbreiten sind durch verschiedene Attribute vorzudefinieren, können aber manuell geändert werden. Die manuell geänderten Spaltenbreiten werden persistent gespeichert.

Ändern von Zelleninhalten:

Um in einer änderbaren Zelle den Editor zu starten sind folgende Aktionen möglich:

Markieren und kopieren von Tabelleninhalten:

Der Inhalt einer einzelnen Tabellenzelle (Attribut selectionMode="cell") kann mit Hilfe der Maus markiert und mit der Tastenkombination [Strg] + [C] in die Zwischenablage kopiert werden. Weitere Tabellenzellen können mit gleichzeitig gedrückter [Strg]-Taste und ein Bereich mit gleichzeitig gedrückter [Umschalt]-Taste markiert werden. Eine komplette Tabellenzeile kann ebenso mit der Maus markiert werden, wenn das Attribut selectionMode="row" vorgegeben ist.

Um den Inhalt der Zwischenablage wieder in die Tabellenzellen einzufügen wird die Tastenkombination [Strg] + [V] verwendet. Die Daten in der Zwischenablage sollten dem Format von Excel entsprechen, d.h. Spalten werden durch Tabulatoren getrennt, Zeilen durch Zeilenumbrüche, Zellen können durch Anführungszeichen umschlossen werden. Um ein Anführungszeichen darzustellen, muss es doppelt geschrieben sein.

Es gibt folgende Einfügemodi:

Sind in der Zwischenablage gleichviele Werte abgelegt, wie Zellen in der Tabelle markiert sind, werden die markierten Zellen mit diesen Werten befüllt.

Sind in der Zwischenablage weniger Werte abgelegt, wie Zellen in der Tabelle markiert sind, werden nur die Zellen befüllt, die der Anzahl der Werte in der Zwischenablage entsprechen.

Ist in der Zwischenablage nur ein einzelner Wert abgelegt, wird dieser in alle markierten Tabellenzellen eingefügt.

Attributname Verwendung Attributwerte Defaultwert Beschreibung
columnsMax optional, nur in Verbindung mit freezeLeft und/oder freezeRight     Maximale Anzahl der angezeigten Spalten neben/zwischen fixierten Spalten.
freezeLeft optional true, false false Anzahl der fixierten Spalten auf der linken Seite der Tabelle.
freezeRight optional true, false false Anzahl der fixierten Spalten auf der rechten Seite der Tabelle.
height optional Integer, fillForm   Höhe der gesamten Tabelle.
Integer = Höhe der Tabelle in Pixel
fillForm = Tabelle nimmt die gesamten Höhe des Form-UIs ein
maxHeight optional, nur in Verbindung mit height="fillForm"     Die pureTable wird durch Vergrößern des Form-UI-Fensters nicht höher als die maximale Höhe in Pixel.
maxWidth optional, nur in Verbindung mit width="fitToForm"     Die pureTable wird durch Vergrößern des Form-UI-Fensters nicht breiter als die maximale Breite in Pixel.
minHeight optional, nur in Verbindung mit height="fillForm"     Das Form-UI-Fenster kann nicht kleiner werden als die minimale Höhe der pureTable in Pixel.
minWidth optional, nur in Verbindung mit width="fitToForm"     Das Form-UI-Fenster kann nicht kleiner werden als die minimale Breite der pureTable in Pixel.
readonly optional true, false   true = pureTable kann nur gelesen werden.
false = In der pureTable sind Eingaben möglich.
receiver benötigt     Es muss eine Liste zurückgegeben werden. In der Tabelle wird über diese Liste iteriert und dadurch die Anzahl der Zeilen unterhalb der Kopfzeile bestimmt.
Gibt eine Formel eine Liste von Komponenten zurück kann bei jedem Iterationsvorgang auf die ermittelte Komponente Bezug benommen werden.
selectionMode optional cell, row row Schaltet die Auswahl zwischen Inhalt der Zelle und Inhalt der Zeile um.
rows optional     Anzahl der angezeigten Tabellenzeilen
rowsMax optional     Maximale Anzahl der angezeigten Tabellenzeilen
rowsMin optional     Minimale Anzahl der angezeigten Tabellenzeilen. Die minimale Anzahl von 3 Tabellenzeilen kann nicht unterschritten werden.
variable optional     Name der Variable
visible optional true, false true true = Tabelle ist sichtbar
false = Tabelle ist unsichtbar
width optional Integer, fitToForm   Breite der gesamten Tabelle.
Integer = Breite der Tabelle in Pixel
fitToForm = Tabelle nimmt die gesamte Breite des Form-UIs ein
Erlaubte Unterelemente Anzahl
column beliebig
filters 0..1

Tabelle mit zwei Spalten:

Das folgende Beispiel zeigt eine Tabelle, die für alle Komponenten vom Typ Pfuderer_ModularSystem.Mechatronic.SensorsActuators.Base.SensorActuator die Parameter Place und Name auflistet.

Tabelle mit drei Spalten definierter Breite:

Das folgende Beispiel zeigt eine Tabelle, die den Namen des Ringtaktsystems und von deren Komponenten vom Typ 'Pfuderer_ModularSystem.Mechatronic.SensorsActuators.Base.SensorActuator' die Parameter Place und Name auflistet.

Tabelle mit vordefiniertem Filter:

Das folgende Beispiel zeigt eine Tabelle, die den Namen des Ringtaktsystems und von deren Komponenten vom Typ 'Pfuderer_ModularSystem.Mechatronic.SensorsActuators.Base.SensorActuator' die Parameter Place und Name auflistet. Dabei soll die Anzahl der anzuzeigenden Elemente auf die Sensoren und Aktoren beschränkt werden, die in der Station St21 eingebaut sind.

Tabelle mit begrenzter Zeilenanzahl:

Das folgende Beispiel zeigt eine Tabelle, deren maximale Zeilenanzahl mit rowsMax="10" begrenzt ist.

Tabelle mit Mindestanzahl von Zeilen:

Das folgende Beispiel zeigt eine Tabelle, deren minimale Zeilenanzahl mit rowsMin="10" festgelegt ist.

Doppelklick auf eine Zeile der Tabelle startet eine Aktion

In der folgenden Tabelle kann per Doppelklick auf eine beliebige Zeile eine Aktion gestartet werden.

Tabelle mit fixierten Spalten:

Das folgende Beispiel zeigt eine Tabelle, deren Darstellung auf maximal 5 Zeilen und 7 Spalten begrenzt ist. Von den 7 Spalten ist auf der linken Seite eine und auf der rechten Seite sind 2 Spalten fixiert. Die Spalten und Zeilen dazwischen können mit Hilfe von Bildlaufleisten erreicht werden.

Tabelle mit fixierter Höhe:

Das folgende Beispiel zeigt eine Tabelle, deren Höhe auf 150 Pixel fixiert ist.

Ergebnis:

Tabelle mit dynamischer Höhe:

Das folgende Beispiel zeigt eine Tabelle, deren Höhe an die Höhe des Form-UIs angepasst ist.

Ergebnis:

Tabelle mit fixierter Breite:

Das folgende Beispiel zeigt eine Tabelle, deren Breite auf 350 Pixel fixiert ist.

Ergebnis:

Tabelle mit dynamischer Breite:

Das folgende Beispiel zeigt eine Tabelle, deren Breite an die Breite des Form-UIs angepasst ist.

Ergebnis: