Szczegóły konwersji obiektu
Ostatnia aktualizacja: 14.10.2026QV2QS obsługuje szereg funkcji specyficznych dla QlikView podczas konwersji.
Wyrażenia
QV2QS przekazuje wyrażenia QlikView do Qlik Sense z minimalną transformacją. Język wyrażeń jest w dużej mierze wspólny dla QlikView i Qlik Sense, dzięki czemu większość wyrażeń działa bez modyfikacji.
QV2QS stosuje następujące transformacje:
- Prefiks równości — Qlik Sense wymaga wiodącego
=w wyrażeniach miar i niektórych wyrażeniach właściwości. QV2QS dodaje prefiks tam, gdzie jest to wymagane, jeśli oryginalne wyrażenie QlikView go nie zawiera. - Usuwanie komentarzy — Komentarze całoliniowe zaczynające się od
//,#lubREMsą usuwane z wbudowanych wyrażeń. Wyrażenia właściwości Qlik Sense nie zawsze obsługują składnię komentarzy, dlatego ich usunięcie zapobiega błędom oceny. Komentarze blokowe (/* */) nie są usuwane. Komentarze wbudowane//w linii kodu również nie są usuwane.
Następujące funkcje wyrażeń są przekazywane dosłownie i działają w Qlik Sense bez modyfikacji:
- Wyrażenia analizy zbiorów (na przykład,
{<Year={2024}>}) - Rozwinięcie ze znakiem dolara i odwołania do zmiennych (na przykład,
$(vMyVar)) - Zagnieżdżone
Aggr()wyrażenia If()wyrażenia, w tym wyrażenia formatowania warunkowegoPick(),Match()iDual()wzory- Wymiary wyliczane
Ustaw cytowanie analizy
QlikView (przed listopadem 2017 r.) traktował wartości ujęte w pojedynczy cudzysłów w modyfikatorach zbioru jako wyszukiwania niewrażliwe na wielkość liter, identyczne z wartościami ujętymi w podwójny cudzysłów. Qlik Sense traktuje wartości ujęte w pojedynczy cudzysłów jako literały uwzględniające wielkość liter. Ta różnica może zakłócić wyrażenia, które opierają się na symbolach wieloznacznych, operatorach porównania lub dopasowywaniu numerycznym wewnątrz pojedynczych cudzysłowów.
QV2QS skanuje wszystkie wyrażenia obiektów i definicje zmiennych w poszukiwaniu wzorców cytowania analizy zbiorów, które zachowują się inaczej w Qlik Sense. Wykryte wzorce obejmują wieloznaczniki w pojedynczym cudzysłowie ('*US*'), operatory porównania w pojedynczym cudzysłowie ('>=5'), wartości w pojedynczym cudzysłowie w polach numerycznych oraz niecytowane wartości typu string. Wyniki pojawiają się w arkuszu Ustalenia_Ekspresji raportu programu Excel.
QV2QS automatycznie naprawia wartości wyszukiwania ujęte w pojedynczy cudzysłów podczas konwersji. Eksperymentalna poprawka dla nieujętych w cudzysłów wartości typu „goły ciąg” jest również dostępna, ale domyślnie wyłączona.
- Wartości wyszukiwania w pojedynczym cudzysłowie (domyślnie włączone) są konwertowane na podwójne cudzysłowy:
{<Country={'*US*'}>}staje się{<Country={"*US*"}>}. Wykryte wzorce wyszukiwania obejmują symbole wieloznaczne (*,?,^), operatory porównania, wyszukiwanie rozmyte (~), wyszukiwanie wyrażeń (=), modyfikatory wyszukiwania (+,-) i wyszukiwanie złożone. Wartości w pojedynczych cudzysłowach w polach numerycznych, które nie zawierają składni wyszukiwania, są oznaczane do ręcznego przeglądu, ale nie są automatycznie naprawiane. - Niecytowane wartości ciągu znaków (eksperymentalny, domyślnie wyłączone) są ujmowane w pojedynczy cudzysłów:
{<Country={USA}>}staje się{<Country={'USA'}>}. Podaj--fixUnquotedSetValues, aby włączyć.
Poprawki są stosowane za pomocą zastępowania pozycyjnego tylko w listach wartości modyfikatorów zestawu. Nazwy pól, nazwy funkcji i inny tekst wyrażeń nigdy nie są modyfikowane. Dwie poprawki są kontrolowane niezależnie. Przekaż --noFixSingleQuotedSearch, aby wyłączyć poprawkę dotyczącą pojedynczych cudzysłowów. Wyniki dotyczące nieobsługiwanych funkcji nie są modyfikowane.
Arkusz Expression_Findings oraz pulpit nawigacyjny podsumowania wykonawczego zawierają kolumnę Source, która wskazuje, czy każde ustalenie pochodzi z definicji zmiennej, czy z wyrażenia obiektu wykresu. Kolumna Status pokazuje, czy znalezisko zostało automatycznie naprawione, wymaga ręcznego przeglądu, czy też nie ma dostępnej automatycznej poprawki.
Pełną listę wykrytych wzorców znajdziesz w Analizie. Aby uzyskać informacje o składni analizy zbiorów, zobacz Analiza zbiorów w pomocy Qlik Cloud.
QV2QS skanuje wszystkie pola wyrażeń (wymiary, miary, warunki wyświetlania, wyrażenia kolorów, tytuły, warunki obliczeń i inne), jak również definicje zmiennych oraz skrypt ładowania w poszukiwaniu nieobsługiwanych funkcji. Wykryte instancje są wymienione w raporcie analizy.
Następujące funkcje specyficzne dla QlikView nie są dostępne w Qlik Sense:
GetCurrentField,GetExtendedPropertyInput,InputSum,InputAvgMsgBoxImage_SizeNoOfReports,ReportComment,ReportId,ReportName,ReportNumber
Aby uzyskać listę wykrytych wzorców skryptów ładowania, zobacz Analiza.
Formatowanie liczb
QV2QS konwertuje definicje formatu liczb QlikView na typy formatu liczb Qlik Sense. Typ formatu jest mapowany na odpowiednik w Qlik Sense, a niestandardowy ciąg formatujący (Fmt), separator dziesiętny, separator tysięcy i precyzja dziesiętna są zachowywane w niezmienionej postaci. Niestandardowe ciągi formatujące, takie jak #,##0.00;(#,##0.00) lub '$'#,##0, są przekazywane bez zmian w polu qFmt.
Następujące typy formatów QlikView są mapowane:
| QlikView typ | Typ Qlik Sense |
|---|---|
| Stałoprzecinkowy, Rzeczywisty, Całkowity | Stałe (F) |
| MONEY | Pieniądze (M) |
| DATE | Data (D) |
| TIME | Czas (T) |
| TIMESTAMP | Znacznik czasu (TS) |
| INTERVAL | Interwał (IV) |
Sortowanie
QV2QS konwertuje wszystkie kryteria sortowania QlikView na ekwiwalenty Qlik Sense. Następujące ustawienia sortowania są mapowane jeden do jednego: sortowanie według stanu, sortowanie według częstotliwości, sortowanie według wartości liczbowej, sortowanie według kolejności alfabetycznej, sortowanie według kolejności ładowania, sortowanie według wyrażenia (w tym tekst wyrażenia) i sortowanie według szarości.
W przypadku pól typu listbox, QV2QS stosuje dodatkową heurystykę, aby wyłączyć sortowanie oparte na stanie dla pól przypominających daty. Szczegółowe informacje można znaleźć w Odwołaniu do argumentów.
Wizualne wskazówki i kolorowanie warunkowe
Wizualne wskazówki QlikView (kolory warunkowe oparte na progu dla miar) są konwertowane na wyrażenia kolorów Qlik Sense dla wizualizacji tabel i tabel przestawnych. QV2QS generuje zagnieżdżone If() wyrażenia z RGB() lub ARGB() funkcjami kolorów, które odtwarzają oryginalne zachowanie niskiego/normalnego/wysokiego progu. Zarówno sygnały koloru tekstu, jak i koloru tła są konwertowane. Wizualne wskazówki na wizualizacjach wykresów (wykres słupkowy, wykres liniowy, Wykres kombi i inne) nie są konwertowane.
Kolorowanie oparte na wyrażeniach
QV2QS konwertuje wyrażenia kolorów dla każdego wymiaru i dla każdej miary (kolor tła i kolor tekstu) na wyrażenia atrybutów Qlik Sense. Dla wizualizacji tabel i tabel przestawnych, zachowywane są zarówno wyrażenia koloru tła, jak i tekstu (cellBackgroundColor i cellForegroundColor). Dla wizualizacji wykresów, wyrażenia koloru tła miar są konwertowane do colorByExpression trybu. Wyrażenia kolorów wymiarów i wyrażenia kolorów tekstu miar nie są konwertowane dla typów wykresów, ponieważ wykresy Qlik Sense nie obsługują wyrażeń atrybutów kolorów dla poszczególnych wymiarów ani atrybutów kolorów tekstu dla poszczególnych miar.
Dla wizualizacji tabeli i tabeli przestawnej, jeśli na mierze nie istnieje jawne wyrażenie koloru, ale zdefiniowano wskazówki wizualne, QV2QS automatycznie generuje wyrażenie koloru na podstawie progów wskazówek wizualnych.
Linie trendu
Linie trendu QlikView na miarach wykresu są konwertowane na linie trendu Qlik Sense. Obsługiwane są następujące typy linii trendu:
- Średnia, Liniowa, Wykładnicza, Logarytmiczna, Potęgowa
- Wielomian (stopnia 2, 3 i 4)
Linie odniesienia
QlikView linie odniesienia na osiach wykresu są konwertowane na Qlik Sense linie odniesienia. Etykieta, wyrażenie wartości, kolor, styl linii oraz warunek wyświetlania (wyrażenie widoczności warunkowej) są zachowane. Jeśli linia odniesienia nie ma warunku wyświetlania, domyślna widoczność jest zawsze wyświetlana. Wykresy kombi obsługują linie odniesienia zarówno na osi podstawowej, jak i pomocniczej.
Przypisanie osi wykresu kombi
QV2QS zachowuje przypisania osi wykresu kombi QlikView. Każda miara zachowuje powiązanie z osią podstawową lub pomocniczą z oryginalnego wykresu QlikView. Typy serii pomiarowych (słupek, linia, znacznik) są również zachowywane.
Grupy wymiarów
QV2QS konwertuje cykliczne grupy QlikView i grupy drążenia na wymiary główne Qlik Sense. Grupy cykliczne stają się cyklicznymi wymiarami głównymi. Grupy drążenia stają się wymiarami głównymi drążenia. Wykresy, które odwołują się do wymiaru grupy, są połączone z odpowiednim wymiarem głównym w przekonwertowanej aplikacji.
Obsługa czcionek
Qlik Sense obsługuje ustalony zestaw czcionek bezpiecznych dla sieci web. QV2QS mapuje czcionki QlikView do najbliższej dostępnej czcionki Qlik Sense. Czcionki, których nie można zmapować, używają czcionki zastępczej (Source Sans Pro).
Następujące czcionki QlikView mają jawne mapowania:
| QlikView czcionka | Czcionka Qlik Sense |
|---|---|
| Arial, Helvetica, Tahoma, Calibri | Source Sans Pro |
| Segoe UI | Międzynarodowe |
| Verdana | Open Sans |
| Times New Roman, Times, Georgia | PT Serif |
| Courier New, Consolas | Source Sans Pro |
Niestandardowe czcionki nieznajdujące się w bibliotece czcionek Qlik Sense są mapowane na Source Sans Pro.
Czcionki monospacjowe (Courier New, Consolas) są mapowane na czcionkę proporcjonalną Source Sans Pro. Wyrównanie znaków o stałej szerokości nie jest zachowane.
Zmienne systemowe
QV2QS wyklucza zmienne systemowe z listy przekonwertowanych zmiennych. Te zmienne są zarządzane przez silnik Qlik i nie muszą być uwzględniane w variables.json. Przykłady obejmują DateFormat, ThousandSep, DecimalSep, TimestampFormat, ErrorMode i NullDisplay.
Zmienne systemowe, które zostały jawnie ustawione w skrypcie ładowania (na przykład, SET DateFormat='YYYY-MM-DD';) są zachowywane w skrypcie ładowania i wchodzą w życie podczas przeładowania. Wykluczenie dotyczy tylko definicji zmiennych w przekonwertowanej aplikacji, nie SET lub LET instrukcji w skrypcie ładowania.
Zmienne zdefiniowane przez użytkownika są konwertowane.
Tryb kratowy
Wykresy QlikView z włączonym trybem kratownicy (EnablePrimaryDimension) używają pierwszego wymiaru jako pola fasetowania do wyświetlania siatki mini-wykresów. Qlik Sense nie ma natywnego trybu kratownicy na standardowych wykresach. QV2QS automatycznie konwertuje wykresy kratowe, używając rozszerzenia kontenera kratowego Qlik Sense (qlik-trellis-container) z pakietu Visualization Bundle.
Podczas konwersji QV2QS wykonuje następujące kroki:
- Tworzy wizualizację główną — Oryginalny wykres jest konwertowany bez wymiarów siatki. Dla kratownicy tylko podstawowej, wymiar 0 jest usuwany. Gdy włączona jest również dodatkowa kratownica, wymiary 0 i 1 zostają usunięte. Pozostały wykres jest zapisany jako wizualizacja główna w aplikacji.
- Tworzy kontener siatkowy — Obiekt
qlik-trellis-containerjest umieszczany na arkuszu w oryginalnej pozycji wykresu. Kontener odwołuje się do wizualizacji głównej i używa usuniętych wymiarów jako pól fasetowania w swojej definicji danych. Gdy włączone są zarówno podstawowe, jak i dodatkowe kratownice, definicja danych kontenera zawiera dwa wymiary fasetowania. - Konfiguruje siatkę — Ustawienia kolumn i wierszy QlikView mapują się do liczby kolumn kontenera trellisa i maksymalnej liczby wykresów. Maksymalna liczba wykresów jest obliczana jako kolumny pomnożone przez wiersze. Gdy liczność wymiarów fasetowania przekracza rozmiar siatki, QV2QS zwiększa maksymalną liczbę wykresów, aby pomieścić wszystkie wartości wymiarów. Dla drugorzędnego kratowania, całkowita liczność jest iloczynem liczności wymiarów podstawowego i drugorzędnego. Wartość jest zaokrąglana w górę do najbliższej wielokrotności liczby kolumn, tak aby siatka wypełniała się równomiernie. Ta ekspansja jest rejestrowana jako korekta wykresu.
Kontener siatkowy używa tego samego mapowania qv_id co oryginalny wykres, więc zajmuje tę samą pozycję na arkuszu.
Układ siatki wyłącznie dla głównego wymaga co najmniej dwóch wymiarów (jeden dla fasetowania układu siatki i jeden dla wykresu głównego). Główny plus dodatkowy układ siatkowy wymaga co najmniej trzech wymiarów (dwa dla fasetowania układu siatkowego i jeden dla wykresu głównego). Wykresy z mniejszą liczbą wymiarów niż wymagana są pomijane.
Pomiar akumulacji
Akumulacja miar QlikView (sumy bieżące) jest konwertowana na modyfikatory akumulacji Qlik Sense. Obsługiwane są następujące tryby akumulacji:
- Pełna akumulacja — Wyrażenie miary jest przepisywane przy użyciu
RangeSum()zAbove()iRowNo(), aby uzyskać sumę bieżącą dla wszystkich wierszy. ModyfikatorfullAccumulationflaga jest ustawiona natruezstepswartością 6. - Akumulacja krokowa — Gdy liczba kroków akumulacji QlikView jest większa niż 1, wyrażenie miary używa
RangeSum()zAbove()i określoną liczbą kroków. Flaga modyfikatorafullAccumulationjest ustawiona nafalse.
Wygenerowane wyrażenie akumulacji dostosowuje się do typu pola wymiaru:
- Wymiary numeryczne — Granice analizy wykorzystują
Min()iMax()dla pola. - Wymiary tekstu — Ustaw granice analizy, używając
MinString()iMaxString()dla pola. - Dwuwymiarowe wykresy — Generowana jest
Aggr()otoczka, aby zagnieździć akumulację w kontekście zewnętrznego wymiaru.
Gdy zastosowano akumulację, QV2QS wyłącza tryb ciągłej osi (preferContinuousAxis=false) i ustawia nullMode na connect, aby zapewnić prawidłowe renderowanie wizualne. Oryginalne wyrażenie miary i etykieta są zachowane we właściwości base modyfikatora.
Kontenery zakładek
QV2QS konwertuje kontenery kart QlikView przy użyciu trzech strategii, w zależności od konfiguracji i kontekstu kontenera. We wszystkich przypadkach obiekty podrzędne pozostają na tym samym arkuszu Qlik Sense co kontener.
- Kontener z zakładkami — Samodzielne kontenery z wieloma zakładkami, które nie nakładają się na inne obiekty, są konwertowane na natywne kontenery z zakładkami Qlik Sense (
sn-tabbed-container). Każdy element karty staje się kartą wewnątrz kontenera. Porządek tabulacji jest zgodny z oryginalną kolejnością elementów QlikView. - Pseudo-zakładki — Gdy kontener z wieloma zakładkami zachodzi na inne obiekty lub jest zagnieżdżony w innym kontenerze, QV2QS spłaszcza zakładki w kontener układu. Pasek przycisków jest generowany z jednym
action-buttonna zakładkę. Każdy przycisk ustawia zmienną nawigacyjną za pomocąSetVariableakcji. Warunki wyświetlania na obiektach podrzędnych (na przykład,=If('$(vCT01Tab)'='1',1,0)) kontrolują, która zawartość zakładki jest widoczna. Tylko jedna karta jest widoczna naraz. Pasek przycisków odtwarza zachowanie przełączania kart oryginalnego kontenera QlikView. - Kontener układu — Kontenery w trybie siatki są konwertowane na kontenery układu (
sn-layout-container).
Kontenery jednoobiektowe są uproszczone. Żaden pasek kart ani zmienna nie są tworzone. Pojedynczy obiekt potomny jest umieszczony bezpośrednio w pozycji kontenera z zastosowanym warunkiem wyświetlania kontenera.
Zagnieżdżone kontenery są obsługiwane do głębokości 8 poziomów. QV2QS wykrywa cykle i zatrzymuje rekurencję, jeśli kontener tworzy odwołanie cykliczne.
Warunki wyświetlania na kontenerze i na poszczególnych obiektach potomnych są łączone za pomocą logicznego operatora AND. Obiekt podrzędny jest widoczny tylko wtedy, gdy warunek kontenera, warunek zmiennej zakładki i warunek obiektu podrzędnego oceniają się jako prawdziwe.
Pokaż warunki
Warunki wyświetlania QlikView na poszczególnych obiektach są zachowane. Qlik Sense nie obsługuje warunków wyświetlania bezpośrednio w obiektach wizualizacji. QV2QS opakowuje obiekty, które mają warunki wyświetlania, w kontener układu z jednym elementem podrzędnym i stosuje warunek jako wpis condition w kontenerze. Obiekty już znajdujące się w kontenerze układu (z powodu nakładania się) otrzymują warunek bezpośrednio przy wejściu do kontenera.
Gdy warunek wyświetlania oceni się jako fałszywy, kontener układu pozostaje w pozycji siatki, ale nie wyświetla żadnej zawartości. Ukryty kontener nie zwija się ani nie powoduje zmiany układu sąsiadujących obiektów. W obu trybach dynamicznej siatki i stałego płótna, ukryty obiekt pozostawia pustą przestrzeń w pierwotnej pozycji. Zachowanie pustej przestrzeni odpowiada QlikView, gdzie ukryte obiekty również pozostawiają pustą przestrzeń.
Stany alternatywne
QV2QS zachowuje alternatywne przypisania stanów. Obiekty powiązane ze stanem alternatywnym w QlikView zachowują to samo powiązanie stanu w Qlik Sense. Nazwy stanów są zachowywane dokładnie. QV2QS tworzy wymagane stany alternatywne w aplikacji Qlik Cloud podczas wdrożenia. Odwołania do stanów alternatywnych w wyrażeniach analizy zbiorów (na przykład, {[State2]<Year={2024}>}) są przekazywane dosłownie i działają w Qlik Sense bez modyfikacji.
W trybie tylko lokalnym (--unbuildOnly), alternatywne nazwy stanów są zapisywane w cloud/alternate_states.json w podfolderze projektu (na przykład, <outputDir>/Sales/cloud/alternate_states.json). Stany muszą być tworzone ręcznie lub za pomocą qlik app build narzędzia podczas wdrażania danych wyjściowych do dzierżawy Qlik Cloud.
Akcje obiektu
QV2QS konwertuje działania na przyciskach (BU, BT) oraz obiektach tekstowych (TX). Obiekty tekstowe zawierające akcje są promowane do przycisków akcji (action-button). Obsługiwane typy działań obejmują nawigację, SetVariable, SelectField, i inne udokumentowane w Wyniki konwersji.
Działania na innych typach obiektów (wykresy, pola list, suwaki i kontenery) nie są konwertowane. QlikView obsługuje OnActivate akcje na dowolnym typie obiektu, ale QV2QS analizuje akcje tylko z XML obiektów typu przycisk i tekst. Akcje inne niż makra (SetVariable, SelectField, nawigacja) dołączone do wykresów, pól list lub innych obiektów niebędących przyciskami są pomijane podczas konwersji i nie pojawiają się w raporcie konwersji. Aby znaleźć porzucone akcje, przeszukaj pliki XML PRJ w poszukiwaniu <Actions> elementów w definicjach obiektów niebędących przyciskami.
Skaner luk wykrywa wywołania makr we wszystkich typach obiektów do celów raportowania. Odwołania krzyżowe makr w arkuszu Analiza odzwierciedlają wszystkie obiekty, nie tylko przyciski. Typy akcji niemakro na obiektach innych niż przyciski nie są raportowane.
Warunki obliczeń
Warunki obliczeń są zachowane dla następujących typów wizualizacji: wykres słupkowy, wykres pudełkowy, Wykres kombi, wskaźnik, wykres liniowy, wykres Mekko, wykres kołowy, wykres punktowy, wykres siatkowy, tabela przestawna, tabela, mapa drzewa i wykres wodospadowy.
Wyrażenie warunku oraz niestandardowa wiadomość o błędzie (tekst wyświetlany użytkownikom, gdy warunek nie jest spełniony) są stosowane do definicji hipersześcianu. Jeśli oryginalny obiekt QlikView nie ma niestandardowej wiadomości, Qlik Sense wyświetla domyślną wiadomość warunku obliczeń.
Typy wizualizacji nieuwzględnione na powyższej liście (w tym wykres lejkowy, wykres radarowy i wskaźnik KPI) nie otrzymują warunku obliczeniowego. Jeśli obiekt QlikView ma warunek obliczeniowy i docelowy typ wizualizacji nie obsługuje tej cechy, zarówno warunek, jak i komunikat są dyskretnie pomijane.