Сведения о преобразовании объекта
Последнее обновление: 14.10.2026QV2QS обрабатывает ряд специфических особенностей 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 г.) обрабатывал значения в одинарных кавычках в модификаторах набора как регистронезависимый поиск, идентично значениям в двойных кавычках. Qlik Sense обрабатывает значения в одинарных кавычках как литералы с учетом регистра. Это различие может нарушить выражения, которые полагаются на подстановочные знаки, операторы сравнения или числовое сопоставление внутри одинарных кавычек.
QV2QS сканирует все выражения объектов и определения переменных на предмет шаблонов кавычек анализа множеств, которые ведут себя по-разному в Qlik Sense. Обнаруженные шаблоны включают подстановочные знаки в одинарных кавычках ('*US*'), операторы сравнения в одинарных кавычках ('>=5'), значения в одинарных кавычках для числовых полей и строковые значения без кавычек. Результаты представлены на листе Результаты_Экспрессии отчета Excel.
QV2QS автоматически исправляет значения поиска в одинарных кавычках при преобразовании. Экспериментальное исправление для неэкранированных строковых значений также доступно, но отключено по умолчанию.
- Значения поиска в одинарных кавычках (включено по умолчанию) преобразуются в двойные кавычки:
{<Country={'*US*'}>}становится{<Country={"*US*"}>}. Обнаруженные шаблоны поиска включают подстановочные знаки (*,?,^), операторы сравнения, нечеткий поиск (~), поиск по выражениям (=), модификаторы поиска (+,-) и составной поиск. Значения в одинарных кавычках в числовых полях, которые не содержат синтаксис поиска, помечаются для ручной проверки, но не исправляются автоматически. - Строковые значения без кавычек (Экспериментальный, отключены по умолчанию) заключаются в одинарные кавычки:
{<Country={USA}>}становится{<Country={'USA'}>}. Передайте--fixUnquotedSetValuesдля включения.
Исправления применяются посредством позиционной замены только в списках значений модификаторов набора. Имена полей, имена функций и другой текст выражений никогда не изменяются. Два исправления контролируются независимо. Передайте --noFixSingleQuotedSearch, чтобы отключить исправление одинарных кавычек. Результаты обнаружения неподдерживаемых функций не изменяются.
Рабочий лист Expression_Findings и панель мониторинга сводного отчета включают столбец Source, который указывает, происходит ли каждое обнаружение из определения переменной или из выражения объекта диаграммы. Столбец Статус показывает, было ли обнаружение исправлено автоматически, требует ли ручной проверки или не имеет доступного автоматического исправления.
Полный список обнаруженных шаблонов см. Анализ. Справку по синтаксису анализа множеств см. в разделе Анализ множеств в справке Qlik Cloud.
QV2QS сканирует все поля выражений (измерения, меры, условия отображения, выражения цвета, заголовки, условия вычисления и другие), а также определения переменных и Скрипт загрузки на наличие неподдерживаемых функций. Обнаруженные экземпляры перечислены в отчете об анализе.
Следующие функции, специфичные для QlikView, недоступны в Qlik Sense:
GetCurrentField,GetExtendedPropertyInput,InputSum,InputAvgMsgBoxImage_SizeNoOfReports,ReportComment,ReportId,ReportName,ReportNumber
Для списка обнаруженных шаблонов Скрипта загрузки см. Анализ.
Форматирование чисел
QV2QS преобразует определения формата чисел QlikView в типы формата чисел Qlik Sense. Тип формата сопоставляется с эквивалентом Qlik Sense, а пользовательская строка формата (Fmt), Десятичный разделитель, разделитель тысяч и десятичная Πрецизионность сохраняются без изменений. Пользовательские строки формата, такие как #,##0.00;(#,##0.00) или '$'#,##0, передаются как есть в поле qFmt.
Следующие типы форматов QlikView сопоставляются:
| QlikView тип | Тип Qlik Sense |
|---|---|
| ФИКС, ВЕЩЕСТВЕННЫЙ, ЦЕЛОЕ | Фиксированный (Ф) |
| MONEY | Деньги (M) |
| DATE | Дата (D) |
| 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 |
| Times New Roman, Times, Georgia | 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 с включенным режимом Trellis (EnablePrimaryDimension) используют первое измерение в качестве поля фасетирования для отображения сетки мини-диаграмм. Qlik Sense не имеет собственного режима решетки на стандартных диаграммах. QV2QS автоматически преобразует решетчатые диаграммы, используя расширение контейнера-решетки Qlik Sense (qlik-trellis-container) из Комплекта визуализации.
При преобразовании QV2QS выполняет следующие шаги:
- Создает основную визуализацию — Исходная диаграмма преобразуется без измерений сетки. Для решетки только для первичных, измерение 0 удаляется. Когда вторичная решетка также включена, оба размера 0 и 1 удаляются. Оставшаяся диаграмма сохраняется как основная визуализация в приложении.
- Создает контейнер-решетку — Объект
qlik-trellis-containerразмещается на листе в исходной позиции диаграммы. Контейнер ссылается на основную визуализацию и использует удаленные измерения в качестве полей фасетирования в своем определении данных. Когда включены как основная, так и дополнительная решетка, определение данных контейнера содержит два измерения фасетирования. - Настраивает сетку — Настройки столбцов и строк QlikView сопоставляются с количеством столбцов и максимальным количеством диаграмм контейнера-решетки. Максимальное количество диаграмм рассчитывается как столбцы, умноженные на строки. Когда мощность измерений фасетирования превышает размер сетки, 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). Каждый элемент вкладки становится вкладкой внутри контейнера. Порядок перехода по вкладкам следует исходному порядку элементов QlikView. - Псевдо-вкладки — Когда многовкладочный контейнер перекрывает другие объекты или вложен в другой контейнер, QV2QS преобразует вкладки в контейнер макета. Панель кнопок генерируется с одной
action-buttonна вкладку. Каждая кнопка устанавливает навигационную переменную, используяSetVariableдействие. Показать условия для дочерних объектов (например,=If('$(vCT01Tab)'='1',1,0)) определяют, какое содержимое вкладки видно. Одновременно видна только одна вкладка. Полоса кнопок воспроизводит поведение переключения вкладок исходного QlikView контейнера. - Контейнер макета — Контейнеры в режиме сетки преобразуются в контейнеры макета (
sn-layout-container).
Однообъектные контейнеры упрощены. Полоса вкладок или переменная не создается. Одиночный дочерний объект размещается непосредственно в позиции контейнера с применением условия отображения контейнера.
Вложенные контейнеры поддерживаются до глубины 8 уровней. QV2QS обнаруживает циклы и останавливает рекурсию, если контейнер создает циклическую ссылку.
Условия отображения на контейнер и на отдельных дочерних объектах составляются с использованием логического И. Дочерний объект виден только тогда, когда условие контейнера, условие переменной вкладки и условие дочернего объекта все оцениваются как истинные.
Показать условия
Условия отображения QlikView для отдельных объектов сохраняются. Qlik Sense не поддерживает условия отображения непосредственно на объектах визуализации. QV2QS оборачивает объекты, имеющие условия отображения, в однодочерний контейнер макета и применяет условие как condition запись к контейнеру. Объекты, уже находящиеся внутри макета-контейнера (из-за наложения), получают условие при входе в контейнер напрямую.
Когда условие отображения оценивается как ложное, макет контейнер остается на позиции сетки, но не отображает содержимое. Скрытый контейнер не сворачивается и не вызывает перекомпоновку соседних объектов. В обоих режимах динамической сетки и фиксированного холста скрытый объект оставляет пустое пространство на исходной позиции. Поведение с пустым пространством соответствует 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 app build инструмента при развертывании выходных данных в клиент Qlik Cloud.
Действия с объектом
QV2QS преобразует действия на кнопках (BU, BT) и текстовых объектах (TX). Текстовые объекты, содержащие действия, повышаются до кнопок действий (action-button). Поддерживаемые типы действий включают навигацию, SetVariable, SelectField, и другие, задокументированные в Результаты конверсии.
Действия с другими типами объектов (диаграммы, списки, ползунки и контейнеры) не преобразуются. QlikView поддерживает OnActivate действия для любого типа объектов, но QV2QS анализирует действия только из XML-файлов объектов-кнопок и текстовых объектов. Действия, не являющиеся макросами (SetVariable, SelectField, навигация), прикрепленные к диаграммам, спискам или другим объектам, не являющимся кнопками, отбрасываются во время преобразования и не отображаются в отчете о преобразовании. Чтобы найти отброшенные действия, выполните поиск в XML-файлах PRJ по <Actions> элементам в определениях объектов, не являющихся кнопками.
Сканер пробелов обнаруживает вызовы макросов для всех типов объектов для целей отчетности. Перекрестные ссылки макросов на листе Анализ отражают все объекты, а не только кнопки. Типы действий без макросов на объектах, не являющихся кнопками, не регистрируются.
Условия расчета
Условия расчета сохраняются для следующих типов визуализации: линейчатая диаграмма, ящик с усами, Комбинированная диаграмма, индикатор, линейный график, диаграмма Мекко, круговая диаграмма, точечная диаграмма, сетчатая диаграмма, сводная таблица, таблица, древовидная карта и каскадная диаграмма.
Выражение условия и пользовательское сообщение об ошибке (текст, отображаемый пользователям, когда условие не выполняется) применяются к определению гиперкуба. Если исходный объект QlikView не имеет пользовательского сообщения, Qlik Sense отображает сообщение условия расчета по умолчанию.
Типы визуализации, отсутствующие в списке выше (включая диаграмму Воронка, диаграмму Радар и Ключевой показатель эффективности), не получают условие расчета. Если объект QlikView имеет условие вычисления и целевой тип визуализации не поддерживает функциональность, характеристики, как условие, так и сообщение удаляются без уведомления.