Details zur Objektkonvertierung
Letzte Aktualisierung: 14.10.2026QV2QS verarbeitet eine Reihe von QlikView-spezifischen Funktionen während der Konvertierung.
Ausdrücke
QV2QS übergibt QlikView-Ausdrücke mit minimaler Transformation an Qlik Sense. Die Ausdruckssprache ist weitgehend dieselbe zwischen QlikView und Qlik Sense, sodass die meisten Ausdrücke ohne Änderung funktionieren.
QV2QS wendet die folgenden Transformationen an:
- Gleichheitspräfix — Qlik Sense erfordert ein führendes
=bei Kennzahlenausdrücken und bestimmten Eigenschaftsausdrücken. QV2QS fügt das Präfix bei Bedarf hinzu, wenn der ursprüngliche QlikView-Ausdruck keines enthält. - Kommentar-Entfernung — Ganzzeilenkommentare, die mit
//,#oderREMbeginnen, werden aus Inline-Ausdrücken entfernt. Qlik Sense-Eigenschaftsausdrücke unterstützen die Kommentarsyntax nicht konsistent, daher verhindert das Entfernen Auswertungsfehler. Blockkommentare (/* */) werden nicht entfernt. Inline//Kommentare innerhalb einer Codezeile werden ebenfalls nicht entfernt.
Die folgenden Ausdrucksfunktionen werden unverändert übernommen und funktionieren in Qlik Sense ohne Änderungen:
- Set-Analyse-Ausdrücke (zum Beispiel,
{<Year={2024}>}) - Dollarzeichen-Expansion und Variablenreferenzen (zum Beispiel,
$(vMyVar)) - Verschachtelte
Aggr()Ausdrücke If()Ausdrücke, einschließlich Ausdrücke für bedingte FormatierungPick(),Match()undDual()Muster- Dynamische Dimensionen
Analyse-Anführungszeichensetzung einstellen
QlikView (vor November 2017) behandelte Werte in einfachen Anführungszeichen in Set-Modifikatoren als nicht-groß-/kleinschreibungsempfindliche Suchen, identisch mit Werten in doppelten Anführungszeichen. Qlik Sense behandelt in einfache Anführungszeichen gesetzte Werte als groß-/kleinschreibungsempfindliche Literale. Dieser Unterschied kann Ausdrücke zum Scheitern bringen, die sich auf Platzhalter, Vergleichsoperatoren oder numerische Übereinstimmungen innerhalb von einfachen Anführungszeichen verlassen.
QV2QS scannt alle Objektausdrücke und Variablendefinitionen nach Set-Analyse-Anführungszeichenmustern, die sich in Qlik Sense anders verhalten. Erkannte Muster umfassen einfach zitierte Wildcards ('*US*'), einfach zitierte Vergleichsoperatoren ('>=5'), einfach zitierte Werte in numerischen Feldern und nicht zitierte reine Zeichenfolgenwerte. Die Ergebnisse erscheinen im Expression_Findings-Arbeitsblatt des Excel-Berichts.
QV2QS behebt automatisch einfach zitierte Suchwerte während der Konvertierung. Eine experimentelle Korrektur für nicht-zitierte, einfache Zeichenfolgenwerte ist ebenfalls verfügbar, aber standardmäßig deaktiviert.
- Suchwerte in einfachen Anführungszeichen (standardmäßig aktiviert) werden in doppelte Anführungszeichen umgewandelt:
{<Country={'*US*'}>}wird zu{<Country={"*US*"}>}. Erkannte Suchmuster umfassen Platzhalter (*,?,^), Vergleichsoperatoren, Fuzzy-Suche (~), Ausdruckssuche (=), Suchmodifikatoren (+,-) und zusammengesetzte Suche. Einfach zitierte Werte in numerischen Feldern, die keine Suchsyntax enthalten, werden zur manuellen Überprüfung markiert, aber nicht automatisch korrigiert. - Nicht-zitierte einfache Zeichenfolgenwerte (experimentell, standardmäßig deaktiviert) werden in einfache Anführungszeichen eingeschlossen:
{<Country={USA}>}wird zu{<Country={'USA'}>}. Übergeben Sie--fixUnquotedSetValueszum Aktivieren.
Korrekturen werden nur durch positionellen Ersatz innerhalb von Satzmodifikator-Wertelisten angewendet. Feldnamen, Funktionsnamen und andere Ausdruckstexte werden niemals geändert. Die beiden Korrekturen werden unabhängig voneinander gesteuert. Übergeben Sie --noFixSingleQuotedSearch, um die Korrektur für einfache Anführungszeichen zu deaktivieren. Ergebnisse zu nicht unterstützten Funktionen werden nicht geändert.
Das Expression_Findings Arbeitsblatt und das Executive Summary Dashboard enthalten eine Source Spalte, die angibt, ob jede Feststellung aus einer Variablen-Definition oder einem Diagrammobjekt-Ausdruck stammt. Eine Status-Spalte zeigt an, ob der Befund automatisch behoben wurde, eine manuelle Überprüfung erfordert oder keine automatische Behebung verfügbar ist.
Für die vollständige Liste der erkannten Muster, siehe Analyse. Für die Syntaxreferenz der Mengenanalyse siehe Mengenanalyse in der Qlik Cloud-Hilfe.
QV2QS scannt alle Ausdrucksfelder (Dimensionen, Kennzahlen, Anzeige-Bedingungen, Farbausdrücke, Titel, Berechnungsbedingungen und andere) sowie Variablendefinitionen und das Ladeskript nach nicht unterstützten Funktionen. Erkannte Instanzen sind im Analysebericht aufgeführt.
Die folgenden QlikView-spezifischen Funktionen sind in Qlik Sense nicht verfügbar:
GetCurrentField,GetExtendedPropertyInput,InputSum,InputAvgMsgBoxImage_SizeNoOfReports,ReportComment,ReportId,ReportName,ReportNumber
Für die Liste der erkannten Ladeskriptmuster siehe Analyse.
Zahlenformatierung
QV2QS konvertiert QlikView-Zahlenformatdefinitionen in Qlik Sense-Zahlenformattypen. Der Formattyp wird dem Qlik Sense-Äquivalent zugeordnet, und die benutzerdefinierte Formatzeichenfolge (Fmt), das Dezimaltrennzeichen, das Tausendertrennzeichen und die Dezimalpräzision werden alle unverändert beibehalten. Benutzerdefinierte Formatzeichenfolgen wie #,##0.00;(#,##0.00) oder '$'#,##0 werden unverändert im qFmt Feld übergeben.
Die folgenden QlikView-Formattypen werden zugeordnet:
| QlikView Typ | Qlik Sense Typ |
|---|---|
| Fest, Reell, Ganzzahl | Behoben (F) |
| MONEY | Geld (M) |
| DATE | Datum (D) |
| TIME | Zeit (T) |
| TIMESTAMP | Zeitstempel (ZS) |
| INTERVAL | Intervall (IV) |
Sortieren
QV2QS konvertiert alle QlikView Sortierkriterien in Qlik Sense Entsprechungen. Die folgenden Sortiereinstellungen sind eins zu eins zugeordnet: Sortieren nach Status, Sortieren nach Häufigkeit, Sortieren nach numerischem Wert, Sortieren nach alphabetischer Reihenfolge, Sortieren nach Ladereihenfolge, Sortieren nach Ausdruck (einschließlich des Ausdruckstextes) und Sortieren nach Grauwert.
Für Listbox-Felder wendet QV2QS eine zusätzliche Heuristik an, um die zustandsbasierte Sortierung bei datumsähnlichen Feldern zu unterdrücken. Weitere Informationen finden Sie unter Argumentreferenz.
Visuelle Hinweise und bedingte Farbgebung
QlikView visuelle Hinweise (Schwellenwert-basierte bedingte Farben für Kennzahlen) werden in Qlik Sense Farbausdrücke für Tabellen- und Pivottabellenvisualisierungen umgewandelt. QV2QS generiert verschachtelte If() Ausdrücke mit RGB() oder ARGB() Farbfunktionen, die das ursprüngliche Verhalten für niedrige/normale/hohe Schwellenwerte nachbilden. Sowohl Textfarben- als auch Hintergrundfarbenhinweise werden konvertiert. Visuelle Hinweise in Diagrammvisualisierungen (Balkendiagramm, Liniendiagramm, Kombi-Diagramm und andere) werden nicht konvertiert.
Ausdrucksbasierte Farbgebung
QV2QS konvertiert farbige Ausdrücke pro Dimension und pro Kennzahl (Hintergrundfarbe und Textfarbe) in Qlik Sense Attributausdrücke. Für Tabellen- und Pivottabellen-Visualisierungen bleiben sowohl Hintergrund- als auch Textfarbausdrücke erhalten (cellBackgroundColor und cellForegroundColor). Für Diagrammvisualisierungen werden Ausdrücke für die Hintergrundfarbe von Messwerten in colorByExpression Modus umgewandelt. Dimensionsfarbausdrücke und Maßtextfarbausdrücke werden für Diagrammtypen nicht konvertiert, da Qlik Sense-Diagramme keine Farbattributausdrücke pro Dimension oder Textfarbattribute pro Maß unterstützen.
Für Tabellen- und Pivottabellen-Visualisierungen, wenn kein expliziter Farbausdruck für eine Kennzahl vorhanden ist, aber visuelle Hinweise definiert sind, generiert QV2QS automatisch einen Farbausdruck aus den Schwellenwerten der visuellen Hinweise.
Trendlinien
QlikView-Trendlinien auf Diagramm-Kennzahlen werden in Qlik Sense-Trendlinien umgewandelt. Die folgenden Trendlinientypen werden unterstützt:
- Durchschnittlich, Linear, Exponentiell, Logarithmisch, Potenz
- Polynom (Grad 2, 3 und 4)
Positionslinien
QlikView Referenzlinien auf Diagrammachsen werden in Qlik Sense Referenzlinien konvertiert. Das Etikett, der Werteausdruck, die Farbe, der Linienstil und die Anzeigebedingung (Ausdruck für bedingte Sichtbarkeit) bleiben erhalten. Wenn eine Positionslinie keine Anzeigebedingung hat, ist die Standardsichtbarkeit immer angezeigt. Kombinationsdiagramme unterstützen Referenzlinien sowohl auf der primären als auch der sekundären Achse.
Kombinationsdiagramm-Achsenzuweisung
QV2QS bewahrt QlikView Kombi-Diagramm-Achsenzuweisungen. Jede Kennzahl behält die primäre oder sekundäre Achsenbindung aus dem ursprünglichen QlikView Diagramm bei. Messreihentypen (Balken, Linie, Markierung) bleiben ebenfalls erhalten.
Dimensionsgruppen
QV2QS konvertiert QlikView zyklische Gruppen und Drilldown-Gruppen in Qlik Sense Master-Dimensionen. Zyklische Gruppen werden zu zyklischen Master-Dimensionen. Drill-down-Gruppen werden zu Drill-down-Master-Dimensionen. Diagramme, die eine Gruppen-Dimension referenzieren, sind mit der entsprechenden Master-Dimension in der konvertierten App verbunden.
Schriftartenverwaltung
Qlik Sense unterstützt einen festen Satz von websicheren Schriftarten. QV2QS ordnet QlikView-Schriftarten der nächstverfügbaren Qlik Sense-Schriftart zu. Schriftarten, die nicht zugeordnet werden können, verwenden die Fallback-Schriftart (Source Sans Pro).
Die folgenden QlikView-Schriftarten haben explizite Zuordnungen:
| QlikView Schriftart | Qlik Sense Schriftart |
|---|---|
| Arial, Helvetica, Tahoma, Calibri | Source Sans Pro |
| Segoe UI | Inter |
| Verdana | Open Sans |
| Times New Roman, Times, Georgia | PT Serif |
| Courier New, Consolas | Source Sans Pro |
Benutzerdefinierte Schriftarten, die nicht in der Qlik Sense Schriftarten-Bibliothek enthalten sind, werden auf Source Sans Pro abgebildet.
Monospace-Schriftarten (Courier New, Consolas) werden auf die proportionale Schriftart Source Sans Pro abgebildet. Monospace-Zeichen-Ausrichtung wird nicht beibehalten.
Systemvariablen
QV2QS schließt Systemvariablen aus der konvertierten Variablenliste aus. Diese Variablen werden von der Qlik-Engine verwaltet und müssen nicht in variables.json enthalten sein. Beispiele sind DateFormat, ThousandSep, DecimalSep, TimestampFormat, ErrorMode und NullDisplay.
Systemvariablen, die explizit im Ladeskript gesetzt wurden (zum Beispiel, SET DateFormat='YYYY-MM-DD';), bleiben im Ladeskript erhalten und werden beim Neuladen wirksam. Der Ausschluss gilt nur für die Variablendefinitionen in der konvertierten App, nicht für SET oder LET Anweisungen im Ladeskript.
Benutzerdefinierte Variablen werden konvertiert.
Trellis-Modus
QlikView-Diagramme mit aktiviertem Trellis-Modus (EnablePrimaryDimension) verwenden die erste Dimension als Facettierungsfeld, um ein Gitternetz von Mini-Diagrammen anzuzeigen. Qlik Sense verfügt nicht über einen nativen Trellis-Modus in Standarddiagrammen. QV2QS konvertiert Gitterdiagramme automatisch mithilfe der Qlik Sense Trellis-Sammelbox-Erweiterung (qlik-trellis-container) aus dem Visualisierungs-Bundle.
Während der Konvertierung führt QV2QS die folgenden Schritte aus:
- Erstellt eine Master-Visualisierung — Das ursprüngliche Diagramm wird ohne die Trellis-Dimensionen konvertiert. Für ein Nur-Primär-Trellis wird Dimension 0 entfernt. Wenn das sekundäre Trellis ebenfalls aktiviert ist, werden Dimensionen 0 und 1 beide entfernt. Das verbleibende Diagramm wird als Master-Visualisierung in der App gespeichert.
- Erstellt eine Trellis-Sammelbox — Ein
qlik-trellis-containerObjekt wird auf dem Arbeitsblatt an der ursprünglichen Diagrammposition platziert. Die Sammelbox referenziert die Master-Visualisierung und verwendet die entfernten Dimensionen als Faceting-Felder in ihrer Datendefinition. Wenn sowohl primäre als auch sekundäre Trellis aktiviert sind, enthält die Sammelbox-Datendefinition zwei Fassettierungsdimensionen. - Konfiguriert das Gitternetz — Die Spalten- und Zeileneinstellungen von QlikView werden der Spaltenanzahl der Trellis-Sammelbox und der maximalen Diagrammanzahl zugeordnet. Die maximale Anzahl von Diagrammen wird als Spalten multipliziert mit Zeilen berechnet. Wenn die Kardinalität der Facettierungsdimensionen die Größe des Gitternetzes überschreitet, erhöht QV2QS die maximale Diagrammanzahl, um alle Dimensionswerte aufzunehmen. Für sekundäre Trellis ist die Gesamtkardinalität das Produkt aus den Kardinalitäten der primären und sekundären Dimensionen. Der Wert wird auf das nächste Vielfache der Spaltenanzahl aufgerundet, damit das Gitternetz gleichmäßig gefüllt wird. Diese Erweiterung wird als Diagramm-Anpassung aufgezeichnet.
Die Trellis-Sammelbox verwendet dieselbe qv_id-Zuordnung wie das ursprüngliche Diagramm, sodass es dieselbe Position auf dem Arbeitsblatt einnimmt.
Nur-Primär-Trellis benötigt mindestens zwei Dimensionen (eine für die Trellis-Fassettierung und eine für das Master-Diagramm). Primäres plus sekundäres Trellis erfordert mindestens drei Dimensionen (zwei für Trellis-Faceting und eine für das Master-Diagramm). Diagramme mit weniger Dimensionen als erforderlich werden übersprungen.
Akkumulation messen
Die QlikView-Kennzahlenakkumulation (laufende Summen) wird in Qlik Sense-Akkumulationsmodifikatoren umgewandelt. Die folgenden Akkumulationsmodi werden unterstützt:
- Volle Akkumulation — Der Maßausdruck wird unter Verwendung von
RangeSum()mitAbove()undRowNo()umgeschrieben, um eine laufende Summe über alle Zeilen zu erzeugen. Der ModifikatorfullAccumulationFlag ist auftruemit einemstepsWert von 6 gesetzt. - Schrittakkumulation — Wenn die QlikView-Akkumulationsschrittanzahl größer als 1 ist, verwendet der Kennzahlenausdruck
RangeSum()mitAbove()und der angegebenen Schrittanzahl. Der ModifikatorfullAccumulationFlag ist gesetzt auffalse.
Der generierte Akkumulationsausdruck passt sich dem Feldtyp der Dimension an:
- Numerische Dimensionen — Die Analysebegrenzungen verwenden
Min()undMax()für das Feld. - Textabmessungen — Legen Sie die Analysebegrenzungen fest, verwenden Sie
MinString()undMaxString()für das Feld. - Zweidimensionale Diagramme — Ein
Aggr()Wrapper wird generiert, um die Akkumulation innerhalb des äußeren Dimensionskontexts zu verschachteln.
Wenn Akkumulation angewendet wird, deaktiviert QV2QS den Modus für kontinuierliche Achsen (preferContinuousAxis=false) und setzt nullMode auf connect um eine korrekte visuelle Darstellung zu gewährleisten. Der ursprüngliche Maßausdruck und das Label werden in der base-Eigenschaft des Modifizierers beibehalten.
Registerkarten-Container
QV2QS konvertiert QlikView-Registerkarten-Sammelboxen mithilfe von drei Strategien, abhängig von der Konfiguration und dem Kontext der Sammelbox. In allen Fällen bleiben untergeordnete Objekte auf demselben Qlik Sense Arbeitsblatt wie die Sammelbox.
- Registerkarten-Sammelbox — Eigenständige Sammelboxen mit mehreren Registerkarten, die andere Objekte nicht überlappen, werden in native Qlik Sense Registerkarten-Sammelboxen umgewandelt (
sn-tabbed-container). Jedes Tab-Element wird zu einem Tab innerhalb der Sammelbox. Die Tabulatorreihenfolge folgt der ursprünglichen QlikView Elementreihenfolge. - Pseudo-Registerkarten — Wenn eine Sammelbox mit mehreren Registerkarten andere Objekte überlappt oder in einer anderen Sammelbox verschachtelt ist, flacht QV2QS die Registerkarten in eine Layout-Sammelbox ab. Eine Schaltflächenleiste wird mit einer
action-buttonpro Registerkarte generiert. Jede Schaltfläche setzt eine Navigations-Variable mithilfe einerSetVariableAktion. Anzeigebedingungen für die untergeordneten Objekte (zum Beispiel,=If('$(vCT01Tab)'='1',1,0)) steuern, welcher Registerkarteninhalt sichtbar ist. Es ist jeweils nur eine Registerkarte sichtbar. Die Schaltflächenleiste bildet das Registerkarten-Umschaltverhalten der ursprünglichen QlikView Sammelbox nach. - Layout-Sammelbox — Sammelboxen im Gitternetz-Modus werden in Layout-Sammelboxen umgewandelt (
sn-layout-container).
Einzelobjekt-Container sind vereinfacht. Keine Registerkartenleiste oder Variable wird erstellt. Das einzelne untergeordnete Objekt wird direkt an der Sammelbox-Position mit angewendeter Sammelbox-Anzeigebedingung platziert.
Verschachtelte Container werden bis zu einer Tiefe von 8 Ebenen unterstützt. QV2QS erkennt Zyklen und stoppt die Rekursion, wenn eine Sammelbox einen Zirkelbezug erstellt.
Anzeigebedingungen für die Sammelbox und für einzelne untergeordnete Objekte werden mit einem logischen UND verknüpft. Ein untergeordnetes Objekt ist nur sichtbar, wenn die Sammelbox-Bedingung, die Registerkarten-Variable-Bedingung und die Bedingung des untergeordneten Objekts alle als wahr ausgewertet werden.
Bedingungen anzeigen
Die QlikView-Anzeigebedingungen für einzelne Objekte bleiben erhalten. Qlik Sense unterstützt Anzeigebedingungen nicht direkt auf Visualisierungsobjekten. QV2QS umschließt Objekte, die Anzeigebedingungen haben, in einer Einzelkind-Layout-Sammelbox und wendet die Bedingung als condition Eintrag auf die Sammelbox an. Objekte, die sich bereits in einer Layout-Sammelbox befinden (aufgrund von Überlappung), erhalten die Bedingung direkt auf dem Sammelbox-Eintrag.
Wenn eine Anzeigebedingung als falsch ausgewertet wird, bleibt die Layout Sammelbox an der Gitternetzposition, zeigt aber keinen Inhalt an. Die ausgeblendete Sammelbox wird nicht reduziert oder führt dazu, dass benachbarte Objekte neu angeordnet werden. Sowohl im dynamischen Gitternetz- als auch im festen Zeichenflächenmodus hinterlässt das ausgeblendete Objekt leeren Raum an der ursprünglichen Position. Das Leerraumverhalten entspricht QlikView, wobei ausgeblendete Objekte ebenfalls Leerraum hinterlassen.
Alternative Zustände
QV2QS bewahrt alternative Zustandszuweisungen. Objekte, die an einen alternativen Zustand in QlikView gebunden sind, behalten dieselbe Zustandsbindung in Qlik Sense bei. Bundesstaaten-Namen werden exakt beibehalten. QV2QS erstellt die erforderlichen alternativen Zustände in der Qlik Cloud App während der Bereitstellung. Verweise auf alternative Zustände in Set-Analyse-Ausdrücken (zum Beispiel, {[State2]<Year={2024}>}) werden unverändert durchgereicht und funktionieren in Qlik Sense ohne Änderung.
Im Nur-Lokal-Modus (--unbuildOnly) werden alternative Zustandsnamen in cloud/alternate_states.json im Projektunterordner (zum Beispiel <outputDir>/Sales/cloud/alternate_states.json) geschrieben. Die Zustände müssen manuell oder mit dem qlik app build Tool erstellt werden, wenn die Ausgabe in einem Qlik Cloud Mandanten bereitgestellt wird.
Objektaktionen
QV2QS konvertiert Aktionen auf Schaltflächen (BU, BT) und Textobjekten (TX). Textobjekte, die Aktionen enthalten, werden zu Aktionsschaltflächen hochgestuft (action-button). Unterstützte Aktionstypen umfassen Navigation, SetVariable, SelectField, und andere, die in Konversionsergebnisse dokumentiert sind.
Aktionen für andere Objekttypen (Diagramme, Listenfelder, Schieberegler und Container) werden nicht konvertiert. QlikView unterstützt OnActivate Aktionen für jeden Objekttyp, aber QV2QS parst Aktionen nur aus Schaltflächen- und Textobjekt-XML. Nicht-Makro-Aktionen (SetVariable, SelectField, Navigation), die an Diagramme, Listenfelder oder andere Nicht-Schaltflächen-Objekte angehängt sind, werden während der Konvertierung verworfen und erscheinen nicht im Konvertierungsbericht. Um verworfene Aktionen zu finden, durchsuchen Sie die PRJ-XML-Dateien nach <Actions> Elementen in Nicht-Schaltflächen-Objektdefinitionen.
Der Lückenscanner erkennt Makroaufrufe über alle Objekttypen hinweg für Berichterstellungszwecke. Makro-Querverweise im Analyse-Arbeitsblatt spiegeln alle Objekte wider, nicht nur Schaltflächen. Nicht-Makro-Aktionstypen auf Nicht-Schaltflächen-Objekten werden nicht gemeldet.
Berechnungsbedingungen
Berechnungsbedingungen werden für die folgenden Visualisierungstypen beibehalten: Balkendiagramm, Boxplot, Kombi-Diagramm, Anzeige, Liniendiagramm, Marimekko-Diagramm, Kreisdiagramm, Streudiagramm, Matrixdiagramm, Pivottabelle, Tabelle, Treemap und Wasserfalldiagramm.
Der Bedingungsausdruck und die benutzerdefinierte Fehlermeldung (der Text, der Benutzern angezeigt wird, wenn die Bedingung nicht erfüllt ist) werden beide auf die Hyperwürfeldefinition angewendet. Wenn das ursprüngliche QlikView Objekt keine benutzerdefinierte Meldung hat, zeigt Qlik Sense die Standardmeldung für die Berechnungsbedingung an.
Visualisierungstypen, die nicht in der obigen Liste aufgeführt sind (einschließlich trichterdiagramm, Netzdiagramm und KPI), erhalten keine Berechnungsbedingung. Wenn ein QlikView-Objekt eine Berechnungsbedingung hat und der Ziel-Visualisierungstyp die Funktion nicht unterstützt, werden sowohl die Bedingung als auch die Meldung stillschweigend verworfen.