qlik Sense Mashup Helper Toolkit Public

Leider ist das ToolKit mit den aktuellen Sense Versionen nicht mehr kompatibel! Der Code dient aber immer noch als Beispiel wie man Selektionen Applikation übergreifend ausführt.

Eine neue Version wird sicher wieder erscheinen 🙂

https://github.com/Ac1d0n3/bnQsmTools –

screenCast

Ab heute steht mein Mashup Framework unter Github zum download bereit und wird zukünftig auch darüber aktualisiert. Es sind auch schon geplante Funktionen vom Namen enthalten.

Für Verbesserungen / Vorschläge bin ich immer zu haben.

Formelsammelung mit einer Excel Datei

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.

siehe auch:

Rolling 12 Month

Hier mal ein Beispiel wie man mit Variablen und Set Analysis abhängig von der Auswahl im Kalender 1 Jahr zurück geht.

  1. Variablen mit Gleichheitszeichen anlegen!

vYTDStartDate =AddMonths(min({1<Jahr=$::Jahr,Monat=$::Monat>} Datum), (year(max({1<Jahr=$::Jahr,Monat=$::Monat>} Datum)) – year(min({1<Jahr=$::Jahr,Monat=$::Monat>} Datum)) + 1) * – 12)

vYTDEndDate =AddMonths(max({1<Jahr=$::Jahr,Monat=$::Monat>} Datum), (year(max({1<Jahr=$::Jahr,Monat=$::Monat>} Datum)) – year(min({1<Jahr=$::Jahr,Monat=$::Monat>} Datum)) + 1) * – 12)

vYTDPeriod =‘>=‘ & Year(vYTDStartDate) & num(Month(vYTDStartDate), ’00‘) & ‚<=‘ & Year(vYTDEndDate) & num(Month(vYTDEndDate), ’00‘)

  1. Vergleich der Kennzahlen erfolgt dann mit folgender Formel:

sum({<Jahr=, Monat=, JahrMonat={„$(=vYTDPeriod)“}>} [Kennzahl])

Variablen von einer Datei in die andere verschieben:

1. Projektordner erstellen:

create Prj Folder

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

Cycle Groups with Sense Mashup V1

CaptureCycle
CaptureCycle2

HTML eine Selectbox welche die Werte enthält:

<div class="qvOverlay" style="right:10px"> <i class="fa fa-refresh"></i> 
<select class="changeDimension" id="vDimensionField"> 
<option value="MonthYear"> Month Year</option> 
<option value="Year"> Year </option> 
<option value="QuarterYear"> Quarter Year </option> 
<option value="Month"> Month </option> 
<option value="CompanyName"> Customer </option> 
<option value="ProductName"> Product </option> </select>
</div>

CSS-Code:

bei Bedarf anpassen Overlay hat bei mir einen höheren z-index als das Chart und ist absolut rechts oben ausgerichtet

JS (man kann über die ID den VariablenNamen mitgeben):

$( ".changeDimension" ).change(function() { 
var str = ""; 
$('#' + $(this).attr('id')+" option:selected" ).each(function() { 
  str += $( this ).val(); }); 
  app.variable.setStringValue($(this).attr('id'), str); 
});

Qlik:

1 Variable vDimensionField
1 Chart was als Dimension =[$(vDimensionField)] enthält fertig 🙂

Wie QlikView das Script liest

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:

  weiterlesen

Sinnvolle Namenskonventionen

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.

weiterlesen

Icon Fonts – performante Bilder fürs Web

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:

https://www.google.de/#q=icon+font+generator

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

erster Trainingsbereich fertig

So der erste Trainingsbereich ist nun fertig „QlikView Designer“, es wird hier in Zukunft sicherlich noch weitere Beiträge geben. Aber die wichtigsten Ergänzungen sind soweit fertig. Folgende Beiträge sind jetzt verfügbar:

Designer

Der nächste Bereich der in Arbeit ist der Developer Bereich, dort sind folgende Beiträge schon verfügbar:

Developer

  • gemischte Feldtypen
  • Tipps und Tricks für den Einstieg
Senior Technical Trainer
Thomas Lindackers
Senior Technical Trainer @ Qlik
04.2017 - Heute
Thomas Lindackers
Senior Technical Trainer
04.2017 - heute
Technical Trainer
Thomas Lindackers
Technical Trainer @ Qlik
10.2014 - 04.2017
Thomas Lindackers
Technical Trainer
10.2014 - 04.2017
Support Engineer
Thomas Lindackers
Tech. Support Engineer @ Qlik
07.2012 - 10.2014
Thomas Lindackers
Technical Support Engineer
07.2012 - 10.2014
Service Desk Analyst
Thomas Lindackers
Service Desk Analyst @ Qlik
10.2010 - 07.2012
Thomas Lindackers
Service Desk Analyst
10.2010 - 07.2012
at Qlik 1 - copy
alias Linse
Bloghoster / Entwickler / Fotograf
Thomas Lindackers
Senior Technical Trainer