Динамические поля в табличной диаграмме

Автор RinatG, 22 сентября 2021, 09:04:35

« назад - далее »

RinatG

Можно ли реализовать следующий подход в QlikView:
Имеется некий справочник последовательных действий бизнес процессов [tab1], который описывается:
i  Шаг   ДАТА
1. Шаг 1 [Дата шага 1]
2. Шаг 2 NULL
3. Шаг 3 [Дата шага 3]
....
n. Шаг n [Дата шага n]
База данных самих БП (tab2) содержит уникальный код БП и регистрацию даты начала этапов, но не все этапы имеют эту регистрацию. То есть поля заполнения в tab2 выглядят так [Дата шага 1], [Дата шага 3], [Дата шага n] - сразу скажу, что никакой системной логики в последовательности нет, просто какие то шаги регистрируются, какие то просто отмечаются как факт свершения.
Хочу вывести табличную диаграмму, в которой измерение - наименование шага, а вычисляемое поле ВПР(i,tab1,3) или NULL, если даты нет в tab1 и tab2 или она еще пустая. То есть для каждого значения Измерения формируется собственная выборка значений из РАЗНЫХ полей.
Вывод данных планирую осуществлять только при выполнении условия выбора одного БП. Таким образом хочу реализовать визуализацию этапов и соответствующих дат при персональном просмотре выбранного БП.
Спасибо!

Maks248

трудно ставить диагноз по фото. Выложите пример с загруженными данными. Лучше в QS.

RinatG

LOAD * Inline [
 i, Этап, ДатаПривязки
 1, Регистрация вызова, Дата1
 2, Инциация потребности,Дата2
 3, Заявка подана, Дата3
 4, Офрмление заявки,
 5, Регистрация заявки, Дата5
 6, План закупки,
 7, Закупка,
 8, Подведение итогов, Дата8
 
 ];

  LOAD * Inline [
 ID, БП, i, Дата1, Дата2, Дата3, Дата5, Дата8
 1, БП1, 8, 01.02.2021, 12.03.2021,02.04.2021,10.08.2021,
 2, БП2, 4, 12.02.2021, 12.04.2021,15.05.2021,
 3, БП3, 2, 01.06.2021, 20.09.2021,
 4, БП4, 4, 10.08.2021, 30.08.2021, 03.09.2021,,
 5, БП5, 1, 19.09.2021,
 
 ];

RinatG

При выборе БП1 получается:
Этап Дата1 Дата2 Дата3 Дата5 Дата8
Регистрация вызова - - - - -
Инциация потребности - - - - -
Заявка подана - - - - -
Офрмление заявки - - - - -
Регистрация заявки - - - - -
План закупки - - - - -
Закупка - - - - -
Подведение итогов 01.02.2021 12.03.2021 02.04.2021 10.08.2021

RinatG

#4
А хотелось бы реализовать:
<B>Этап   Дата события</B>
Регистрация вызова   01.02.2021
Инциация потребности   12.03.2021
Заявка подана   02.04.2021
Офрмление заявки   -
Регистрация заявки   10.08.2021
План закупки   -
Закупка   -
Подведение итогов   -

RinatG

А хотелось бы реализовать:
Этап Дата события
Регистрация вызова 01.02.2021
Инциация потребности 12.03.2021
Заявка подана 02.04.2021
Офрмление заявки -
Регистрация заявки 10.08.2021
План закупки -
Закупка -
Подведение итогов -

govorun


RinatG

#7
Поле i - идентификатор текущего статуса
Как то можно добавить к мере диаграммы функцию, чтобы она формировала список. Например,
1 | Регистрация вызова         | f(1)={01.02.2021; 12.02.2021; 01.06.2021; 10.08.2021; 19.09.2021}
2 | Инициация потребности | f(2)={12.03.2021; 12.04.2021; 20.09.2021; 30.08.2021; NULL}
....

При выборке конкретного процесса останется только одна дата в каждой строке и получится то что нужно. Например БП1:
1 | Регистрация вызова         | f(1)={01.02.2021}
2 | Инициация потребности | f(2)={12.03.2021}
....

Maks248

#8
Для формирования такого списка 01.02.2021; 12.02.2021; 01.06.2021; 10.08.2021; 19.09.2021 -
Concat(distinct(Дата),';')

Для формирования списка для сет-анализа, чтоб в одинарных кавычках каждое значение было - так:
Chr(39) & Concat(distinct [Дата] & Chr(39) & ',' & Chr(39)) & Chr(39)

RinatG

Maks248, спасибо за предложение, но cхема не работает.

Мне кажется надо копать в следующем направлении: FieldValue(ДатаПривязки,elem_no)
При формировании диаграммы "Прямая таблица" с измерением "Этап" и выражением FieldValue(ДатаПривязки,elem_no), где вместо elem_no подставить экспериментально число, например, 1 - все работает.
Осталось только:
- либо как то вычислить elem_no выбранной позиции БП, чтобы подставит вместо единички .
- либо в как то в цикле собрать все значения из соответствующего поля и отразить списком дат.

Подтолкните мысль пжлста.

RinatG

Друзья, решение найдено  ;D .
FieldValue(ДатаПривязки,FieldIndex('БП',БП))
Тему можно закрыть!

Яндекс.Метрика