Objektkonverteringsdetaljer
Senast uppdaterad: 2026-10-14QV2QS hanterar en rad QlikView-specifika funktioner under konverteringen.
Uttryck
QV2QS skickar QlikView-uttryck vidare till Qlik Sense med minimal omvandling. Uttrycksspråket är till stor del gemensamt för QlikView och Qlik Sense, så de flesta uttryck fungerar utan ändring.
QV2QS tillämpar följande transformationer:
- Lika med-prefix — Qlik Sense kräver ett inledande
=i måttuttryck och vissa egenskaputtryck. QV2QS lägger till prefixet där det behövs om det ursprungliga QlikView-uttrycket inte innehåller ett. - Kommentarsborttagning — Hela rader med kommentarer som börjar med
//,#ellerREMtas bort från inline-uttryck. Qlik Sense egenskapsuttryck stöder inte konsekvent kommentarsyntax, så att borttagning förhindrar utvärderingsfel. Blockkommentarer (/* */) tas inte bort. Infogade//kommentarer inom en kodrad tas inte heller bort.
Följande uttrycksfunktioner överförs ordagrant och fungerar i Qlik Sense utan ändring:
- Mängdanalysuttryck (till exempel,
{<Year={2024}>}) - Dollarteckenexpansion och variabelreferenser (till exempel,
$(vMyVar)) - Kapslade
Aggr()uttryck If()uttryck, inklusive uttryck för villkorsstyrd formateringPick(),Match()ochDual()mönster- Beräknade dimensioner
Set-analyscitering
QlikView (före november 2017) behandlade enkelt citerade värden i uppsättningsmodifierare som skiftlägesokänsliga sökningar, identiska med dubbelt citerade värden. Qlik Sense behandlar enkelt citerade värden som skiftlägeskänsliga literaler. Denna skillnad kan bryta uttryck som förlitar sig på jokertecken, jämförelseoperatorer eller numerisk matchning inom enkla citattecken.
QV2QS söker igenom alla objekteuttryck och variabeldefinitioner efter mönster för citering i mängdanalys som beter sig annorlunda i Qlik Sense. Identifierade mönster inkluderar enkelt citerade jokertecken ('*US*'), enkelt citerade jämförelseoperatorer ('>=5'), enkelt citerade värden på numeriska fält, och ociterade rena strängvärden. Resultaten visas i Expression_Findings arbetsblad i Excel-rapporten.
QV2QS åtgärdar automatiskt enkelt citerade sökvärden under konverteringen. En experimentell fix för oomslutna strängvärden utan citattecken är också tillgänglig men inaktiverad som standard.
- Söktermer inom enkla citattecken (aktiverat som standard) konverteras till dubbla citattecken:
{<Country={'*US*'}>}blir{<Country={"*US*"}>}. Identifierade sökmönster inkluderar jokertecken (*,?,^), jämförelseoperatorer, sökning med jokertecken (~), uttryckssökning (=), sökmodifierare (+,-) och sammansatt sökning. Enkelciterade värden på numeriska fält som inte innehåller söksyntax flaggas för manuell granskning men åtgärdas inte automatiskt. - Ocitaterade rena strängvärden (experimentell, inaktiverad som standard) omsluts av enkla citattecken:
{<Country={USA}>}blir{<Country={'USA'}>}. Ange--fixUnquotedSetValuesför att aktivera.
Fixar tillämpas med positionsbaserad ersättning endast inom listor med angivna modifieringsvärden. Fältnamn, funktionsnamn och annan uttryckstext ändras aldrig. De två korrigeringarna styrs oberoende. Ange --noFixSingleQuotedSearch för att inaktivera fixen för enkelcitat. Resultat för funktioner som inte stöds ändras inte.
Arbetsbladet Expression_Findings och instrumentpanelen för sammanfattningen innehåller en Source-kolumn som anger om varje fynd härrör från en variabeldefinition eller ett diagramobjektuttryck. En Status-kolumn visar om fyndet åtgärdades automatiskt, behöver manuell granskning, eller om ingen automatisk åtgärd är tillgänglig.
För en fullständig lista över identifierade mönster, se Analys. För referens om syntax för mängdanalys, se Mängdanalys i Qlik Cloud-hjälpen.
QV2QS skannar alla uttrycksfält (dimensioner, mått, visningsvillkor, färguttryck, titlar, beräkningsvillkor och andra) samt variabeldefinitioner och laddningsskriptet efter funktioner som inte stöds. Identifierade instanser listas i analysrapporten.
Följande QlikView-specifika funktioner är inte tillgängliga i Qlik Sense:
GetCurrentField,GetExtendedPropertyInput,InputSum,InputAvgMsgBoxImage_SizeNoOfReports,ReportComment,ReportId,ReportName,ReportNumber
För listan över identifierade laddningsskriptmönster, se Analys.
Nummerformatering
QV2QS konverterar QlikView-nummerformatdefinitioner till Qlik Sense-nummerformattyper. Formattypen mappas till motsvarande i Qlik Sense, och den anpassade formatsträngen (Fmt), decimalavgränsaren, tusenavgränsaren och decimalprecisionen bevaras alla oförändrade. Anpassade formatsträngar som #,##0.00;(#,##0.00) eller '$'#,##0 skickas igenom som de är i qFmt fältet.
Följande QlikView formattyper mappas:
| QlikView typ | Qlik Sense typ |
|---|---|
| FIX, REAL, HELTAL | Fast (F) |
| MONEY | Pengar (M) |
| DATE | Datum (D) |
| TIME | Tid (T) |
| TIMESTAMP | Tidsmarkör (TM) |
| INTERVAL | Intervalldata (IV) |
Sortering
QV2QS konverterar alla QlikView sorteringskriterier till Qlik Sense motsvarigheter. Följande sorteringsinställningar mappas en-till-en: sortera efter tillstånd, sortera efter frekvens, sortera efter numeriskt värde, sortera efter alfabetisk ordning, sortera efter inläsningsordning, sortera efter uttryck (inklusive uttryckstexten), och sortera efter gråskala.
För listrutefält tillämpar QV2QS en ytterligare heuristik för att undertrycka tillståndsbaserad sortering på datumliknande fält. För mer information, se Argumentreferens.
Visuella ledtrådar och villkorlig färgning
QlikView visuella ledtrådar (tröskelbaserade villkorliga färger på mått) konverteras till Qlik Sense färguttryck för tabell- och pivottabellvisualiseringar. QV2QS genererar kapslade If() uttryck med RGB() eller ARGB() färgfunktioner som replikerar det ursprungliga låg/normal/hög tröskelbeteendet. Både textfärgssignaler och bakgrundsfärgssignaler konverteras. Visuella ledtrådar på diagramvisualiseringar (stapeldiagram, linjediagram, kombinationsdiagram och andra) konverteras inte.
Uttrycksbaserad färgning
QV2QS konverterar färguttryck per dimension och per mått (bakgrundsfärg och textfärg) till Qlik Sense-attribututtryck. För tabell- och pivottabellvisualiseringar bevaras både bakgrunds- och textfärgsuttryck (cellBackgroundColor och cellForegroundColor). För diagramvisualiseringar konverteras uttryck för bakgrundsfärg för mått till colorByExpression läge. Dimensionsfärguttryck och måtttextfärguttryck konverteras inte för diagramtyper eftersom Qlik Sense-diagram inte stöder färgattribututtryck per dimension eller textfärgattribut per mått.
För tabell- och pivottabellvisualiseringar, om inget explicit färguttryck finns på ett mått men visuella ledtrådar är definierade, genererar QV2QS automatiskt ett färguttryck från tröskelvärdena för visuella ledtrådar.
Trendlinjer
QlikView trendlinjer på diagrammått konverteras till Qlik Sense trendlinjer. Följande trendlinjetyper stöds:
- Genomsnitt, Linjär, Exponentiell, Logaritmisk, Potens
- Polynom (grad 2, 3 och 4)
Referenslinjer
QlikView referenslinjer på diagramaxlar konverteras till Qlik Sense referenslinjer. Etiketten, värdeuttrycket, färgen, linjestilen och visningsvillkoret (villkorligt synlighetsuttryck) bevaras. Om en referenslinje inte har något visningsvillkor, är standardvisningen alltid att den visas. Kombinationsdiagram stöder referenslinjer på både primära och sekundära axlarna.
Kombinerat diagram axeltilldelning
QV2QS bevarar QlikView-kombinationsdiagrammets axeltilldelningar. Varje mått behåller den primära eller sekundära axelbindningen från det ursprungliga QlikView-diagrammet. Mätserietyper (stapel, linje, markör) bevaras också.
Dimensionsgrupper
QV2QS konverterar QlikView cykliska grupper och drill-down-grupper till Qlik Sense huvuddimensioner. Cyklogrupper blir cykliska masterdimensioner. Detaljeringsgrupper blir detaljeringshuvuddimensioner. Diagram som refererar till en grupp-dimension är kopplade till motsvarande huvud-dimension i den konverterade appen.
Teckensnittshantering
Qlik Sense stöder en fast uppsättning webbsäkra typsnitt. QV2QS mappar QlikView-teckensnitt till det närmaste tillgängliga Qlik Sense-teckensnittet. Teckensnitt som inte kan mappas använder reservteckensnittet (Source Sans Pro).
Följande QlikView-teckensnitt har explicita mappningar:
| QlikView teckensnitt | Qlik Sense teckensnitt |
|---|---|
| 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 |
Anpassade teckensnitt som inte finns i Qlik Sense-teckensnittsbiblioteket mappas till Source Sans Pro.
Monospace-typsnitt (Courier New, Consolas) mappas till det proportionella typsnittet Source Sans Pro. Monospace-teckenjustering bevaras inte.
Systemvariabler
QV2QS utesluter systemvariabler från listan över konverterade variabler. Dessa variabler hanteras av Qlik-motorn och behöver inte inkluderas i variables.json. Exempel inkluderar DateFormat, ThousandSep, DecimalSep, TimestampFormat, ErrorMode, och NullDisplay.
Systemvariabler som har ställts in explicit i laddningsskriptet (till exempel, SET DateFormat='YYYY-MM-DD';) bevaras i laddningsskriptet och träder i kraft vid omladdning. Undantaget gäller endast variabeldefinitionerna i den konverterade appen, inte till SET eller LET satser i laddningsskriptet.
Användardefinierade variabler konverteras.
Trellisläge
QlikView-diagram med trellis-läge aktiverat (EnablePrimaryDimension) använder den första dimensionen som ett fasetteringsfält för att visa ett rutnät med minidiagram. Qlik Sense har inte ett inbyggt trellisläge på standarddiagram. QV2QS konverterar trellisdiagram automatiskt med hjälp av Qlik Sense-behållarkomplementet för trellis (qlik-trellis-container) från Visualization Bundle.
Under konverteringen utför QV2QS följande steg:
- Skapar en originalvisualisering — Det ursprungliga diagrammet konverteras utan rutnätsdimensionerna. För endast primär spaljé, dimension 0 tas bort. När sekundär trellis också är aktiverad, tas både dimension 0 och 1 bort. Det återstående diagrammet sparas som en originalvisualisering i appen.
- Skapar en trellisbehållare — Ett
qlik-trellis-containerobjekt placeras på arket vid den ursprungliga diagrampositionen. Behållaren refererar till originalvisualiseringen och använder de borttagna dimensionerna som fasetteringsfält i sin datadefinition. När både primär och sekundär trellis är aktiverade, innehåller behållarens datadefinition två fasetteringsdimensioner. - Konfigurerar rutnätet — QlikView-kolumn- och radinställningarna mappa till trellisbehållarens kolumnantal och maximala diagramantal. Det maximala antalet diagram beräknas som kolumner multiplicerat med rader. När kardinaliteten för fasetteringsdimensionerna överskrider rutnätets storlek, ökar QV2QS det maximala antalet diagram för att rymma alla dimensionsvärden. För sekundär trellis är den totala kardinaliteten produkten av kardinaliteterna för den primära och sekundära dimensionen. Värdet avrundas uppåt till närmaste multipel av kolumnantalet så att rutnätet fylls jämnt. Denna expansion registreras som en diagramjustering.
Trellis-behållaren använder samma qv_id-mappning som det ursprungliga diagrammet, så den upptar samma position på arket.
Endast primär trellis kräver minst två dimensioner (en för trellis-facettering och en för huvuddiagrammet). Primär plus sekundär trellis kräver minst tre dimensioner (två för trellis-facettering och en för huvud-diagram). Diagram med färre dimensioner än vad som krävs hoppas över.
Mät ackumulering
QlikView måttackumulering (löpande summor) konverteras till Qlik Sense ackumuleringsmodifierare. Följande ackumuleringslägen stöds:
- Fullständig ackumulering — Måttuttrycket skrivs om med
RangeSum()medAbove()ochRowNo()för att producera en löpande summa över alla rader. ModifierarenfullAccumulationflagga är inställd påtruemed ettstepsvärde på 6. - Stegackumulering — När antalet ackumuleringssteg i QlikView är större än 1, använder måttuttrycket
RangeSum()medAbove()och det angivna stegantalet. ModifierarenfullAccumulationflagga är inställd påfalse.
Det genererade ackumuleringsuttrycket anpassar sig till dimensionens fälttyp:
- Numeriska dimensioner — Ange analysgränser med
Min()ochMax()för fältet. - Textdimensioner — Ange analysgränser med
MinString()ochMaxString()för fältet. - Tvådimensionella diagram — En
Aggr()omslutning genereras för att kapsla ackumuleringen inom den yttre dimensionens kontext.
När ackumulering tillämpas, inaktiverar QV2QS kontinuerligt axelläge (preferContinuousAxis=false) och ställer in nullMode till connect för att säkerställa korrekt visuell återgivning. Det ursprungliga måttuttrycket och etiketten bevaras i modifierarens base egenskap.
Flikbehållare
QV2QS konverterar QlikView flikbehållare med tre strategier beroende på behållarens konfiguration och kontext. I alla fall, underordnade objekt förblir på samma Qlik Sense-ark som behållaren.
- Flikad behållare — Fristående flikbaserade behållare som inte överlappar andra objekt konverteras till inbyggda Qlik Sense flikbaserade behållare (
sn-tabbed-container). Varje flikmedlem blir en flik i behållaren. Tabbordningen följer den ursprungliga QlikView-medlemsordningen. - Pseudoflikar — När en behållare med flera flikar överlappar andra objekt eller är kapslad i en annan behållare, plattar QV2QS ut flikarna till en layoutbehållare. En knapprad genereras med en
action-buttonper flik. Varje knapp ställer in en navigeringsvariabel med enSetVariableåtgärd. Visa villkor för underordnade objekt (till exempel,=If('$(vCT01Tab)'='1',1,0)) styr vilket flikinnehåll som är synligt. Endast en flik är synlig åt gången. Knapplisten återskapar flikväxlingsbeteendet för den ursprungliga QlikView-behållaren. - Layout-behållare — Behållare i rutnätsläge konverteras till layout-behållare (
sn-layout-container).
Enkelobjektbehållare är förenklade. Ingen fliklist eller variabel skapas. Det enskilda underordnade objektet placeras direkt vid behållarens position med behållarens visningsvillkor tillämpat.
Kapslade behållare stöds upp till ett djup av 8 nivåer. QV2QS upptäcker cykler och stoppar rekursion om en behållare skapar en cirkelreferens.
Visningsvillkor på behållaren och på enskilda underordnade objekt sätts samman med logiskt OCH. Ett underordnat objekt är synligt endast när behållarens villkor, flikens variabelvillkor och det underordnade objektets villkor alla utvärderas till sant.
Visa villkor
QlikView visningsvillkor på enskilda objekt bevaras. Qlik Sense stöder inte visningsvillkor direkt på visualiseringsobjekt. QV2QS omsluter objekt som har visningsvillkor i en layout-behållare med ett enda underordnat objekt och tillämpar villkoret som en condition post på behållaren. Objekt som redan finns i en layoutbehållare (på grund av överlappning) får villkoret för behållarposten direkt.
När ett visningsvillkor utvärderas till falskt, förblir layout-behållaren på rutnätspositionen men visar inget innehåll. Den dolda behållaren kollapsar inte eller får intilliggande objekt att flöda om. I både dynamiska rutnät- och fasta duk-lägen, lämnar det dolda objektet tomt utrymme på den ursprungliga positionen. Beteendet för tomma utrymmen matchar QlikView, där dolda objekt också lämnar tomma utrymmen.
Alternativa tillstånd
QV2QS bevarar alternativa tillståndstilldelningar. Objekt bundna till ett alternativt tillstånd i QlikView behåller samma tillståndsbinding i Qlik Sense. Delstatsnamn bevaras exakt. QV2QS skapar de nödvändiga parallella tillstånd i Qlik Cloud-appen under distributionen. Referenser till alternativa tillstånd inom uppsättningsanalysuttryck (till exempel, {[State2]<Year={2024}>}) skickas igenom ordagrant och fungerar i Qlik Sense utan ändring.
I läget Endast lokalt (--unbuildOnly), alternativa tillståndsnamn skrivs till cloud/alternate_states.json i projektets undermapp (till exempel, <outputDir>/Sales/cloud/alternate_states.json). Tillstånden måste skapas manuellt eller med qlik app build verktyget när utdata distribueras till en Qlik Cloud-klientorganisation.
Objektåtgärder
QV2QS konverterar åtgärder på knappar (BU, BT) och textobjekt (TX). Textobjekt som innehåller åtgärder upphöjs till åtgärdsknappar (action-button). Typer av åtgärder som stöds inkluderar navigering, SetVariable, SelectField, och andra dokumenterade i Konverteringsresultat.
Åtgärder på andra objekttyper (diagram, listrutor, skjutreglage och behållare) konverteras inte. QlikView stöder OnActivate åtgärder på alla objekttyper, men QV2QS tolkar åtgärder endast från XML för knapp- och textobjekt. Icke-makroåtgärder (SetVariable, SelectField, navigering) som är kopplade till diagram, listrutor eller andra objekt som inte är knappar tas bort under konverteringen och visas inte i konverteringsrapporten. För att hitta borttagna åtgärder, sök i PRJ XML-filerna efter <Actions> element i objektdefinitioner som inte är knappar.
Gap-skannern upptäcker makroanrop över alla objekttyper för rapporteringsändamål. Makrokorsreferenser i analysarbetsbladet återspeglar alla objekt, inte bara knappar. Åtgärdstyper som inte är makron på objekt som inte är knappar rapporteras inte.
Beräkningsvillkor
Beräkningsvillkor bevaras för följande visualiseringstyper: stapeldiagram, boxplot, kombinationsdiagram, mätare, linjediagram, mosaikdiagram, cirkeldiagram, punktdiagram, rutnätsdiagram, pivottabell, tabell, trädmapp och vattenfallsdiagram.
Villkorsuttrycket och det anpassade felmeddelandet (texten som visas för användare när villkoret inte uppfylls) tillämpas båda på hyperkubsdefinitionen. Om det ursprungliga QlikView-objektet inte har något anpassat meddelande, visar Qlik Sense standardmeddelandet för beräkningsvillkor.
Visualiseringstyper som inte finns med i listan ovan (inklusive trattdiagram, radardiagram och KPI) får ingen beräkningsvillkor. Om ett QlikView-objekt har ett beräkningsvillkor och målvisualiseringstypen inte stöder funktionen, ignoreras både villkoret och meddelandet tyst.