Неофициальный форум разработчиков QlikView и Qlik Sense

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

Вы не вошли.

#1 Re: Программирование QlikView » Метки на оси » 2015-02-19 16:55:39

Сложно ответить не видя всех настроек чарта и формул показателей. Можно попробовать указать формат значений прямо в формуле через num(expression, format). Либо создать объект заново (иногда помогает если возникают непонятные проблемы с отображением)

#2 Re: Программирование QlikView » Выборка данных в qlikview » 2015-02-19 16:50:05

Нужно создать таблицу с измерением, например Сотрудник, и в качестве показателя записать следующую формулу:

sum({<Месяц={'$(=max(Месяц))'}>} СуммаПродаж)//текущий месяц
-sum({<Месяц={'$(=max(Месяц-1))'}>} СуммаПродаж)//прошлый месяц

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

#3 Re: Программирование QlikView » Помогите со структурой данных в Qlikview » 2015-02-19 16:42:21

Необходимость использования Loosen table, как правило, возникает в случае не очень продуманой модели данных, не рекомендую пользоваться этой функцией без крайней необходимости. Для создания модели, в которой есть несколько фактовых таблиц, в любом случае придётся объединять их в одну таблицу, либо создавать одну связующую таблицу фактов.
Почитайте это - The QlikView Data Model & Working with Multiple Events раздел Central Link Table Solution.

#4 Re: Программирование QlikView » Совместно продаваемые товары » 2015-02-19 15:17:48

Например, есть таблица в которой есть товар и номер заказа. Нам нужно найти какие товары чаще оказываются вместе в одном заказе.
Пусть названия полей будут такими:
SKU - товар
Order - заказ

Если в разрезе товаров расчитать этот показатель:

count({<SKU, Order=p(Order)>}DISTINCT Order)
        /(
                count(TOTAL<Order> DISTINCT Order)
                +count({<SKU>} distinct Order)
                -count({<SKU, Order=p(Order)>}DISTINCT Order)
        )

, то выбрав какой либо товар, для всех остальных товаров мы получим долю количества общих заказов с тем, который выбрали.
Вот картинка для упрощения понимания логики.
b35b4994c67c4ab2b92893413ed44e23.png
Такой способ не позволяет найти все пары товаров, отсортировав их по доле общих заказов. Сделать это без расчёта на этапе загрузки данных, видимо, невозможно.

#5 Re: Программирование QlikView » Метки на оси » 2015-02-18 13:20:59

А вы пробовали менять формат значений на закладке Number в свойствах объекта?

#6 Re: Программирование QlikView » Вопрос по лицензиям » 2015-02-16 18:39:53

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

Здесь документация по лицензиям.

#7 Re: Программирование QlikView » Как создать столбчатую диаграмму с сегментами? » 2015-02-16 18:32:24

Тут есть несколько вариантов для разделения значений по диапазонам можно использовать функцию class но в этом случае не получится настраивать диапазоны.
Другой вариант - задать диапазоны явно через условия в IF, например:

if(sum(amount)>1000, '>1000',
if(sum(amount)>100, '100-1000',
if(sum(amount)>10, '10-100',
if(sum(amount)<10, '0-10',
))))

#8 Re: Программирование QlikView » можно ли расположить на 1-м листе 2 чарта с мерой? » 2015-02-16 18:22:39

Не уверен что правильно понял вопрос, но если требуется создать диаграмму, в которой будет игнорироваться выборка измерения, то нужно использовать выражение показателя, которое вернёт значение даже для тех элементов измерения которые не выбраны, для этого нужно "сбросить" выборку с помощью set-анализа, например выражение sum({<год>} сумма) вернёт сумму для всех лет, назвисимо от того какой выбран год.

#9 Re: Программирование QlikView » Сводная таблица » 2015-02-16 18:18:08

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

#10 Re: Программирование QlikView » Требуется объединить клиентов в одну табличку » 2015-02-16 17:47:46

Сначала сопоставление нужно загрузить через mapping load, затем при загрузке второй таблицы с клиентами написать applymap(Клиент, 'Сопоставление'). Т.к. набор полей в таблицах будет одинаковый, то таблицы автоматически сконкатинируются.

сопоставление:
mapping load клиент1, клиент2 from сопоставление;

клиенты:
load клиент from tab1;

load applymap(клиент, 'сопоставление') as клиент from tab2;

#11 Re: Программирование QlikView » Как сопоставить календарь событиям которые имеют дату начала и дату ко » 2015-02-16 17:41:49

В этой статье описано решение http://community.qlik.com/blogs/qlikvie … ervalmatch

С помощью функции intervalmatch нужно создать дополнительную связующую таблицу.

#13 Программирование QlikView » Скрытые ограничения QlikView - всё действительно так плохо? » 2015-02-11 17:49:45

Qliker
Ответов: 1

Нашёл разгромную статью о QlikView и о "скрытых ограничениях" этой платформы.

Мой вольный перевод некоторых пунктов:

  • Модель данных QlikView не является ассоциативной в классическом понимании

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

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

  • Нет возможности создания Pixel-Perfect отчётов, т.к. QlikView - изначально создавалась не для построения статических отчётов.

  • Ограниченые возможности ETL. Загрузка данных происходит с помощью скрипта загрузки, это часто бывает трудоёмкой задачей, особенно в случае если требуется обработать слабо структурированые данные.

Хотелось бы услышать комментарии экспертов smile
Спасибо!

#14 Программирование в Qlik Sense » QlikSense - пора изучать JavaScript? » 2015-02-11 17:05:47

Qliker
Ответов: 0

Весь GUI нового QlikSense построен на основе web-технологий: JS и html, означает ли это что в скором времени разработчикам нужно будет владеть этими технологиями для кастомизации отчётов?

У QlikSense сильно расширился API для взаимодействия с движком данных из web, это сильно упрощает создание так называемых mash-ups и позволяет использовать Qlik в качестве бэкэнда. В QlikView это тоже было было возможно с помощью div-integration, но, как я понял в новой версии Qlik многое сделано для упрощения интеграции объектов в произвольные сайты. Это напоминает Tableau Public, который позволяет встраивать диаграммы в произвольный сайт, блог, новостной портал или в корпоративный сайт.

Если я правильно понимаю, в QlikSense новые объекты визуализации комания QlikTech решила создавать используя краудсорсинг (branch.qlik.com). Стоит ли задуматься об изучении web-технологий или проще дождаться новых версий QlikSense, в которых будет весь набор необходимых расширений, которые позволят создавать визуализацию хотябы на том же уровне что в QlikView?

#15 Re: Программирование QlikView » Как сделать чтобы в иерархическом списке выбирались все подчинённые? » 2015-02-10 19:24:19

При выборе пункта в иерархическом ListBox выбираются подчинённые пунткы только если выбираемый пункт свёрнут.

#16 Re: Программирование QlikView » Сравнительная динамика по годам » 2015-02-10 19:21:37

Если требуется сравнить текущий год с прошлым то можно создать два показателя для текущейго и прошлого года

текущий год: sum({<year={"$(=max(total year))"}>}amount)
прошлый год: sum({<year={"$(=max(total year)-1)"}>}amount)

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

#17 Re: Программирование QlikView » Partial reload по таймеру » 2015-02-10 19:17:58

Это возможно если у Вас активирован QlikView Publisher или с помощью Windows Scheduler и команды

qv.exe "<путь к документу qvw>" /rp

#18 Re: Программирование QlikView » Парсинг поля с датой » 2015-02-10 19:13:42

Нужно использовать так называемы Preceding Load
Скрипт выглядит так:

tab:
LOAD c1,
        c2,
        date(date_column) as date;
SQL SELECT *
FROM DomTable;

Здесь вначале выполняется SQL запрос сервера БД, а затем оператор LOAD qlikview. В load можно применять любые функции обработки данных qlikview.

#19 Re: Программирование QlikView » Удаление части текста » 2015-02-10 19:08:35

PurgeChars(str, ':') - уберёт из строки str все символы которые указаны во втором параметре.
В разделе справки String Functions есть ещё много других полезных функций.

#20 Re: Программирование QlikView » Изменение цвета ячеек на основе их значений » 2015-02-10 19:05:20

Есть два решения:

1. с помощью настроек на закладке Visual Cues

2. с помощью вычисляемого цвета Expression.

В Background Color или в Text Color нужно задать формулу цвета.
Советую использовать
color(color index)
colormix1()

и визард создания формулы цвета.

1е решение работает быстрее, зато второе позволяет сделать более информативную индикацию.

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.008 сек, 8 запросов выполнено - Использовано памяти: 1.06 Мбайт (Пик: 1.18 Мбайт) ]