Um Variablen oder Felder in einer Qlik Extension zu nutzen müssen in der define ng!$q nutzen um innerhalb der Proberties auf die Promises von Qlik zugreifen zu können.
Beispiel:
define(["qlik", "jquery",'ng!$q'],
function ( qlik, $, $q) {
'use strict';
// Your Code
}
Funktion um die Variablenliste zu erhalten:
var getVariableList = function(){
var defer = $q.defer();
app.getList( 'VariableList', function ( items ) {
defer.resolve( items.qVariableList.qItems.map( function ( item ) {
return {
value: item.qName,
label: item.qName
}
} )
);
} );
return defer.promise;
}
Sie müssen beim setzen von Variablen entscheiden ob der Wert als ZAHL oder STRING gespeichert werden soll. Da in HTML aber immer alles erst mal STRING ist können Sie folgende kleine Funktion nutzen um Zahlen auch als zahlen zu speichern.
Es kommt immer wieder vor, das man für die Vorbelegung von Werten wie (z.B. min max Berechnung für die Einstellung eines Schiebregelers) nur eine einmalige Berechnung benötigt.
Erstellt man mit Hilfe des genericObjects eine Berechnung, wird diese allerdings bei jeder Selektion erneut ausgeführt. Dies kann zu unerwünschten Flackereffekten führen.
Um dieses Problem zu lösen können Sie das Session Objekt nach der Berechnung einfach entfernen, somit wird die Berechnung nur einmal ausgeführt.
Hier mal eine Liste der Extensions welche mir bis her keine Probleme beim Einsatz bereitet haben und welche Sense um viele wertvolle Funktionen ergänzen:
Alternate States (Alternative Auswahlräume für Qlik Sense).
Der Partner Akquinet stellt diese Extension kostenlos zur Verfügung. Es handelt sich hierbei im Gegensatz zu den anderen Extensions zu diesem Thema um eine funktionierende Variante. https://github.com/q2g/q2g-ext-alternatestates
Customer Report (Self Service Pivotierung)
Climber Custom Report ist eine Extension die Ihnen erlaubt eine Pivottabelle zu erstellen, in welcher der Endanwender die Dimension und Formel für die Tabelle selber auswählen kann ohne in den Berabeitungsmodus zu wechseln.
http://branch.qlik.com/#!/project/57cd3f80cc816d99d6cbd4b6
Variablen Eingabe an der Oberfläche
Für die Eingabe von Variablen ist die bekannteste Extension „qsVariable“ diese Extension ist auch eine der ersten Certified Extension. Die Extension finden Sie hier:
http://branch.qlik.com/#!/project/56728f52d1e497241ae697f8
Ich möchte Sie an dieser Stelle auch auf meine eigene Extension zu diesem Thema aufmerksam machen, bnQSInput diese erhalten Sie hier:
http://branch.qlik.com/#!/project/5ac921580f9f4d1cc1e0c168
Vorteile meiner Extension vs qsVariable: MultiSelect / kann mit führenden Nullen umgehen / RangeSlider / Vorbelegung der Werte durch ein Feld etc.
Eine entsprechende Certified Extension werde ich für diese in kürze beantragen.
Beachten Sie hierbei bitte die entsprechende Release Nummer in der URL.
(Weitere Beispiele und Hilfe folgen)
# Mashups
Der einfachste Einstieg in die Welt der Mashups ist der Einsatz von jQuery UI. Mit Hilfe dieses Frameworks können Sie schnell und einfach Benutzergeführte Analysen erstellen. Die Komponenten welche über jQuery bereit gestellt werden lassen sich sehr einfach mit Qlik Sense verknüpfen. Ein entsprechendes Training finden Sie hier Link, der Kurs ist entgegen der Beschreibung in der Regel in Deutsch.
Um eine Formelsammlung sinnvoll zu nutzen empfehle ich folgenden Weg:
Aufbau der Excel Datei:
Name
Value
Desc
usedTable
sumLineSalesAmount
sum(LineSalesAmount)
Summe der Umsätze
Facts
sumLineCosts
sum(LineCostOfGoods)
Summe der Kosten
Facts
sumCataloguePrice
sum(CataloguePrice)
Summe der
Products
Die Formelsammlung würde ich zu einem gesamten Datenmodell erstellen, die letzte Spalte in der oberen Zeile kann dann genutzt werden um nur für die im Projekt benutzen Tabellen die Formeln zu generieren.
Sprich die letzte Zeile wird dann nicht geladen und dient nur der Einschränkung.
Zum Einschränken nutze ich in der Regel ein Where usedTable =’Facts‘ or usedTable = ‚Products‘ etc.
Die restlichen Felder würde ich alle laden, so können Sie diese als Tabelle in QlikView angezeigt werden, so sind diese direkt auch Dokumentiert und für jeden Benutzer schnell einsehbar.
Um die Daten aus der geladen Tabelle zu generieren benötigen Sie dann folgendes Script:
Variables:
LOAD
Name,
Value,
Desc
FROM
[$(Path)Expressions.xls]
(biff, embedded labels, table is Sheet1$);
;
FOR i=0 TO NoOfRows('Variables')
LET vVar = Peek('Name', $(i), 'Variables');
LET vVal = Peek('Value', $(i), 'Variables');
LET '$(vVar)' = '$(vVal)';
NEXT
Dieses Script sollten Sie dann auslagern und immer wieder per include im Script einbinden, oder Sie nutzen den Weg über eine QVD.
Legen Sie dazu einfach einen Ordner an der wie Ihre Datei heißt und fügen Sie dem Namen „-prj“ an, siehe Beispiel:
2. Variablen auslesen und in eine qvd speichern:
VariableNames:
LOAD Name AS VariableName
FROM [MeineApplikation-prj\AllProperties.xml]
(XmlSimple, Table is [AllProperties/VariableProperties/VariableProperties]);
FOR i=0 TO NoOfRows('VariableNames')
LET varName = Peek('VariableName', $(i), 'VariableNames');
LET varValue = $(varName);
Variables:
LOAD
'$(varName)' AS VariableName,
'$(varValue)' AS VariableValue
AutoGenerate 1;
NEXT
STORE Variables INTO Variables.qvd (QVD);
DROP Tables VariableNames, Variables;
3. Variablen aus qvd auslesen
Variables:
LOAD
VariableName,
VariableValue
FROM Variables.qvd (qvd);
FOR i=0 TO NoOfRows('Variables')
LET vVar = Peek('VariableName', $(i), 'Variables');
LET vVal = Peek('VariableValue', $(i), 'Variables');
LET '$(vVar)' = '$(vVal)';
NEXT
QlikView liest das Load Skript innerhalb eines Registerblattes von Oben nach unten ein und die Registerblätter von links nach rechts.
Nachdem das Skript eingelesen wurde, wird dies allerdings nicht, in der exakten Lesereihenfolge ausgeführt. Innerhalb einzelner Blöcke wird hier das Script von unten nach oben verarbeitet.
Ein Block endet immer nach dem jeweiligen FROM oder RESIDENT Befehl.
Hier einige kleine Beispiele wie QlikView das Script abarbeitet:
Der Begriff wurde von Herbert Spencer Jennings und W. Holmes geprägt.Demnach wird ein Organismus durch Antrieb/Motivation sensibel für Hinweisreize, um sich die als angenehm eingestufte Entspannung zu verschaffen. Um zu dieser Entspannung, also zu diesem Ziel zu gelangen, werden vom Organismus mehrere Wege ausprobiert (Versuch). Erfolglose Versuche werden nach Edward Lee Thorndike als Irrtum (error) bezeichnet; bei erfolgreichen Versuchen wird das Erreichen des Zieles als Wirkung bezeichnet. …
…
In der Informatik finden sich viele algorithmische Verfahren, die auf dem Versuch-und-Irrtum-Ansatz beruhen. Dazu gehören klassische Backtracking–Algorithmen, die rekursiv eine Menge von möglichen Lösungen durchsuchen, bis eine richtige Lösung gefunden wird.
Dieses Verfahren lässt sich auch auf QlikView übertragen und Sie haben sogar noch den großen Vorteil das ein Irrtum hier meist nur kleinere Auswirkungen hat wenn Sie folgende Dinge beherzigen: weiterlesen
In vielen Büchern und in vielen Schulungen bekommt man den Tipp Felder entsprechend zu kennzeichnen, was auch nicht verkehrt ist. Allerdings wird hier in der Regel den Feldnamen ein entsprechendes Zeichen vorangestellt und das ist der Punkt den ich als nicht sinnvoll erachte. Ich gehe hier nur einmal von Feldnamen und Variablennamen innerhalb von QlikView aus. Dort findet man oft Konstrukte wie
Sales_Name Sales_Nachname Sales_usw.
für Felder oder
vVariable1 vHeute vUsw
Das Problem bei dieser Schreibweise ist das Sie diese Variablen nicht mehr durch drücken der entsprechenden Buchstaben erreichen. Drücken Sie z.B. die Taste „N“ in einer Feldliste werden Sie nicht bei Sales_Name landen obwohl Sie nach einem Namen suchen.
Icon Fonts sind Schriftarten die nur kleine Bilder sogenannte Icons statt Buchstaben, Ziffern etc. darstellen, ähnlich wie die bekannte Schriftart Webdings die man aus Word kennt.
Vorteile dieser Methode:
voll skalierbar
in der Farbe über Schriftfarbe anpassen
kleiner als eine Reguläre Bilddateien in entsprechenden Größen
es gibt bereits fertige Font Icon Sets im Web hier zwei der bekanntesten Beispiele:
Wie sie die entsprechenden Schriftarten per CSS einbinden erfahren Sie auf den jeweiligen Seiten. Sie können aber anhand von SVG Dateien auch eigene Icon Fonts erstellen, hierzu gibt es im Web entsprechende Generatoren:
Beachten Sie das Sie auf den meisten Seiten ihre Icons automatisch für andere freigeben, um den Service nutzen zu können. Sie können also auch auf diesen Seiten weitere Icon Fonts herunterladen.
Nutzen Sie allerdings nicht zu viele verschiedene Webfonts auf einmal, da sonst wieder ihre Ladezeiten steigen. Der Vorteil dieser Methode liegt nämlich darin, dass Sie statt vieler kleiner Dateien nur eine laden was eleganter und schneller ist, hinzu kommen die oben genannten Vorteile. weiterlesen