Page tree
Skip to end of metadata
Go to start of metadata


In dem Tabellen-Widget können Datensätze, zum Beispiel aus einer Datenbanktabelle, in YUNA dargestellt werden.

YUNAML-Tags

YUNAML-TagBeschreibungBeispiel
dataID

Mithilfe einer dataID kann eine Datenbankabfrage ausgeführt werden.
Das daraus resultierende Ergebnis wird dann in der Tabelle dargestellt.

Weitere Informationen: Data ID - Definition der Daten

<dataID>qy_my_data_id</dataID>

inputs

Hier kann ein input channel definiert werden.
Über einen input channel können Daten and das Tabellen-Widget übergeben und dargestellt werden.

Weitere Informationen: Datasource

<inputs>
    <data>inputChannel</data>
</inputs>
outputs

Hier kann ein output channel definiert werden.
Über einen output channel können Daten vom Tabellen-Widget an andere input-channel übergeben werden.

Weitere Informationen: Datasource

<outputs>
    <current>dataOutputChannel</current>
    <selected>selectedDataOutputChannel</selected>
</outputs>
generalOptions

Mithilfe der generalOptions ist es möglich grundlegende Eigenschaften der Tabelle zu Konfigurieren.

Weitere Informationen: Grundlegende Eigenschaften

<generalOptions>
    <addColumns>true</addColumns>
</generalOptions>
cols

Mithilfe von cols können eigene Tabellenspalten definiert und angepasst werden.

Weitere Informationen: Erweiterte Eigenschaften

<cols>
    <list>
        <field>DatabaseField</field>
        <title>MyFieldName</title>
        <sortable>DatabaseField</sortable>
        <filter>
            <DatabaseField>text</DatabaseField>
        </filter>
        <show>true</show>
        <width>100</width>
    </list>
</cols>
triggerParams

In den triggerparams kann definiert werden, auf welche URL-Parameter das Widget reagieren soll.
Wenn sich der Wert eines hier angegebenen URL-Parameter verändert, wird das Tabellen-Widget neu geladen.

Weitere Informationen: Triggerparameter

<triggerParams>
    <mandatory>
        <list>UrlParameter1</list>
    </mandatory>
</triggerParams>
sortingMithilfe von sorting wird festgelegt, über welches Feld Initial sortiert werden soll.
<sorting>DatabaseField</sorting>
sortingorder

Mögliche Werte: asc, desc.
Default: asc

Mithilfe von sortingorder wird festgelegt, ob das in sorting definierte Feld aufsteigend oder absteigend sortiert werden soll.

<sortingorder>desc</sortingorder>
countsOptions

Über countsOptions kann die Anzahl der Zeilen pro Seite der Tabelle definiert werden.
Es können mehrere Werte eingetragen werden, wodurch im Tabellenwidget Buttons dargestellt werden um zwischen den verschiedenen Werten umzuschalten.

<countsOptions>
    <list>15</list>
    <list>25</list>
    <list>50</list>
</countsOptions>
analytics

Mit dem YUNAML-Tag Analytics können einer Tabelle analytische Funktionen hinzugefügt werden.

Ist eine analytische Funktion aktiviert, kann sie über das Menü-Symbol erreicht werden.

Weitere Informationen: Erweiterte Eigenschaften

<analytics>
    <chart>true</chart>
    <export>true</export>
    <summary>true</summary>
    <search>true</search>
</analytics>

Darstellung von Daten

Damit das Tabellen-Widget Daten darstellen kann, müssen diese entweder über die dataID, oder den inputChannel übergeben werden.

Anlegen einer Tabelle

<xml>
    <widget>
        <position>
            <x>0</x>
            <y>0</y>
        </position>
        <size>
            <x>8</x>
            <y>6</y>
        </size>
        <widgettype>tabledirective</widgettype>
        <dataID>qy_my_data_id</dataID>
        <generalOptions>
            <addColumns>true</addColumns>
        </generalOptions>
    </widget>
</xml>

Grundlegende Eigenschaften (generalOptions)

In den generalOptions können grundlegende Eigenschaften zur Darstellung der Tabelle festgelegt werden.
Diese beziehen sich nur auf Spalten, die nicht separat mithilfe von cols definiert sind.

Die Angabe der generalOptions ist nicht zwingend erforderlich.

YUNAML-Tags für generalOptions

YUNAML-Tag

Mögliche Werte

default

Beschreibung

Beispiel
generalOptions > addColumnstrue | falsefalseFügt alle Spalten aus der Datenherkunft (Data_ID) an die Tabelle an, sofern sie nicht über cols definiert sind.
<addColumns>true</addColumns>
generalOptions > skipColumnsYUNAML Liste

Verhindert die Anzeige von Spalten, die durch addColumns hinzugefügt werden.

<skipColumns>
    <list>DatabaseField</list>
</skipColumns>

generalOptions > convertColumnstruefalse

Überprüft die durch addColumns hinzugefügten Spalten auf numerischen Inhalt und wandelt diesen gegebenenfalls um. Dadurch werden diese Spalten numerisch sortierbar. Durch R erzeugte Werte Inf bzw. -Inf werden zu Infinity bzw. -Inifinity; NaN sowie NA zu NaN.

<convertColumns>false</convertColumns>

false
generalOptions > sortabletruetrueSpalten sind Sortierbar
<sortable>true</sortable>

falseSpalten sind nicht sortierbar
generalOptions > filtertruetrueSpalten können gefiltert werden
<filter>true</filter>

false
Spalten können nicht gefiltert werden
generalOptions > selectabletruefalse

Es können 1-n Spalten ausgewählt werden.

Ausgewählte Spalten können über den output channel selected für andere input channel zur verfügung gestellt werden.

<selectable>single</selectable>

single

Es kann eine Spalte ausgewählt werden.

Die Ausgewählte Spalte kann über den output channel selected für andere input channel zur verfügung gestellt werden.

falseEs können keine Spalten ausgewählt werden.
generalOptions > styleCSS als YUNAML

Definiert css styles für alle Spaltenüberschriften.

Kann in cols für einzelne Spalten überschrieben werden.

<style>
    <color>red</color>
    <background-color>blue</background-color>
</style>

generalOptions > widthAngabe in Pixel

Definiert die Breite von Tabellenspalten.

Die tatsächliche Darstellung hängt vom verfügbaren Platz ab.

<width>120</width>

generalOptions > hideTableFooterfalsefalse

Sowohl die Seitenzahlen als auch die Anzahl der Zeilen pro Seite werden dargestellt

<hideTableFooter>false</hideTableFooter>
true

Die Anzahl der Zeilen pro Seite werden ausgeblendet.

Die Seitenzahlen werden weiterhin angezeigt.

<generalOptions>
    <!-- adds all columns from the DataID to a table that are not defined by cols-->
    <addColumns>true</addColumns>
    <!-- hides specific columns from the DataID -->
    <skipColumns>
        <list>Job_ID</list>
        <list>Issue_ID</list>
    </skipColumns>
    <!-- converts added column-content to numerical values -->
    <convertColumns>true</convertColumns>
    <!-- enables/disables if columns are sortable -->
    <sortable>true</sortable>
    <!-- enables/disables if columns are filterable -->
    <filter>true</filter>
    <!-- options for formatting table headers -->
    <style>
        <color>red</color>
        <background-color>blue</background-color>
    </style>
</generalOptions>

Filterung und Sortierung in Tabellen

Tabellenspalten können von Usern des Portals durchsucht und so gefiltert werden. Hierzu stehen Nutzern unterschiedliche Möglichkeiten bereit, die sich auf die Inhalte der Tabelle auswirken. 

Im Ursprungszustand wird eine Tabelle ungefiltert und unsortiert dargestellt.

Es besteht die Möglichkeit, Tabelleninhalte für User filterbar zu machen. Möglich wird dies über die Definition des Parameters

<filter>true</filter>

Im folgenden Bild wird in der Spalte "Produktgruppe" der Inhalt der Tabelle gefiltert. Es werden nur noch die Inhalte der Tabelle angezeigt, bei denen in der Produktgruppe mindestens ein "a" enthalten ist. In diesem Beispiel bewirkt es, dass nur noch Datensätze der Produktgruppen "Airplane Engine" und "Hovercraft Engine" angezeigt werden nicht mehr aber Datensätze der Produktgruppe "Helicopter Engine".


Bei der Filterung von Tabellenspalten wird nicht zwischen Groß- und Kleinschreibung unterschieden.

EintragBedeutungBeispieleingabeBeispielergebnis
a-z; A-Z; 0-9Filtert die Tabelleninhalte und zeigt nur noch die Inhalte an, die den Sucheintrag enthalten.AirplaneZeigt nur noch Einträge an, bei denen in der gefilterten Spalte der Sucheintrag Airplane enthalten ist.
!aFiltert die Tabelleninhalte und zeigt nur noch die Inhalte an, die NICHT den Sucheintrag hinter dem "!" enthalten!AirplaneZeigt nur noch Einträge an, bei denen in der gefilterten Spalte der Sucheintrag Airplane NICHT enthalten ist.
yyyy-mm-ddFilterung nach Datum2017-03-25Zeigt nur Datensätze, die das gesuchte Datum in der Suchspalte enthalten

Die vollständige Liste von Operatoren sowie die zugehörige erlaubte Syntax zum Durchsuchen von Tabellenspalten ist abhängig vom Typ der Daten in der gewünschten Spalte. Für User kann eine Dokumentation zu den für die jeweilige Spalte relevanten Operatoren und Syntax verfügbar gemacht werden, die diese durch einen Klick im Suchfeld oberhalb einer Tabellenspalte auf das -Icon ansehen können.

Tabelleninhalte können sortiert werden. Hierzu muss das Sortier-Symbol in der Kopfzeile der gewünschten Tabellenspalte angeklickt werden. Es steht Nutzern frei, ob sie Tabellenspalten aufsteigend oder absteigend sortieren möchten.

Auch dieses Feature kann in der Dashboard-Definition aktiviert oder deaktiviert werden über den Operator

<sortable>true</sortable>


Wird eine Tabelle anhand einer Spalte sortiert, so wirkt sich die Sortierung auch auf alle anderen Spalten der Tabelle aus. Auf diese Weise bleiben alle Einträge eines Datensatzes in der gleichen Zeile zusammen.


Beispiel: Aufsteigende Sortierung einer Tabelle nach aufsteigender alphabetischer Reihenfolge der Spalte Ort

Ausgangstabelle
Sortierte Tabelle
IDKFZ-KennzeichenOrt
IDKFZ-KennzeichenOrt
1KSKassel
2BBerlin
2BBerlin
1KSKassel
3OFOffenbach
3OFOffenbach

Reload Counter für Tabellen

Definition des Reload Counters für den Table-Widget Memory Leak Workaround

Hintergrund des Workarounds

Aufgrund von Memory-Leaks in einer für das Tabellen-Widget verwendeten Bibliothek (ngTable) wurde ein Workaround eingebaut, der dafür sorgt, dass das Portal nach einer gewissen Anzahl von Aufrufen von Portal-Elementen, in denen ngTable verwendet wird (Table-Widget und Single Choice Directive), beim nächsten Aufruf neu geladen wird. So kann vermieden werden, dass ein häufiger Aufruf von Sichten mit Tabellen und Einzelselektionen den Speicherbedarf des Portals im Browser in die Höhe treibt und so das System verlangsamt.


Definition des Counters:

Die Einstellung des Counters zur erfolgt direkt über die Datenbank:

DB-TabelleParameternameEigenschaftMögliche WerteDefault-Wert
portal.ConfigStoretableReloadCountDefiniert die Anzahl von ngTable-Abfragen, bevor ein Reload der Portal-View erzwungen wird.alle positiven ganzzahligen Werte ab 110


Wirkweise des Workarounds:

Wird in der Datenbank der Parameter TableReloadCount beispielsweise auf den Wert 5 gesetzt, so "duldet" das Portal 5 Abfragen von Portalelementen, die ngTable beinhalten (z.B. 5 Table-Widgets in der Portal-View). Sobald die 6. Abfrage gestartet wird, wird automatisch die Portal-View neu geladen.

Standardmäßig - also wenn der Parameter TableReloadCount nicht anders definiert wird - steht der Parameter auf 10. D.h., bei der 11. Abfrage an ngTable-Elemente würde die PortalView neu geladen.

  • No labels