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

Внешние выражения множества и расширения со знаком доллара

Когда одно (или несколько) расширений со знаком доллара используется в более крупном выражении, каждое pасширение со знаком доллара вычисляется отдельно, прежде чем результат вставляется в остальную часть выражения. Одним из следствий этого метода вычисления является то, что выражения множеств, не входящие в расширенное выражение со знаком доллара, не влияют на результат. Это создает эффект, при котором происходит двойное вычисление информации внутри выражения.

Пример. Порядок вычисления выражений, содержащих внешнее выражение множества и pасширения со знаком доллара

Рассмотрим следующий пример выражения:

{<Year={2024}>} $(=Sum(Sales))

В приведенном выше выражении есть выражение множества для выбора значений 2024 для Year: {<Year={2024}>}. Когда вычисляется полное выражение этого примера, данное выражение множества не применяется.

Вместо этого сначала вычисляется выражение со знаком доллара $(=Sum(Sales)).

Рассматривая данный пример, предположим, что вычисление Sum(Sales) дает результат 1500311. При вычислении выражения {<Year={2024}>} $(=Sum(Sales)) это число вставляется в окружающее выражение. Такой порядок оценки приводит к следующей частично вычисленной конфигурации (обратите внимание, что это не является применимым выражением Qlik Sense, оно показано только для демонстрации порядка вычисления):

{<Year={2024}>} 1500311

Затем выражение {<Year={2024}>} 1500311 вычисляется как единое целое. Выражение множества {<Year={2024}>} не имеет никакого эффекта, потому что выражение справа от него ― это просто число, а не какой-либо тип агрегированного выражения.

Поэтому при использовании значения Sum(Sales), приведенного выше в примере, результат вычисления всего выражения {<Year={2024}>} $(=Sum(Sales)) будет равен 1500311.

Построение выражения из частей

Использование в выражении pасширения со знаком доллара приводит к двойному вычислению. Такой эффект двойного вычисления можно использовать путем построения выражения из частей.

Пример

Рассмотрим следующий пример выражения:

{<Year={2024}>} $(='Sum(' & 'Sales' & ')')

В первом раунде вычисляется pасширение со знаком доллара $(='Sum(' & 'Sales' & ')'). На этом этапе три строки объединяются в одну строку 'Sum(Sales)'. Поскольку это строка, а не выражение, выражение внутри нее в данный момент не вычисляется.

На этом этапе вычисления Qlik Sense интерпретирует выражение следующим образом:

{<Year={2024}>} Sum(Sales)

В этом случае внешнее выражение анализа множества будет применено к агрегированию Sum, поскольку теперь мы получили обычное выражение, а не просто число (как в первом примере). Обратите внимание, что первый раунд вычисления заключен в кавычки, поэтому выражение было сохранено (и объединено с помощью &) для второго раунда вычисления.

Поиск переменных

При использовании pасширения со знаком доллара для поиска переменной, содержимое переменной вставляется в окружающее выражение до вычисления этого содержимого.

Пример

Рассмотрим следующий пример выражения:

{<Year={2024}>} $(Var1)

В этом примере содержимое переменной Var1 будет вставлено в окружающее выражение до вычисления содержимого.

Результат A: определение переменной без знака равенства

Если Var1 определяется как Sum(Sales), то после расширения это будет выглядеть следующим образом (обратите внимание, что конфигурация ниже ― это частично вычисленное выражение):

{<Year={2024}>} Sum(Sales)

Диалоговое окно «Переменные», где отображается определение и значение переменной Var1, когда знак равенства не стоит в начале определения переменной.

Диалоговое окно «Переменные», где отображается определение и значение переменной Var1, когда знак равенства не стоит в начале определения переменной (то есть Sum Sales).

Итак, в данном примере будет применено внешнее выражение множества {<Year={2024}>}.

Результат В: определение переменной со знаком равенства

С другой стороны, если определение в Var1 начинается со знака равенства (то есть =Sum(Sales)), внешнее выражение множества не применяется. Это происходит потому, что знак равенства приводит к преждевременному вычислению выражения переменной в изолированном порядке. Это приводит к результату, похожему на первый пример, в котором наряду с числом есть внешнее выражение множества, которое не возвращает применимого результата.

Диалоговое окно «Переменные», где отображается определение и значение переменной Var1, когда знак равенства стоит в начале определения переменной.

Диалоговое окно «Переменные», где отображается определение и значение переменной Var1, когда знак равенства стоит в начале определения переменной (то есть Sum Sales).

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!