Editor für Datenquellenabfragen

Erstellen Sie Datenquellenabfragen für Tabellen- und Diagramm-Widgets, um bestimmte Daten aus einer Datenbank auszuwählen. Abfragen werden in der Form eines Datenbankfelds aufgebaut, gefolgt vom Zeichen „=“ und einem Operator, einer Zahl oder einer Zeichenfolge:

database_string=my string
database_number=1234
database_numger=BETWEEN(3, 6)

Die Abfragen können durch spezifischen JavaScript-Code erweitert werden:

  • Zeit- und Datumsberechnungen mit momentjs

Operators

Operator

Beschreibung

BETWEEN()

Bereich vom Start- bis zum Endwert. Start- und Endwerte sind durch Kommas getrennt

IN()

Durch Kommas getrennte Liste von Zahlen oder Zeichenfolgen, mit denen verglichen werden soll

GT()

Größer als der Wert

LT()

Wert, der kleiner ist als

NOT()

Negation eines Ausdrucks

AND()

Liste von durch Kommas getrennten Ausdrücken. Alle müssen erfüllt sein

OR()

Liste von durch Kommas getrennten Ausdrücken. Mindestens einer muss erfüllt sein

NULL()

Prüft, ob ein Wert NULL ist

Beispiele

Alle Datensätze mit einem Gehalt von mehr als 40000 auswählen:

salary=GT(40000)

Wähle alle Datensätze aus, deren Namen nicht James, John oder Joe lauten:

name=NOT(IN(James%2CJohn%2CJoe))

Alle Datensätze mit einer nicht-NULL-Kunden-ID auswählen:

customerId=NOT(NULL())

Kommas in Argumenten sollten mit einem Escape-Zeichen versehen werden:

. -> %2C

Dies ist erforderlich, wenn verschachtelte Operatoren wie im obigen Beispiel verwendet werden.

Beispiele mit Moment.js

In den folgenden Beispielen wird `params.interval` über ein Datumsauswahl-Widget festgelegt

Wähle nur Datensätze mit einem Datum aus, das zwischen dem Start- und Enddatum/-zeit liegt, die von einem Datumsauswahl-Widget bereitgestellt werden. „begin“, „end“ und „format()“ werden aus der momentjs-Bibliothek verwendet:

date=BETWEEN(${interval(params.interval).begin.format()}, ${interval(params.interval).end.format()})

Wählen Sie Datensätze aus dem Vorjahr aus:

year=${interval(params.interval).begin.subtract(1, 'years').format('YYYY')}

Abfrage des gleichen Monats ein Jahr zuvor, wobei der Monat ohne führende Nullen formatiert wird:

month=${interval(params.interval).begin.subtract(params.sub, 'years').format('M')}

Abfrage des Wochentags (0–6):

weekday=${interval(params.interval).begin.day()}

Parameterabhängige Abfrage

Soll eine Abfrage nur dann angewendet werden, wenn ein bestimmter Parameter gesetzt ist (z. B. bei einer Filter-Matrix-Abfrage), können sowohl die Spalte als auch die Abfragezeichenfolge in if-Anweisungen eingeschlossen werden:

${filterMatrix.device_name ? 'device_name' : 'none'}=${filterMatrix.device_name ? filterMatrix.device_name : ''}

Wenn der Parameter „filterMatrix.device_name“ definiert ist, wird die Spalte auf „device_name“ und die Abfragezeichenfolge auf „filterMatrix.device_name“ gesetzt:

device_name=filterMatrix.device_name

Ist derselbe Parameter nicht definiert, wird die resultierende Abfrage für die wahrscheinlich nicht vorhandene Spalte „none“ konfiguriert:

 none=''