Logo.CortexAG

Anmelden +

JavaScript-Funktionen

Neben den Standard-JavaScript-Funktionen stehen mehrere UniPlex-interne Funktionen zur Verfügung, mit denen Sie Ergebnisse ermitteln und in Felder schreiben können. Das JavaScript wird beim Aufruf der Liste je Datensatz durchlaufen und ausgeführt. Es können daher Ergebnisse je Datensatz und auch übergreifende Ergebnisse ermittelt werden.

 

setlistfield

Mit Hilfe der Funktion "setlistfield" können Sie den Inhalt eines Listenfeldes setzen. Der Aufruf erfolgt dabei immer mit den Parametern für das Feld, das gesetzt werden soll und mit dem entsprechenden Inhalt.

setlistfield(string fieldname, value);

Beispiele:

setlistfield('Ergebnis', 42);
setlistfield('Name', 'Arthur Dent');

Werden Variablen genutzt, können diese natürlich auch als Rückgabewert verwendet werden.

var hisName = 'Arthur Dent';
var result = 42;
setlistfield('Ergebnis',result);
setlistfield('Name',hisName);

 

getlistfield

Um Inhalte der Liste verarbeiten zu können, ist es notwendig auf diese zuzugreifen. Dafür steht die Funktion "getlistfield" zur Verfügung. Jeder angezeigte Wert (bzw. auch versteckte Werte) der Liste steht damit im Zugriff. Als Parameter ist nur der eindeutige Spaltenname erforderlich, aus dem der Wert gelesen werden soll.

getlistfield(string fieldname);

Beispiel:

var sLastName = getlistfield('lastname');
var sFirstName = getlistfield('firstname');
setlistfield('his Name',sLastName+', '+sFirstName);

Das Beispiel demonstriert das Lesen zweier Felder und die Rückgabe der Inhalte in einem einzigen Feld.

 

setvar

Um Datensatz-übergreifend Inhalte zu übergeben (nur Strings oder numerische Werte), sind globale Variablen notwendig. Somit ist es möglich, dass beispielsweise kumulierte oder summierte Werte für die Berechnung in den Feldern anderer Datensätze zur Verfügung stehen. Hierfür ist lediglich der eindeutige Variablenname und ein Inhalt notwendig. Um Objekte global übergeben zu können, nutzen Sie die globale Objekt-Variable 'ctx' (Erläuterung weiter unten).

setvar(string varname, value);

Beispiele:

setvar('hisName','Arthur Dent');
setvar('result',42);

 

getvar

Wurden globale Variablen gesetzt, können diese wiederum ausgelesen werden. Als Parameter stehen hier der Name der Variablen und ein Default-Wert zur Verfügung, der herangezogen wird, wenn die Variable nicht existiert.

getvar(string varname, defaultValue);

Beispiel:

getvar('hisName','');
getvar('result',0);

 

getvar('zgb_sGlobalRelDate‘)

Bei der globalen Variablen "zgb_sGlobalRelDate" handelt es sich um eine Systemvariable, die das optionale Bezugsdatum zurückgibt, wenn es sich um eine Liste handelt bei der das genutzt wird. Der Rückgabwert besteht hierbei aus einem vierstelligen Jahr und jeweils zweistelligem Monat und Tag ('jjjMMdd'). Das Bezugsdatum kann dann in einer Liste genutzt werden (oben rechts einzustellen), wenn min. für eine Spalte die Option "Verlaufsdatum (relatives Datum)" aktiviert wurde.

 

Die globale Objekt-Variable 'ctx'

Ab der UniPlex-Version 2.0.061 steht die Variable 'ctx' zur Verfügung. Hierbei handelt es sich um ein Objekt, dass beliebig strukturiert werden kann und nur innerhalb der aufgerufenen Liste zur Verfügung steht. Beispielsweise kann in Abhängigkeit eines anderen Listenfeldes ein Wert gespeichert werden:

ctx[getlistfield('name')] = getlistfield('value');

Genauso kann ein Listenfeld mit einem Wert aus dieser Variablen gesetzt werden:

setlistfield('newValue',ctx[getlistfield('name')]);

Mit dieser Variablen ist es somit möglich, komplexere Objekte datensatzübergreifend zu übergeben.

 

Hinweis zur Nutzung von Variablen:

Beachten Sie, dass die Inhalte einer Liste ggf. blockweise geladen werden (je nach Serverleistung und Leitungskapazität, sekundenweise). Die globlen Variablen können nur innerhalb eines geladenen Datenblocks verwendet werden. Mit jedem neuen Datenblock (z.B. 5.000 Ausgangsdatensätze) werden die globalen Variablen erneut initialisiert. Hierbei gilt die Grenze für die selektierten Ausgangsdatensätze. Die Inhalte von Sublisten werden immer komplett geladen, so dass darin die Variablen immer verwendet werden können.

 

JavaScript-Objekte (json)

Die Funktionen getlistfield und setlistfield erlauben das Lesen und Setzen eines Feldes in Form der JavaScript Objekt Notation (json). Dadurch ist es möglich, dass neben dem eigentlichen Wert auch einfache Formatierungsangaben angewendet werden. Es ist also vor dem Setzen des Ergebnisses notwendig, dass ein Objekt für die Rückgabe erstellt wird. Dieses geschieht entwender durch das vorherige Lesen eines Feldes als json-Objekt oder durch die manuelle Erstellung.

getlistfield(string fieldname, string mode)

Der zweite Parameter "mode" bei der Funktion getlistfield definiert, wie der Inhalt eines Feldes gelesen werden soll. Dabei gilt:

C - Zeichenfolge
I - Ganzzahl
N - Nummerisch mit Nachkommastellen
J - JSON-Struktur

Beispiel:

var jsObj = getlistfield('Ergebnis', 'J');

Hier wird das Feld "Ergebnis" als json-Objekt gelesen und in der Variablen jsObj gespeichert.

Das Objekt weist dabei folgenden Aufbau auf:

jsObj[0]['d']
jsObj[0]['stc']
jsObj[0]['sbc']
jsObj[0]['sta']
jsObj[0]['sfw']
jsObj[0]['std']
jsObj[0]['sfs']

 

Der Index "0" ist hierbei obligatorisch und die weiteren Schlüssel können entsprechend verwendet werden:

 

Schlüssel Bedeutung html-Entsprechung Referenz
stc Textfarbe color http://de.selfhtml.org/css/formate/wertzuweisung.htm#farben
sbc Hintergrundfarbe backgroundColor http://de.selfhtml.org/css/formate/wertzuweisung.htm#farben
sta Schriftausrichtung textAlign http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#text_align
sfw Schriftgewicht fontWeight http://de.selfhtml.org/css/eigenschaften/schrift.htm#font_weight
std Textdekoration textDecoration http://de.selfhtml.org/css/eigenschaften/schrift.htm#text_decoration
sfs Schriftstil fontStyle http://de.selfhtml.org/css/eigenschaften/schrift.htm#font_style
d Daten des Feldes (Inhalt)    

 

Wurde ein Feld als json-Objekt gelesen, erfolgt das Setzen des Feldes genauso mit der entgegengesetzten Funktion. Der dritte Parameter 'J' muss hierbei genauso genutzt werden.

setlistfield('Ergebnis',jsObj,'J');

 

Beispiel:

var jsObj = getlistfield('Ergebnis', 'J');
if(jsObj[0]['d']>41) {
jsObj[0]['stc'] = '#ff0000';
} else {
jsObj[0]['stc'] = '#00ff00';
}
setlistfield('Ergebnis',jsObj,'J');

Das gezeigte Beispiel sorgt dafür, dass in der Anzeige die ausgegebene Zahl rot dargestellt wird, wenn sie größer als 41 ist, und grün, wenn sie kleiner ist.

Anhand der oben gezeigten Beispiele lässt sich daher folgende Liste ausgeben:

Liste.Beispiel.JavaScript

Wie hier zu sehen ist, wurde für das Script eine separate Spalte angelegt (zu erkennen im Spalten-Titel an dem vorangestellten "s"). Generell ist dieses sehr sinnvoll, da somit nur an einer Stelle je Liste/Subliste das Script gepflegt werden muss. Bei vielen Feldern und mehreren Sublisten erhält man so eine bessere Übersicht.

 

 Hinweise zur Online-Hilfe
 

© 2017 Cortex AG
(letzte Aktualisierung: 12.04.2017)

 Haftungsausschluss 

Impressum    AGB