QlikView Set Analysis

Set Analysis — это мощный набор синтаксиса, который широко используется в приложениях QlikView и Qlik Sense, но я обнаружил, что многие разработчики не знают об одной из самых полезных функций.
Здесь я объясню, как её использовать.

Set Analysis для Qlik Sense и QlikView

У разработчиков Qlik есть множество синтаксиса для изучения. От операторов SQL, сценариев загрузки и макросов VBA. Set Analysis – это подмножество синтаксиса, который может вызвать некоторые вопросы у разработчиков.
Однако это очень просто. Вы можете добавить Set в выражение, которое изменяет контекст выбора для этого выражения — эффективно принудительное выделение, которое применяется только к одному выражению. Так sum(Value) станет sum({}Value), если вы хотите только добавить значения, отмеченные как Relevant. Вложенным синтаксисом Set Analysis и использованием разных операторов могут быть построены очень сложные выражения. Однако все они просто расшифровываются по очень простой концепции выделения полей.

Контринтуитивное поведение

Одна из проблем Set Set заключается в том, что результаты могут быть неинтуитивными для пользователей. Когда Qlik-продукты объясняются им, они говорят, что их выбор влияет на все. Хотя выражения Set Analysis меняют эти варианты. Это изменение должно всегда четко обозначаться пользователями с помощью ярлыков и легенд.
Для таких вещей, как сравнение в предыдущем периоде, Set Analysis является отличным вариантом.

Введите Star Equals

Общим примером использования Set Analysis является привязка диаграммы или выражения к измеримому значению. Обычно я вижу, что это реализовано в коде людей с помощью оператора Equals, как в приведенном выше примере. Это отменяет выбор пользователей. Другим оператором, который можно использовать, является Star Equals, это дает пересечение того, что указано в наборе и выборе пользователей.
Примите к сведению этот пример, показанный без выбора:

Вы заметите, что Equals и Star Equals дают одинаковые результаты выше. Посмотрите, что произойдет, когда мы выберем один регион:

С Equals выбор пользователя полностью игнорируется, тогда как с Equals Star, он применим. Это гораздо более интуитивно понятно для пользователей, поскольку вы прививаете им, что выбор влияет на все объекты, но Set Analysis без * = затем разрывает это.
Для сравнения в предыдущем периоде может быть, что вы хотите игнорировать выбор пользователей, поэтому, если они выбирают только 2016, вы все равно хотите показать 2015 в качестве сравнительного периода. Вообще, хотя я думаю, что Star Equals — лучший подход.
Аналогичный подход может применяться с обеих сторон выражения сравнения. Возьмем, к примеру, эти четыре разных датчика, все отредактированные в одном и том же контексте (выбрано «Юг») и с разным Set Analysis (или отсутствием) по обеим сторонам уравнения:

Объясним результаты:
1. Север является фиксированным выбором с левой стороны, но знаменатель учитывает выбор — поэтому вы получаете Север в процентах от Юга (что имеет мало смысла).
2. Север применяется с * =, поэтому север не в выборе он показывает нуль%.
3. Север фиксируется как область, используемая в качестве части, и с областью, игнорируемой для знаменателя (используя =), показанный процент точно такой же, как если бы не было выбора.
4. Север показан в процентах от всех регионов, и без Севера в качестве части отбора (и с * =) он точно совпадает со вторым вариантом.
Это показывает, что есть варианты того, как вы применяете Set Analysis к вашим выражениям, и вам нужно тщательно подумать о том, что вы применяете. Даже в этом простом примере с одним выбранным полем многое предстоит рассмотреть.

Почему это больше не используется?

Основная причина, что так мало разработчиков знают об этой функции, я думаю, связана с ошибкой в QlikView. Во многих версиях использование Star Equals подчеркивается красной линией, указывающей на плохой синтаксис. Однако подсветка синтаксиса является лишь руководством, иногда вам просто нужно проигнорировать её. Это делает все остальное развитие этого выражения более сложным, но так вы продвинетесь.

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

64 queries in 0,190 seconds