物件轉換詳細資料 | 遷移中心 說明
跳到主要內容 跳至補充內容

物件轉換詳細資料

上次更新:2026/10/14

QV2QS 在轉換期間處理一系列 QlikView 特有的功能。

表達式

QV2QS 將 QlikView 運算式傳遞至 Qlik Sense,僅進行最少的轉換。運算式語言在 QlikView 和 Qlik Sense 之間大致共用,因此大多數運算式無需修改即可運作。

QV2QS 會套用以下轉換:

  • 等號前綴 — Qlik Sense 要求量值表達式和某些屬性表達式以 = 開頭。QV2QS 在需要時添加前綴,如果原始的 QlikView 表達式不包含前綴。
  • 註解移除 — 整行註解,凡以 //、# 或 REM 開頭者,會從內嵌運算式中移除。Qlik Sense 屬性表達式對註解語法的支援不一致,因此移除註解可避免評估錯誤。區塊註解 (/* */) 不會被移除。程式碼行內的行內 // 註解也不會被移除。

以下表達式功能會原樣傳遞,並在 Qlik Sense 中運作而無需修改:

  • 集合分析表達式 (例如,{<Year={2024}>})
  • 錢號擴展和變數參考 (例如,$(vMyVar))
  • 巢狀 Aggr() 運算式
  • If() 運算式,包括條件式格式設定運算式
  • Pick()、Match()、和Dual() 模式
  • 計算維度

設定集合分析引號

QlikView (2017 年 11 月之前) 將集合修飾符中的單引號值視為不區分大小寫的搜尋,與雙引號值相同。Qlik Sense 會將單引號值視為區分大小寫的常值。這種差異可能會破壞依賴萬用字元、比較運算子或在單引號內進行數值比對的運算式。

QV2QS 會掃描所有物件運算式和變數定義,以尋找在 Qlik Sense 中行為不同的集合分析引號模式。偵測到的模式包括單引號萬用字元 ('*US*')、單引號比較運算子 ('>=5')、數值欄位上的單引號值,以及未加引號的裸字串值。結果會顯示在 Excel 報告的 Expression_Findings 工作表中。

QV2QS 會在轉換期間自動修正單引號搜尋值。針對未加引號的裸字串值,也提供一個實驗性的修復,但預設為停用。

  • 單引號搜尋值 (預設啟用) 會轉換為雙引號:{<Country={'*US*'}>} 變成 {<Country={"*US*"}>}。偵測到的搜尋模式包括萬用字元 (*, ?, ^), 比較運算子, 模糊搜尋 (~), 表達式搜尋 (=), 搜尋修飾詞 (+, -), 以及複合搜尋。數值欄位中不含搜尋語法的單引號值,會被標記以供手動審查,但不會自動修正。
  • 未加引號的裸字串值 (實驗性,預設為停用) 會以單引號包覆:{<Country={USA}>} 變成 {<Country={'USA'}>}。傳入 --fixUnquotedSetValues 以啟用。

修正僅在設定修飾符值清單中,透過位置替換來應用。欄位名稱、函數名稱及其他表達式文字絕不會被修改。這兩個修正獨立控制。傳入 --noFixSingleQuotedSearch 以停用單引號修正。不支援的功能結果未經修改。

「Expression_Findings 工作表和執行摘要儀表板包含一個 Source 欄,指示每個發現是源自於變數定義或圖物件表達式。」一個 狀態 欄位會顯示該發現是否已自動修復、需要手動審查,或沒有可用的自動修復。

如需偵測到的完整模式清單,請參閱分析。如需設定分析語法參考,請參閱設定分析中的 Qlik Cloud 說明。

資訊備註

QV2QS 會掃描所有運算式欄位 (維度、量值、顯示條件、色彩運算式、標題、計算條件及其他),以及變數定義和載入指令碼,以尋找不支援的函數。偵測到的實例列於分析報告中。

下列 QlikView 專用函數在 Qlik Sense 中無法使用:

  • GetCurrentField, GetExtendedProperty
  • Input, InputSum, InputAvg
  • MsgBox
  • Image_Size
  • NoOfReports, ReportComment, ReportId, ReportName, ReportNumber

如需偵測到的載入指令碼模式清單,請參閱 分析。

數字格式

QV2QS 會將 QlikView 數字格式定義轉換為 Qlik Sense 數字格式類型。格式類型會對應至 Qlik Sense 的對應項目,且自訂格式字串 (Fmt)、小數點分隔符號、千位分隔符號以及小數點精確度都會如實保留。自訂格式字串,例如 #,##0.00;(#,##0.00) 或 '$'#,##0,會在 qFmt 欄位中原樣傳遞。

以下 QlikView 格式類型已對應:

QlikView 類型 Qlik Sense 類型
固定、實數、整數 固定 (F)
MONEY 貨幣 (M)
DATE 日期 (日)
TIME 時間 (T)
TIMESTAMP 時間戳記 (時間戳記)
INTERVAL 區間 (IV)

排序

QV2QS 將所有 QlikView 排序條件轉換為 Qlik Sense 對應項。以下排序設定為一對一對應:依狀態排序、依頻率排序、依數值排序、依字母順序排序、依載入順序排序、依運算式排序 (包括運算式文字)、以及依灰度排序。

對於列表框欄位,QV2QS 會應用額外的啟發式演算法,來抑制在日期類型欄位上基於狀態的排序。如需詳細資訊,請參閱引數參考。

視覺提示和條件式色彩

QlikView 視覺提示 (基於閾值的量值條件式色彩) 會轉換為 Qlik Sense 色彩運算式,用於表格和樞紐分析表視覺化。QV2QS 會產生巢狀的If()運算式,其中包含RGB()或ARGB()色彩函數,可重現原始的低/正常/高閾值行為。文字顏色和背景顏色提示皆會轉換。圖表視覺效果上的視覺提示 (長條圖、折線圖、組合圖及其他) 不會轉換。

基於運算式的著色

QV2QS 會將每個維度和每個量值的色彩運算式 (背景色彩和文字色彩) 轉換為 Qlik Sense 屬性運算式。對於表格和樞紐分析表視覺化,背景顏色運算式和文字顏色運算式都會保留 (cellBackgroundColor 和 cellForegroundColor)。對於圖的視覺化,量值背景顏色表達式會轉換為 colorByExpression 模式。維度色彩運算式和量值文字色彩運算式不會轉換為圖表類型,因為 Qlik Sense 圖不支援每個維度的色彩屬性運算式或每個量值的文字色彩屬性。

對於表格和樞紐分析表視覺效果,如果量值上沒有明確的色彩表達式,但已定義視覺提示,QV2QS 會自動從視覺提示閾值產生色彩表達式。

趨勢線

QlikView 圖量值上的趨勢線會轉換為 Qlik Sense 趨勢線。支援下列趨勢線類型:

  • 平均、線性、指數、對數、冪次
  • 多項式 (2、3 和 4 次)

參考資料行

QlikView 在圖軸上的參考線會轉換為 Qlik Sense 參考線。標籤、值運算式、顏色、線條樣式和顯示條件 (條件式可見性運算式) 都會保留。如果參考線沒有顯示條件,則預設可見性為始終顯示。組合圖支援同時在主要和次要座標軸上設定參考線。

組合圖軸指派

QV2QS 保留 QlikView 組合圖的軸指派。每個量值保留來自原始 QlikView 圖的主要或次要軸繫結。測量數列類型(長條、線、標記)也會保留。

維度群組

QV2QS 將 QlikView 循環群組和鑽研群組轉換為 Qlik Sense 主維度。循環群成為循環主維度。向下鑽研群組成為向下鑽研主維度。參考群組維度的圖表會連接到轉換後的應用程式中對應的主維度。

字型處理

Qlik Sense 支援一組固定的網路安全字型。QV2QS 將 QlikView 字型對應到最接近的可用 Qlik Sense 字型。無法映射的字型會使用備用字型 (Source Sans Pro)。

以下 QlikView 字型具有明確的對應:

QlikView 字體 Qlik Sense 字型
Arial, Helvetica, Tahoma, Calibri Source Sans Pro
Segoe UI 國際
Verdana Open Sans
時代新羅馬, 時代, 喬治亞 PT Serif
Courier New, Consolas Source Sans Pro

自訂字型若不在 Qlik Sense 字型物件庫中,則會對應至 Source Sans Pro。

資訊備註

等寬字體 (Courier New、Consolas) 會對應到比例字體 Source Sans Pro。等寬字元對齊未保留。

系統變數

QV2QS 會將系統變數從轉換後的變數清單中排除。這些變數由 Qlik 引擎管理,且不需要包含在 variables.json 中。範例包括DateFormat、ThousandSep、DecimalSep、TimestampFormat、ErrorMode,以及NullDisplay。

在載入指令碼中明確設定的系統變數 (例如,SET DateFormat='YYYY-MM-DD';) 會保留在載入指令碼中,並在重新載入時生效。排除僅適用於轉換後的應用程式中的變數定義,不適用於載入指令碼中的SET或LET陳述式。

使用者定義變數會轉換。

網格模式

已啟用格線模式的 QlikView 圖表 (EnablePrimaryDimension) 使用第一個維度做為分面欄位,以顯示迷你圖表的格線。Qlik Sense 在標準圖表上沒有原生格狀模式。QV2QS 會自動轉換網格圖表,方法是使用 Visualization Bundle 中的 Qlik Sense 網格容器延伸 (qlik-trellis-container)。

在轉換過程中,QV2QS 會執行以下步驟:

  1. 建立主要視覺化 — 原始圖會轉換,不含網格維度。對於僅限主要格線圖,維度 0 已移除。當次要網格也啟用時,維度 0 和 1 都會被移除。剩餘的圖會儲存為應用程式中的主要視覺化。
  2. 建立格線容器 — qlik-trellis-container 物件會放置在工作表的原始圖位置。容器參考主要視覺化,並使用已移除的維度作為其資料定義中的分面欄位。當主要和次要網格都啟用時,容器資料定義包含兩個分面維度。
  3. 配置格線 — QlikView 欄和列設定會對應至 trellis 容器欄計數和最大圖計數。圖表的上限數量是透過欄數乘以列數計算的。當刻面維度的數量超過格線大小時,QV2QS 會增加最大圖表計數以容納所有維度值。對於次要網格,總基數是主要維度與次要維度的基數的乘積。此值會向上捨入至欄數的最近倍數,以便格線均勻填滿。此擴展記錄為圖調整。

網格容器使用與原始圖相同的qv_id映射,因此它在工作表上佔據相同的位置。

僅限主要格線需要至少兩個維度 (一個用於格線分面,另一個用於主圖)。主要加上次要的網格至少需要三個維度(兩個用於網格分面,一個用於主圖)。圖表若維度少於所需,則會被跳過。

測量累積

QlikView 量值累計 (執行中總計) 會轉換為 Qlik Sense 累計修飾符。支援以下累積模式:

  • 完整累計 — 量值運算式會使用 RangeSum() 搭配 Above() 和 RowNo() 重新撰寫,以產生跨所有列的執行中總計。修飾符 fullAccumulation 旗標設定為 true,其 steps 值為 6。
  • 步驟累計 — 當 QlikView 累計步數大於 1 時,量值運算式會使用 RangeSum() 搭配 Above() 以及指定的步數。修飾元 fullAccumulation 旗標已設定為 false。

生成的累積表達式適應維度欄位類型:

  • 數值維度 — 設定分析邊界使用 Min() 和 Max() 針對該欄位。
  • 文字尺寸 — 設定分析邊界使用 MinString() 和 MaxString() 用於欄位。
  • 二維圖表 — 會產生一個 Aggr() 包裝器,以將累積巢狀地放置在外部維度內容中。

當套用累積時,QV2QS 會停用連續軸模式 (preferContinuousAxis=false),並將 nullMode 設定為 connect,以確保正確的視覺呈現。原始量值表達式和標籤保存在修飾符的 base 屬性中。

分頁容器

QV2QS 會使用三種策略轉換 QlikView 索引標籤容器,具體取決於容器組態和內容。在所有情況下,子物件會保留在與容器相同的 Qlik Sense 工作表上。

  • 索引標籤式容器 — 不會與其他物件重疊的獨立多索引標籤容器,會轉換為原生 Qlik Sense 索引標籤式容器 (sn-tabbed-container)。每個分頁成員都會成為容器中的一個分頁。Tab 鍵順序遵循原始 QlikView 成員順序。
  • 偽分頁 — 當多分頁容器與其他物件重疊,或巢狀內嵌於另一個容器中時,QV2QS 會將分頁扁平化為一個版面配置容器。會產生一個按鈕列,其中每個分頁都有一個action-button。每個按鈕都會使用 SetVariable 動作來設定一個導覽變數。顯示子物件上的條件 (例如,=If('$(vCT01Tab)'='1',1,0)) 控制哪個分頁內容可見。一次只能看到一個分頁。按鈕列重現原始 QlikView 容器的索引標籤切換行為。
  • 版面配置容器 — 容器在格線模式中會轉換為版面配置容器(sn-layout-container)。

單一物件容器已簡化。未建立分頁條或變數。單一子物件直接放置於容器位置,並套用容器顯示條件。

巢狀容器支援最多可達 8 層深度。QV2QS 會偵測循環並停止遞迴,如果容器建立循環參照。

在容器上以及在個別子物件上的顯示條件,是使用邏輯 AND 組合的。子物件僅在容器條件、分頁變數條件以及子物件條件全部評估為 true 時可見。

顯示條件

QlikView 在個別物件上的顯示條件會被保留。Qlik Sense 不支援直接在視覺化物件上設定顯示條件。QV2QS 將具有顯示條件的物件包裝在單一子項版面配置容器中,並將條件套用為容器上的condition項目。已在版面配置容器內的物件 (由於重疊),會直接收到容器項目上的條件。

當顯示條件評估為 false 時,版面配置容器仍會保留在格線位置,但不顯示任何內容。隱藏的容器不會摺疊或導致相鄰物件重排。在動態格線和固定畫布模式下,隱藏的物件會在原始位置留下空白空間。空白空間行為與 QlikView 相符,其中隱藏的物件也會留下空白空間。

替代狀態

QV2QS 保留替代狀態指派。繫結至 QlikView 中替代狀態的物件,在 Qlik Sense 中會保留相同的狀態繫結。州名會被精確保留。QV2QS 在部署期間,於 Qlik Cloud 應用程式中建立所需的替代狀態。在集合分析表達式中的替代狀態參考 (例如,{[State2]<Year={2024}>}) 會原樣傳遞,並在 Qlik Sense 中無需修改即可運作。

在「僅限本機」模式下 (--unbuildOnly),替代狀態名稱會寫入 cloud/alternate_states.json 到專案子資料夾中 (例如,<outputDir>/Sales/cloud/alternate_states.json)。部署輸出至 Qlik Cloud 租用戶時,必須手動或透過 qlik app build 工具建立狀態。

物件動作

QV2QS 轉換按鈕 (BU、BT) 和文字物件 (TX) 上的動作。包含動作的文字物件會升級為動作按鈕 (action-button)。支援的動作類型包括導覽、SetVariable、SelectField,以及其他記載於轉換結果的類型。

其他物件類型(圖表、列表框、滑桿和容器)上的動作不會轉換。QlikView 支援 OnActivate 動作於任何物件類型,但 QV2QS 僅從按鈕和文字物件 XML 解析動作。非巨集動作 (SetVariable、SelectField、導覽) 附加到圖表、清單方塊或其他非按鈕物件,會在轉換期間捨棄,且不會出現在轉換報告中。為了尋找已捨棄的動作,請在 PRJ XML 檔案中搜尋非按鈕物件定義裡的 <Actions> 元素。

資訊備註

間隙掃描器會偵測跨所有物件類型的巨集呼叫,以用於報告目的。分析工作表中的巨集交叉參照會反映所有物件,不只按鈕。非按鈕物件上的非巨集動作類型不會被報告。

計算條件

計算條件會保留用於下列視覺化類型:長條圖、盒鬚圖、組合圖、量測計、折線圖、Mekko 圖、圓形圖、散佈圖、格線圖、樞紐分析表、表格、樹狀結構圖和瀑布圖。

條件表達式和自訂錯誤訊息 (當條件不符合時向使用者顯示的文字) 都會套用至超立方體定義。如果原始 QlikView 物件沒有自訂訊息,Qlik Sense 會顯示預設計算條件訊息。

不在上述清單中的視覺效果類型 (包括漏斗圖、雷達圖和 KPI) 不會收到計算條件。如果 QlikView 物件具有計算條件,且目標視覺化類型不支援此功能,則條件和訊息都會被靜默捨棄。

了解更多

Visit the discussion forum at community.qlik.com

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們!