Работа с переменными в редакторе загрузки данных
Переменная в Qlik Sense является контейнером, содержащим статическое значение или вычисление, например числовое или буквенно-числовое значение. При использовании этой переменной в приложении любое изменение, выполненное в переменной, применяется везде, где эта переменная используется. Переменные можно определить в окне обзора переменных или в скрипте с помощью редактора загрузки данных. Для установки значения переменной можно использовать операторы Let или Set в скрипте загрузки данных.
Обзор
Если первый символ в значении переменной — это знак равенства «=», то программа Qlik Sense рассчитывает значение по формуле (выражение Qlik Sense) и выводит или возвращает результат, а не визуальное написание формулы.
При использовании вместо переменной подставляется ее значение. Переменные можно использовать в скрипте для расширения со знаком доллара и в различных операторах управления. Это очень удобно, если одна и та же строка повторяется в скрипте множество раз, например путь.
В начале выполнения скрипта программа Qlik Sense устанавливает некоторые особые системные переменные независимо от их предыдущих значений.
Определение переменной
Переменные дают возможность хранить статические значения или результат вычислений. При определении переменной используйте следующий синтаксис:
или
let variable = expression
Оператор Set используется для присвоения строки. Он присваивает переменной текст справа от знака равенства. Оператор Let оценивает выражение справа от знака равенства во время выполнения скрипта и присваивает результат выражения переменной.
В переменных учитывается регистр.
Примеры:
set x = 3 + 4; // переменная получит в качестве значения строку '3 + 4'.
let x = 3 + 4; // возвращает 7 в качестве значения.
set x = Today(); // возвращает 'Today()' в качестве значения.
let x = Today(); // возвращает в качестве значения сегодняшнюю дату, например ‘9/27/2021’.
Именование переменных
Рекомендуется использовать стандартные правила именования для переменных, создаваемых в приложении. Например, правило может требовать, чтобы все имена переменных начинались с v. Пример: vUserText. Это помогает быстро распознавать переменные и отличать их от мер, полей и функций.
Удаление переменной
Если удалить переменную из скрипта и перезагрузить данные, переменная будет существовать в приложении. Чтобы полностью удалить переменную из приложения, необходимо также удалить ее из диалогового окна переменных.
Для получения дополнительной информации см. Удаление переменной.
Загрузка значения переменной в качестве значения поля
Для загрузки значения переменной в качестве значения поля в оператор LOAD и получения расширения со знаком доллара в виде текста, а не числового значения или выражения, необходимо заключить развернутую переменную в одинарные кавычки.
Пример:
В этом примере выполняется загрузка системной переменной, содержащей список ошибок скрипта в таблице. Обратите внимание, что расширение ScriptErrorCount в предложении If не требует кавычек, в то время, как расширение ScriptErrorList необходимо заключить в кавычки.
Вычисление переменной
Существует несколько способов использования переменных с вычисляемыми значениями в программе Qlik Sense. Результат зависит от того, как это будет определено и названо в выражении.
В этом примере загружаются некоторые встроенные данные:
Давайте определим две переменные.
Во второй переменной мы добавляем знак равенства перед выражением. В результате переменная будет вычислена до того, как она будет расширена, а выражение оценено.
При использовании неизмененной переменной vSales, например, в мере, результатом будет строка Sum(Sales), то есть вычисления не будут выполнены.
В случае добавления расширения со знаком доллара и вызова элемента $(vSales) в выражении переменная будет расширена, а сумма Sales отобразится.
Наконец, если будет вызван элемент $(vSales2), вычисление переменной будет выполнено до ее расширения. Это означает, что отображаемый результат — это итоговая сумма элементов Sales. Разницу использования элементов =$(vSales) и =$(vSales2) в качестве выражений мер можно увидеть в этой диаграмме с отображением результатов:
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
Как можно увидеть, элемент $(vSales) показывает частичную сумму для значения измерения, а элемент $(vSales2) показывает итоговую сумму.
Доступны следующие переменные скрипта: