Inputfelder
QlikView unterstützt einen speziellen Feldtyp, der auch ohne Ausführung eines Skripts geändert werden kann, das Inputfeld.
Dies ist ein besonderes Feld in QlikView, dessen Werte sich auch ohne Ausführung des Skripts jederzeit ändern lassen. Inputfelder können genauso wie andere Felder in Objekten verwendet werden.
Bei der Verwendung von Inputfeldern und der Ausführung des Skripts legt QlikView für jeden Wert eines Inputfeldes einen Platzhalter an, der später durch einen beliebigen Wert ersetzt werden kann. Jedes Feld kann zu einem Inputfeld gemacht werden, indem es in einem inputfield-Befehl gelistet wird, der vor dem LOAD- oder SELECT-Befehl steht, der das Feld einliest.
Werte von Inputfeldern können in Zellen von Listboxen, Tabellenboxen und Tabellen-Diagrammformeln geändert werden. Nur Listboxen und Tabellenspalten, die Inputfelder enthalten, können bearbeitet werden. Wenn Sie die Maus über eine Zelle mit einem editierbaren Wert bewegen, sehen Sie ein Input-Icon. Per Mausklick auf dieses Icon gelangen Sie in den Editiermodus. Mit Hilfe der Pfeil-nach-oben- und Pfeil-nach-unten-Tasten können Sie von einer Zelle zur nächsten wechseln und dabei im Bearbeitungsmodus bleiben. Bei Eingabe neuer Werte werden alle Objekte des QlikView-Dokuments augenblicklich neu berechnet.
In Tabellendiagrammen und Pivottabellen mit Aggregierung in Inputfeldern können trotzdem Eingaben erfolgen. Die Änderung wird anhand vordefinierter Algorithmen (gleichmäßige Verteilung oder proportionale Verteilung) auf die Werte des zugrundeliegenden Inputfeldes angewendet.
Es ist möglich, relative Änderungen anzugeben.
Dabei gilt folgende Syntax (n bezeichnet eine Zahl):
Syntax | Beschreibung |
---|---|
%+n | erhöht den Wert um n % |
%-n | verringert den Wert um n % |
+=n | erhöht den Wert um n |
-=n | verringert den Wert um n |
*=n | multipliziert den Wert mit n |
/=n | dividiert den Wert durch n |
Beispiel:
%+10 erhöht den aktuellen Wert um 10 %.
+=56 erhöht den aktuellen Wert um 56.
*=2 multipliziert den Wert mit 2.
/=2 dividiert den Wert durch 2.
/=0 bedeutet keine Änderung des Werts.
Ferner gibt es eine Reihe von Automation APIs für das Abfragen und Editieren von Werten in Inputfeldern.
Beschränkungen
- Ein berechnetes Feld und Schlüsselfelder können nicht als Inputfelder verwendet werden. Die Inputfeld-Funktionalität wird beim dynamischen Update automatisch deaktiviert.
- Inputfelder eignen sich nicht für große Datenmengen, weil die Daten in Inputfeldern bei Weitem nicht so effizient gespeichert werden wie in normalen Feldern.
- Der Schlüssel zwischen dem Inputfeld und dem logischen Feld muss eindeutig sein und darf keine duplizierten Werte enthalten.
Beispiel für ein Inputfeld
In diesem Beispiel wird ein Inputfeld zu den Daten hinzugefügt und gezeigt, wie Sie die Werte interaktiv aktualisieren können.
-
Laden Sie die folgenden Daten in das Ladeskript.
Inputfield Value;
Table1:
LOAD * INLINE
[
Schlüssel, Attribut, Wert
Bob, Jan, 100
Bob, Feb, 200
Bob, Mar, 300
Kate, Jan, 400
Kate, Feb, 500
Kate, Mar, 600
];
- Nachdem Sie die Daten geladen haben, erstellen Sie eine Table Box und fügen Sie alle drei Felder hinzu.
-
Erstellen Sie ein Tabellendiagramm und fügen Sie Key als Dimension hinzu. Fügen Sie die folgende Formeln hinzu:
- Sum(Value)
- InputSum(Value)
Beide Formeln zeigen den gleichen Wert, aber Sie können nur InputSum(Value) im Tabellendiagramm aktualisieren, nicht Sum(Value).
Sie können jetzt Value interaktiv in der Tabellenbox ändern. Die aggregierten Werte der Formeln im Tabellendiagramm werden entsprechend aktualisiert.
Sie können auch die Werte der Formel InputSum(Value) im Tabellendiagramm aktualisieren. Die zugrunde liegenden Werte werden in der Tabellenbox aktualisiert. Die Änderung wird gleichmäßig an alle Werte verteilt, aber Sie können den Verteilungsmodus in der Funktion InputSum() ändern.