Перейти к основному содержимому

Работа с переменными в редакторе загрузки данных

Переменная в Qlik Sense является контейнером, содержащим статическое значение или вычисление, например числовое или буквенно-числовое значение. При использовании этой переменной в приложении любое изменение, выполненное в переменной, применяется везде, где эта переменная используется. Переменные можно определить в окне обзора переменных или в скрипте с помощью редактора загрузки данных. Для установки значения переменной можно использовать операторы Let или Set в скрипте загрузки данных.

Примечание о подсказкеПри редактировании листа можно также работать с переменными Qlik Sense с помощью окна обзора переменных. Использование переменных в выражениях

Обзор

Если первый символ в значении переменной — это знак равенства «=», то программа Qlik Sense рассчитывает значение по формуле (выражение Qlik Sense) и выводит или возвращает результат, а не визуальное написание формулы.

При использовании вместо переменной подставляется ее значение. Переменные можно использовать в скрипте для расширения со знаком доллара и в различных операторах управления. Это очень удобно, если одна и та же строка повторяется в скрипте множество раз, например путь.

В начале выполнения скрипта программа Qlik Sense устанавливает некоторые особые системные переменные независимо от их предыдущих значений.

Определение переменной

Переменные дают возможность хранить статические значения или результат вычислений. При определении переменной используйте следующий синтаксис:

set variablename = string

или

let variable = expression

Оператор Set используется для присвоения строки. Он присваивает переменной текст справа от знака равенства. Оператор Let оценивает выражение справа от знака равенства во время выполнения скрипта и присваивает результат выражения переменной.

В переменных учитывается регистр.

Примечание об информацииНе рекомендуется использовать одинаковые имена для переменной и поля или функции в Qlik Sense.

Примеры:  

set x = 3 + 4; // переменная получит в качестве значения строку '3 + 4'.

let x = 3 + 4; // возвращает 7 в качестве значения.

set x = Today(); // возвращает 'Today()' в качестве значения.

let x = Today(); // возвращает в качестве значения сегодняшнюю дату, например ‘9/27/2021’.

Удаление переменной

Если удалить переменную из скрипта и перезагрузить данные, переменная будет существовать в приложении. Чтобы полностью удалить переменную из приложения, необходимо также удалить ее из диалогового окна переменных.

Для получения дополнительной информации см. Удаление переменной.

Загрузка значения переменной в качестве значения поля

Для загрузки значения переменной в качестве значения поля в оператор LOAD и получения расширения со знаком доллара в виде текста, а не числового значения или выражения, необходимо заключить развернутую переменную в одинарные кавычки.

Пример:  

В этом примере выполняется загрузка системной переменной, содержащей список ошибок скрипта в таблице. Обратите внимание, что расширение ScriptErrorCount в предложении If не требует кавычек, в то время, как расширение ScriptErrorList необходимо заключить в кавычки.

IF $(ScriptErrorCount) >= 1 THEN
LOAD '$(ScriptErrorList)' AS Error AutoGenerate 1; END IF

Вычисление переменной

Существует несколько способов использования переменных с вычисляемыми значениями в программе Qlik Sense. Результат зависит от того, как это будет определено и названо в выражении.

В этом примере загружаются некоторые встроенные данные:

LOAD * INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

Давайте определим две переменные.

Let vSales = 'Sum(Sales)' ;
Let vSales2 = '=Sum(Sales)' ;

Во второй переменной мы добавляем знак равенства перед выражением. В результате переменная будет вычислена до того, как она будет расширена, а выражение оценено.

При использовании неизмененной переменной vSales, например, в мере, результатом будет строка Sum(Sales), то есть вычисления не будут выполнены.

В случае добавления расширения со знаком доллара и вызова элемента $(vSales) в выражении переменная будет расширена, а сумма Sales отобразится.

Наконец, если будет вызван элемент $(vSales2), вычисление переменной будет выполнено до ее расширения. Это означает, что отображаемый результат — это итоговая сумма элементов Sales. Разницу использования элементов =$(vSales) и =$(vSales2) в качестве выражений мер можно увидеть в этой диаграмме с отображением результатов:

Результаты
Dim$(vSales)$(vSales2)
A3501560
B4701560
C7401560

Как можно увидеть, элемент $(vSales) показывает частичную сумму для значения измерения, а элемент $(vSales2) показывает итоговую сумму.

Доступны следующие переменные скрипта:

См. также