В этой заметке я опишу как в поле Неделя (в таблице календаря модели Qlik Sense) выбрать недели с первой по текущую.

Генерируем календарь:

//Формирование календаря
QuartersMap:  
MAPPING
LOAD rowno() as Month,  
     'Кв.' & Ceil (rowno()/3) as Quarter  
AUTOGENERATE (12);  

Temp:
LOAD MakeDate(2015,1,1) 		As minDate,
     Today() 					As maxDate
AutoGenerate 1;

Let vStartDate 	= Date(Num(Peek('minDate', 0, 'Temp')));
Let vEndDate 	= Date(Num(Peek('maxDate', 0, 'Temp')));

Let varMinDate 	= Num(Peek('minDate', 0, 'Temp'));
Let varMaxDate 	= Num(Peek('maxDate', 0, 'Temp'));
DROP Table Temp;  
      
TempCalendar:  
LOAD $(varMinDate) + Iterno()-1 As Num,  
     Date($(varMinDate) + IterNo() - 1) as TempDate
AutoGenerate 1
While $(varMinDate) + IterNo() -1 <= $(varMaxDate);  
      
Календарь:  
Load 
     Date(TempDate) 															As Дата,
     week(TempDate) 															As Неделя,
     Month(TempDate) 															As Месяц,
     ApplyMap('QuartersMap', month(TempDate), Null()) 							As Квартал,
     Year(TempDate) 															As Год,
     Day(TempDate) 																As НомерДень,
     Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) 						As НеделяГод,
     Month(TempDate) & '-' & Year(TempDate) 									As МесяцГод,
     ApplyMap('QuartersMap', month(TempDate), Null()) & '-' & Year(TempDate) 	As КварталГод,
     WeekDay(TempDate)													 		As ДеньНедели
Resident TempCalendar  
Order By TempDate ASC;

Drop Table TempCalendar;

В Qlik Sense Dashboard Bundle выбираем кнопку Button for navigation:

Перетаскиваем объект на лист приложения Qlik Sense:


Настраиваем кнопку “Select a value in a field”:

Формула Value для кнопки:

='=(Неделя>=1 and Неделя<=Week(Today()))'

Результат работы кнопки:

Скачать модель Qlik Sense с примером:

0 0 голос
Рейтинг статьи

Подписаться
Уведомление о
guest
0 комментариев
Встроенная Обратная Связь
Просмотр всех комментариев
0
Оставьте, пожалуйста, комментарий!x
()
x