Aufbau der XML-Datei
Aufbau
Das Rootelement Element "dynamicview"
Das Element <dynamicview> ist das Rootelement der XML-Konfigurationsdatei und muss das erste definierte Element sein (abgesehen von der optionalen <?xml> Deklaration).
Eigenschaften
Name |
Eingabemöglichkeiten |
Defaultwert |
Beschreibung |
usenext |
true/false |
false |
Aktiviert/Deaktiviert die Paginierungsoption unterhalb der Suchergebnisse. Dadurch werden weniger Daten eingelesen. |
maxrows |
Integer |
|
Gibt die maximale Anzahl von Datensätze an, die geladen werden sollen. Sollte hier kein Wert angegeben sein, werden alle Datensätze geladen. Die Datensätze werden anhand der Sortierung ausgewählt. |
initialload |
true/false |
true |
Aktiviert/Deaktiviert das initiale Laden von Daten, d.h. wenn der Wert auf "false" gesetzt ist, werden erst Datensätze angezeigt, wenn der Anwender mindestens einen Suchparameter gefüllt hat. |
Die Ergebnismenge
Die Ergebnismenge wird innerhalb von zwei Elementen mit SQL definiert. Die Ergebnismenge die angezeigt werden soll, muss in das <sql> Element geschrieben werden. Allgemeine Tabellenausdrücke (CTE) sollten nach Möglichkeit in das <cte> Element definiert werden. Die Benutzerrechte, falls vorhanden, sollten in das SQL-Script aufgenommen werden. Desweiteren bietet das Framework die zwei Platzhalter ":loginname" und ":currentlanguage". Diese repräsentieren den Usernamen und die Usersprache. Diese zwei Platzhalter werden beim Auswerten des SQL-Scripts mit den entsprechenden Werten ersetzt. Zudem können Sie innerhalb des SQL-Scripts auch Ausdrücke finden/verwenden, die innerhalb von drei geschweiften Klammern sind. Dabei handelt es sich um ein Dynamic Services.
Das SQL muss innerhalb des Elements in den eckigen Klammern von <![CDATA[]> geschrieben werden.
Boolische Werte werden im Grid mit einen grünen Haken angezeigt. Dafür müssen aber diese Werte im SQL explizit als Bit gecastet werden.
Angezeigte Spalten
Das Element <columns> definiert die Spalten, die angezeigt werden und die Reihenfolge, in der die Spalten im Grid erscheinen sollen. Das Element besteht aus einer Liste von <column> Elementen, die jeweils eine Spalte beschreiben.
Eigenschaften von <column>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
columnname |
|
Zeichenkette |
Diese Eigenschaft bindet eine Spalte, aus dem SQL-Script in das Grid. Der Wert der Eigenschaft muss der Name einer Spalte sein, welcher im SQL-Script definiert worden ist. |
displayname/translationkey |
|
Zeichenkette |
Diese Eigenschaften definieren die Spaltenüberschriften. Während die Eigenschaft displayname die tatsächliche Spaltenüberschrift festlegt, setzt die translationkey Eigenschaft den Übersetzungschlüssel, der verwendet wird für eine sprachabhängige Spaltenüberschrift. Wenn die translationkey Eigenschaft gesetzt ist, wird displayname ignoriert. |
isquicksearchable |
|
true/false |
Wollen Sie, dass der Wert in der Schnellsuche berücksichtigt wird, muss dieser Wert auf true gesetzt sein. |
isvisible |
|
true/false |
Soll die entsprechende Spalte im Grid sichtbar sein, muss dieser Wert auf true gesetzt sein. |
width |
|
Integer |
Diese Eigenschaft beschreibt die Breite der Spalte in Pixel. Wenn kein Wert angegeben sein sollte, ist die Breite standardmäßig auf 50 Pixel. |
iswindowlink |
|
true/false |
Die iswindowlink Eigenschaft signalisiert, dass eine bestimmte Spalte als Hyperlink dargestellt werden soll. Dieser Hyperlink dient als Einstiegspunkt für die Editierung und in einer Unter-Suche (z.B. in IsSearchField) als Auswahlpunkt. Um den Hyperlink als Einstiegspunkt verwenden zu können wird die Existenz einer http://<Installationsname>/suchtyp/Edit |
dateformat |
|
Zeichenkette |
Wenn es sich bei der Spalte um einen Datumswert handelt, können Sie diese Eigenschaft setzen, um das Datum zu formatieren. Standard ist "d" was Datum ohne Uhrzeit in der Kultur des angemeldeten Users anzeigt. Das Format "G" passt das Datumsformat so an, dass neben dem Datum auch die Uhrzeit in der Kultur des Users angezeigt wird. Eine Liste aller Formate mit Beispielen finden Sie hier: https://docs.telerik.com/kendo-ui/globalization/intl/dateformatting |
isutc |
|
true/false |
Wenn ein Datumswert in der Datenbank als UTC Wert gespeichert ist, kann soweit dieser Wert auf true gesetzt ist, der Datumswert in die Userzeit umgerechnet werden. |
colorruleref |
|
Zeichenkette |
Verweist auf eine Colorrule. Diese Funktionalität wird nur bei Datumswerten angeboten. |
image |
|
|
Mit dieser Eigenschaft können Sie Bilder in den Ergebnissgrid anzeigen. Der Wert muss auf das Feld "ISGUID" in "DOKUDAT1" verweisen. Sollte der Wert NULL sein oder das angegebene Dokument nicht existieren, wird das Defaultbild oder der Text "Kein Bild" angezeigt. Das Default können Sie unter den Allgemeinen Einstellungen ändern. |
Bitte beachten Sie, dass der Standardwert für boolische Werte false ist.
Die Sortierung der Ergebnismenge
Das <sortierung> Element bietet die Möglichkeit die Ergebnismenge nach bestimmten Spalten zu sortieren. Das Element besteht aus einer Liste von <column> Elementen. Je weiter oben ein <column> Element angeordnet ist, desto eher wird die entsprechende Spalte bei der Sortierung berücksichtigt.
Eigenschaften von <column>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
columnname |
|
Zeichenkette |
Verweist auf eine Spalte im <columns> Element. |
mode |
|
asc/desc |
Gibt die Sortierrichtung an. Standardwert ist asc. |
Suchelemente
Unter dem <searchcontrols> Element haben Sie die Möglichkeit Suchkomponenten zu definieren, mit denen Sie die Ergebnismenge einschränken können. Dieses Element besteht aus einer Liste von verschiedenen Elementen, die jeweils eine Suchkomponente definieren.
Gemeinsame Eigenschaften aller Suchkomponenten
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
referencecolumn |
|
Zeichenkette |
Verweist auf eine Spalte im <columns> Element. Die Suchkomponente bezieht sich dann nur auf diese Spalte. |
default |
|
Zeichenkette |
Mit der Eigenschaft können Sie einen Standardwert für die jeweilige Suchkomponente auswählen. |
textfield
Die <textfield> Komponente erlaubt es dem Anwender die Ergebnismenge anhand einer Zeichenkette zu durchsuchen. Sollte die Zeichenkette in der angegebenen Spalte zu finden sein, wird der entsprechende Datensatz ausgewählt.
Name |
Eingabemöglichkeiten |
Beschreibung |
comparativeactive |
true/false |
Gibt an, ob unter der Textbox eine DropBox für "comparative"-Einstellung sein soll. |
comparative |
like/startswith/endswith/equalto |
Gibt an wie '%' in der Suche verwendet werden sollen. |
Um ein Textfeld über die URL einzuschränken, geben Sie folgenden Parameter mit dem gewünschten Wert an "{feldname}_comparative".
Standardwert definieren
Hier können Sie eine beliebige Zeichenkette angeben.
checkbox
Die <checkbox> Komponente erlaubt es dem Anwender die Ergebnismenge anhand eines booleschen Werts zu durchsuchen. Sollte der Wert in der angegebenen Spalte true sein, wird der entsprechende Datensatz ausgewählt.
Standardwert definieren
Hier können Sie "1" oder "true" angeben, falls die entsprechende Checkbox standardmäßig ausgewählt sein soll. Wenn die Checkbox standardmäßig nicht ausgewählt sein soll, geben Sie keinen Standardwert an.
multiselect
Mit dem Element <multiselect> ist es möglich, eine Filterkontrolle zu definieren, die eine Liste von akzeptierten Werten beinhaltet. Dabei handelt es sich um eine Mehrfachauswahl. Sollte einer der ausgewählten Elemente in der angegebenen Spalte vorkommen, wird der entsprechende Datensatz ausgewählt. Zusätzlich müssen Sie eine Datenquelle hinterlegen.
Standardwert definieren
Hier können Sie eine beliebige Zeichenkette angeben. Wenn Sie mehrere Werte standardmäßig haben möchten, können Sie die Werte mit einen ',' angeben.
searchfield
Das Element <searchfield> bietet Ihnen die Möglichkeit, eine weitere Suche aufzurufen und so nach den Schlüsseln von Unterobjekten zu suchen.
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
searchwindowurl |
|
Zeichenkette |
Die URL zur Suche. |
searchvaluefield |
|
Zeichenkette |
Die Spalte, die die Unter-Suche zurückliefern soll. |
multiselect |
|
true/false |
Möchten Sie nach mehreren Einträge suchen, müssen Sie diesen Wert auf true setzen. |
Standardwert definieren
Hier können Sie eine beliebige Zeichenkette angeben. Wenn Sie mehrere Werte standardmäßig haben möchten, können Sie die Werte mit einen ',' angeben.
datepicker
Die <datepicker> Komponente erlaubt es dem Anwender die Ergebnismenge anhand eines Datums zu durchsuchen. Hier gibt es die Eigenschaft timerange. Wenn diese Eigenschaft auf true gesetzt ist, können Sie in der angegebenen Spalte nach einen bestimmten Zeitraum suchen. Sollte dieser Wert nicht gesetzt sein oder auf false stehen, wird nach dem gleichen Datum gesucht.
Standardwert definieren
Das Datum welches als Standardwert definiert werden soll, muss in folgendem Format geschrieben werden: yyyy-mm-dd (Regex: \d{4}-(0[1-9]|1[0-2])-(0[1-9]|1[1-9]|2[1-9]|3[01]) ). Andere Formate werden nicht akzeptiert. Wenn Sie die timerange-Eigenschaft aktiviert haben, können Sie zwei Werte angeben. Diese werden mit einen ',' getrennt und repräsentieren den Zeitraum in welchem gesucht werden soll (z. B.: default="2020-06-01, 2020-06-15" ).
datetimepicker
Die <datetimepicker> Komponente erlaubt es dem Anwender die Ergebnismenge anhand, eines Datums mit Zeitangabe, zu durchsuchen. Hier gibt es die Eigenschaft timerange. Wenn diese Eigenschaft auf true gesetzt ist, können Sie in der angegebenen Spalte nach einem bestimmten Zeitraum suchen. Sollte dieser Wert nicht gesetzt sein oder auf false stehen, wird nach dem gleichen Datum gesucht.
Standardwert definieren
Der Wert den Sie als Standardwert festlegen, muss in der ISO 8601-Notation geschrieben sein (Regex: \d{4}-(0[1-9]|1[0-2])-(0[1-9]|1[1-9]|2[1-9]|3[01])T([01][1-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]) ). Andere Formate werden nicht akzeptiert. Wenn Sie die timerange-Eigenschaft aktiviert haben, können Sie zwei Werte angeben. Diese werden mit einen ',' getrennt und repräsentieren den Zeitraum nach dem gesucht werden soll. (z. B.: default="2020-06-01T00:00:00, 2020-06-15T23:59:59" )
Definition von Datenquellen für Combobox und Multiselect
Sie haben folgende Möglichkeiten Datenquellen zu definieren:
1) Sie verwenden ein SQL. Dafür setzen Sie für den Wert lookuptablename den Namen des gewünschten SQL ein.
2) Sie verwenden eine statische Datenquelle. Dafür setzten Sie für den Wert datasource den Namen der gewünschten Datenquelle ein.
3) Sie sprechen einen Controllerendpunkt an. Dafür gibt es folgende Eigenschaften:
Name |
Erforderlich |
Beschreibung |
datasourceurl |
|
URL zum Controllerendpunkt |
urltextfield |
|
Der in der Suchkomponente angezeigte Text. |
urlvaluefield |
|
Der Schlüsselwert nach dem in der Ergebnismenge gefiltert wird. |
Datenquellen für die Suchenkomponenten
Statische Datenquelle
Das <datasources> Element erlaubt es Ihnen, die Daten innerhalb der XML-Datei direkt zu spezifizieren. Dies hat den Vorteil, dass keine zusätzlichen Datenbankzugriffe notwendig sind, um eine Combobox oder ein Multiselect mit Daten zu befüllen. Das <datasources> Element besteht aus einer Liste von <datasource> Elementen.
Eigenschaften von <datasource>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
name |
|
Zeichenkette |
Name der Datenquelle. Dient als Identifikation bei den Suchkomponenten. |
type |
|
custom/ bool |
Art der Datenquellen. Bei custom kann man beliebig viele Einträge hinzufügen und bei bool gibt es genau zwei Einträge (für true und für false/null). |
one |
|
Zeichenkette |
Der Text wenn der Wert true ist. |
null |
|
Zeichenkette |
Der Text wenn der Wert false oder null ist. |
keyistranslation |
|
true/false |
Sollte es sich bei dem Wert um Übersetzungsschlüssel handeln, muss diese Eigenschaft auf true gesetzt sein*. |
* Nur vorhanden bzw. Pflicht wenn der type bool ist.
Sollte es sich bei dem Typ um custom handeln, besteht das <datasource>Element aus einer Liste von <item>Elementen. Diese stellen jeweils einen Datensatz der Datenmenge dar.
Eigenschaften von <item>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
key |
|
Zeichenkette |
Der Schlüsselwert nachdem in der Ergebnismenge gefiltert wird. |
value |
|
Zeichenkette |
Der in der Suchkomponente angezeigt Text. |
keyistranslation |
|
true/false |
Sollte es sich bei Wert, den man bei Key angegeben hat, um einen Übersetzungsschlüssel handeln, muss diese Eigenschaft auf true gesetzt sein. |
valueistranslation |
|
true/false |
Sollte es sich bei Wert, den man bei Value angegeben hat, um einen Übersetzungsschlüssel handeln, muss diese Eigenschaft auf true gesetzt sein. |
SQL
Alternativ zu den statischen Datenquellen können Sie auch SQL-Scripts definieren, die als Datenquelle für die Suchkomponenten fungieren. Diese können Sie unter dem <namedqueries> Element definieren. Das <namedqueries> Element besteht aus einer Liste von <namedquery>, die die eigentliche Datenquelle definieren. Diese <namedquery>Elemente haben nur die Eigenschaft name. Diese Eigenschaft dient als Identifikation und ist ein Pflichtfeld.
Bitte beachten Sie, dass das Ergebnis des SQL-Scripts eine key- und ein value-Attribut braucht.
Sie können im SQL auch die Platzhalter :currentuser und :currentlanguage und die Dynamic Services verwenden.
Das SQL muss innerhalb des Elements in den eckigen Klammern von <![CDATA[]> geschrieben werden.
Menüaktionen
Das <menu> Element erlaubt es zusätzliche Aktionen zur der Suche hinzuzufügen. Diese findet man dann in der ersten Spalte, wenn man auf
drückt. Das Element besteht aus einer Liste aus <menuitem> Elementen, in denen die Aktionen definiert werden. Wenn die Aktion eine neue Seite öffnen soll, passiert dies im gleichen Fenster.
Eigenschaften von <menuitem>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
name |
|
Zeichenkette |
Name der Aktion |
link |
|
Zeichenkette |
Der Link der aufgerufen werden soll. Innerhalb des Links können Sie zwei Platzhalter definieren, die dann durch Werte aus dem Suchergebnis gefüllt werden. Diese zwei Platzhalter lauten: {{{primarykey}}} und {{{additionalkey}}}. |
primarykey |
|
Zeichenkette |
Hier geben Sie die Spalte an, deren Wert {{{primarykey}}} ersetzt werden soll. |
additionalkey |
|
Zeichenkette |
Geben Sie die Spalte an, deren Wert {{{additionalkey}}} ersetzt werden soll. |
translationkey |
|
Zeichenkette |
Der Name des Übersetzungschlüssels |
openinsheet |
|
true/false |
Wenn der Link in einem Sheet oberhalb der Suche angezeigt werden soll, muss dieser Wert auf true gesetzt sein. |
(Optische) Anpassung des Grids
Hintergrundfarbe anhand eines Datums
Es ist möglich, Regeln zu definieren, die die Hintergrundfarbe, anhand eines Datumswerts und dem heutigen Datum, von den Zellen des Grid festzulegen. Diese Regeln werden im <colorrule> Element definiert. Das <colorrule> Element besteht aus einer Liste von <rule> Elementen. Deren einzige Eigenschaft ist name, was als Identifizierung gilt. Diese Identifizierung muss auch in der Spaltenbeschreibung zu finden sein. Ein <rule> Element besteht aus den Elementen <lessthan>, <equalto> und <greaterthan>. Die Werte der Farbelemente müssen gültige CSS-Farben sein (benannt oder hexadezimal, mit dem vorangestellten "#"-Symbol). Wenn der Wert in der Vergangenheit liegt, sticht die Farbe aus dem <lessthan> Element, wenn es sich um den heutigen Tag handeln sollte, sticht die Farbe aus dem <equalto>Element und, sollte der Wert in die Zukunft liegen, sticht die aus dem <greaterthan> Element.
Hintergrundfarbe anhand eines Vergleichs
Mit dem Element <colorswitches> können Sie die Hintergrundfarbe und/oder die Textfarbe, einer bestimmten Zelle, einstellen. Das <colorswitches> Element besteht aus einer Liste von <switch> Elementen, die sich jeweils auf eine Spalte beziehen. Diese <switch> Elemente bestehen aus einer Liste aus <case> Elementen, welche die verschiedenen Möglichkeiten repräsentieren, wie eine Zelle gefärbt sein kein.
Eigenschaften von <switch>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
columnname |
|
Zeichenkette |
Verweist auf eine Spalte im <columns> Element. Diese Spalte wird dann eingefärbt. |
sourcecolumn |
|
Zeichenkette |
Verweist auf eine Spalte im <columns> Element. Nach dieser Spalte richtet sich die Färbung. |
row |
|
true/false |
Wenn die ganze Zeile eingefärbt werden soll, muss dieser Wert auf true gesetzt sein. |
Eigenschaften von <case>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
value |
|
|
Wenn die Spalte den hier angegeben Wert hat, wird die entsprechende Spalte eingefärbt. |
color |
|
CSS Farbe |
Die Hintergrundfarbe der Zelle |
text |
|
CSS Farbe |
Die Schriftfarbe der Zelle |
Templates
Mit dem <columntemplates> Element können Sie das Aussehen der Spalte mit Kendotemplates definieren. Es kann z.B. bestimmte Icons in einer Spalte anzeigen. Das Element besteht aus einer Liste aus <template> Elementen, in denen Sie das Template definieren.
Eigenschaften von <template>
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
columnname |
|
Zeichenkette |
Verweist auf eine Spalte im <columns> Element. |
Das Template muss innerhalb des Elements in den eckigen Klammern von <![CDATA[]> geschrieben werden.
Diverse Optionen
Neu-Button
Um in der Suche einen Button zu haben, der es dem Anwender erlaubt neue Entitäten zu erstellen, muss es unterhalb des <options> Element ein <newbutton> Element geben. Die zweite Bedingung das der User den Neu-Button sehen kann, ist dass der entsprechende User auch die Rechte hat eine neue Entität anzulegen.
Eigenschaften
Name |
Erforderlich |
Eingabemöglichkeiten |
Beschreibung |
link |
|
Zeichenkette |
Die URL, die das Fenster aufruft um eine neue Entität zu erstellen. Wenn keine URL angeben ist wird die bend-URL für die Erstellung genommen. |