Нестандартные динамические показатели/дашборды

Доброго времени суток!

Есть задача у заказчика: нужны дашборды (мы выбрали "Показатель"), которые будут динамически меняться, в зависимости от текущей недели. Точнее - по неделям на 5 недель вперед. По общей сути - эти показатели отображают сумму по конкретному полю по всем записям в разделе.

Например. Нужны показатели тек. недели, показатель след. недели, показатель недели после следующей и т.д. до 5 недель. Как только наступает понедельник новой недели, эти показатели также передвигаются на неделю. 

На счет фильтра по "Тек. недели" и "След. недели" знаю, использую, но этого заказчику недостаточно.

Такую же ситуацию и с месяцами требуют, чтобы отображались, например, месяцы текущего квартала, или на 3 месяца вперед. И чтобы всё динамически передвигалось, желательно ещё и со сменой названий показателей.



Ниже прикреплю скриншоты, о чем идёт речь.



Не могли бы подсказать, какие варианты есть по этому кейсу? С кодированием я не очень силён; но (если через код) может тогда подскажите направление, чтобы я дальше уже спросил своих, кто с кодом ладит?

Работаю на 7.16.1

Изображение удалено.

Изображение удалено.

Нравится

1 комментарий

Добрый день, Андрей!

Базовой логикой приложения нет возможности построить данный тип показателей.

Самый оптимальный вариант, с минимумом затрат и загрузкой сервера, для решения Вашей бизнес-задачи будет создание представление (VIEW), которое будет содержать нужные данные. А потом использовать его для построения Показателя. В Вашем случаи, представление с расчётными полями: Дней, Недель, Месяцев и Лет. Которые будут считать разницу в днях, неделях, месяцах, годах между датой того что Вам надо получить и текущей датой.

Например на активностях:

SELECT datepart(wk, getdate()) - datepart(wk, StartDate) as 'Недель', * -- другие необходимые поля

FROM Activity

А потом строить Показатель на основании этого представления, с фильтрами "Недель" = -2 (для позапрошлой недели) или "Недель" = 2 для след. следующей недели. where (datepart(wk, getdate()) - datepart(wk, StartDate)) = -17 (событие которые было 17 недель назад

На ответственной команде разработки уже есть задача по совершенствованию фильтром для возможности построения Дашбордов без использования представлений.

Детальнее о работе с представлениями Вы можете ознакомиться на сайте Академии:

https://academy.terrasoft.ru/documents/technic-sdk/7-16/lokalizaciya-pr…

А также просмотреть похожие посты на здесь на Сommunity. Вот один из примеров построения представления https://community.terrasoft.ru/questions/sozdanie-obekta-na-osnove-db-v…

С уважением, Елена.

Показать все комментарии