CalcDim — функция диаграммы
При использовании в выражении измерения CalcDim() переопределяет в подсистеме автоматическую интерпретацию внутренней обработки выражения. А именно, функция предотвращает создание нового внутреннего поля в модели данных. Вместо этого выборки, сделанные в приложении, обрабатываются как выборки в применимых полях из исходной модели данных.
Эта функция не может использоваться в Скрипте загрузки. Кроме того, для повышения производительности системы рекомендуется по возможности загружать поля, используемые в вычисляемом измерении, как логические поля с помощью Скрипта загрузки. CalcDim() предлагает способ управления поведением ядра в сценариях, когда загрузка вычисляемого поля из скрипта невозможна.
В Qlik Sense выражение измерения по умолчанию реализуется как динамическое поле — то есть как фактическое поле, видимое в текущей полосе выбора, создаваемое по запросу. Выборки применяются и выводятся для этого поля, аналогично любому логическому полю из скрипта.
Выражение, заключенное в CalcDim() , будет вести себя так же, как все выражения вычисляемых измерений работают в QlikView, что представляет собой специальное сопоставление вычисленных значений с базовыми значениями исходного поля. Все вычисления «на лету» могут быть перенесены в вычисляемые измерения с помощью функции CalcDim(), поскольку вычисляемое измерение должно соответствовать меньшим требованиям на основе модели данных, чем соответствующее вычисление «на лету». Это преобразование может быть желательным для обеспечения аналогичного поведения для всех вычисляемых измерений, где модель данных может препятствовать использованию вычисления «на лету» в одних случаях, но не в других.
Синтаксис:
CalcDim(expr)
Возвращаемые типы данных: двойное значение
Аргумент | Описание |
---|---|
expr |
Выражение, используемое в качестве измерения или в качестве сегмента в выражении измерения. |
Когда использовать CalcDim
CalcDim() полезно, когда вам нужен больший контроль над тем, как механизм Qlik обрабатывает поля, которые вы вызываете в выражении измерения.
По умолчанию Qlik Sense автоматически решает, создавать ли и ссылаться ли на внутренние поля в модели данных при использовании пользовательского выражения измерения. Qlik Sense создает и использует эти внутренние поля, когда это возможно. Когда это невозможно, выражение обрабатывается со ссылкой на существующие поля модели данных, на которые оно опирается.
В зависимости от вашего варианта использования, эта автоматическая обработка не всегда может быть желательной. Например, если вы используете переменную в выражении измерения, автоматическое создание новых полей может стать проблематичным. В этом случае используйте CalcDim(), чтобы принудительно обработать выражение без использования этого метода.
Ниже приведены некоторые распространенные варианты использования:
-
Вы перенесли содержимое QlikView в Qlik Sense и хотите сохранить метод обработки QlikView для вычисляемых измерений.
-
Вы хотите упростить поведение выбора в вашем приложении. Например, вы предпочитаете отображать выборки полей как выборки в полях из исходной модели данных, а не как выборки в новых полях.
-
Ваш вариант использования требует специального выражения для согласованности и производительности. Например, если ваше выражение измерения содержит управляемые пользователем динамические параметры визуализации, такие как управляемое форматирование, пороговые значения или периоды.
Пример | Результат |
---|---|
=CalcDim(if(Year < 2023, 'Older', Year)) |
Выбор в визуализации, использующей это измерение, будет обработан и отображен как выбор в соответствующем значении поля Year из модели данных. И наоборот, предположим, вы не заключаете выражение в CalcDim(). В этом случае это будет выглядеть так: =if(Year < 2023, 'Older', Year) Выбор в приведенном выше выражении будет обработан и отображен как выбор во внутреннем поле =if(Year < 2023, 'Older', Year), которое отсутствует в модели данных. |