Post-Image

Производственный календарь

Рвав-рвав, всем хорошего настроения!

Представляем вашему вниманию свою 1-ю разработку комплекта отчетности “Офисная жизнь” – отчет “Производственный календарь”.

Итак, начинаем.

dev_001_screen

Календарь реализован при помощи DAX и Power Query, он содержит следующие расчеты:

  • Общее количество календарных дней;

  • Количество рабочих дней;

  • Количество рабочих часов;

  • Количество нерабочих дней, а именно: выходных и праздничных, отдельно показаны так называемые “перенесенные” дни.

    Все показатели рассчитаны при помощи мер на уровне DAX, исходный набор дат сделан на уровне Power Query. Календарь является параметрическим, то есть он может работать не только в течении календарного года, но и вне его рамок. Параметры задаются на уровне пользователя. При желании, данный функционал можно использовать в качестве фискального года.

    Разработка содержит 2 листа:

  • Собственно, сам отчет.

  • Памятка пользователя.

    Используемые элементы:

  • Скрывающаяся панель фильтров (стандартный функционал).

  • Кнопки.

  • Закладки.

  • В качестве основного элемента используется “Card” (“Карточка”).

  • Иконки.

  • Дополнительные украшательства – “Text box” (“Текстовое поле”), “Shapes” (“Фигуры”).

    В общем, на мой взгляд, дизайн получился вполне себе неплохим, а не согласные пусть себе не соглашаются, будете обзываться – покусаю (РВАВ!)

    Процесс разработки:

  • Для указания базового промежутка времени на уровне Power Query были созданы параметры “Start_Date” и “End_Date” – это даты начала и окончания периода, которые выведены в заголовок отчета.

  • Создана таблица “Calendar” – базовая таблица, определяющая набор дат для расчета.

  • Создана таблица “Russian_Holidays” – таблица настройки, содержащая список российских праздников, например, 1-е января 2019 г. Данная таблица является локальной, однако ее заполнение не составит особого труда.

    Лично я справляюсь минут за 5, правда у меня 4 лапы)

  • Создана таблица “Break_Days” – таблица настройки, содержащая даты так называемых “перенесенных” дней, например, в 20019 г. 2-е мая является нерабочим днем за счет 5-го января, выпавшего на субботу. По временя заполнения та же песня, хватит 5-ти минут, но, в отличии от предыдущей таблицы, этот список не является постоянным из года в год, и утверждается постановлением Правительства примерно в октябре.

    Попросил хозяина погуглить, самому неудобно.

    То есть, условия корректной настройки отчета на следующий год будут известны в 4-м квартале текущего.

  • Создана таблица “Time_Line” – справочник, определяющий продолжительность рабочей недели, поскольку неделя может быть, в общем виде, не только 40-ка часовой, но и сокращенной (36 часов, 24 часа), в зависимости от вредности работы.

    К тому же учтено, что перед федеральными праздниками продолжительность рабочего дня на 1 час меньше, например, 11-го июня 2019 г. работать будем 7 часов при 40-ка часовой рабочей неделе.

  • Создана таблица “Measure” – техническая таблица, созданная для удобства.

    Пуста, аки моя миска вечером (еда нынче в дефиците, поскольку размер миски существенно меньше того, что я могу съесть “не отходя от кассы”). Однако создана табличка не просто так, я туда меры складываю (р-р-р, надо написать отдельно в блог, если не забуду).

  • Создана таблица “Options” – содержит параметры отчета, о которых говорил в самом начале (отсекаем нужный отрезок времени, но обычно это календарный год). С Power Query, пожалуй, все.

  • Дальше не забываем создать нужные связи в нашей модели данных – это один из важнейших этапов в любой разработке Power BI.

    dev_001_relations

  • Затем при помощи DAX начинаем формировать нужные аналитические разрезы, и тут сюрприз: в получившемся календаре есть много того, что не выведено на страницу отчета, а именно полные и сокращенные названия кварталов, месяцев, есть номера дня в неделе и прочее. Тут все зависит от фантазии, потребности и возможности.

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

  • После этого рассчитываем кучу мер, складываем для удобства в отдельный “горшочек” (см. таблицу “Measure”, там их штук 10), и кстати, продолжительность рабочей недели – это так называемая “переключаемая мера”, сделать которую потянет на небольшой кейс, как-нибудь расскажу отдельно.

  • Когда все готово, можно приступать к визуализации данных;

  • Последний шаг – это раздумья над дизайном, но тут на вкус и цвет товарищей нет.

    Ключевые преимущества разработки, о которых хочется сказать в итоге:

  • Скорость работы – благодаря тому, что данные календаря, а именно список нерабочих дней, формируются локально (мы не парсим какой-то сайт, который, к тому же может быть недоступен), при изменении параметров периода обновление занимает 5 секунд (!).

    Граждане, даже я за это время велосипедиста с трудом догоню! (Если, конечно, хорошенько перед этим поем, хе-хе).

  • Настройка занимает 10 минут (!), все происходит легко и непринужденно.

  • Календарь может работать, как уже говорилось выше, вне календарного года, это можно использовать для формирования фискальных календарей.

  • Учтена разная продолжительность рабочей недели, и, собственно, предпраздничных дней.

  • Имеются различные разрезы времени (год, квартал, месяц, неделя) в различных вариациях (например, полные и короткие названия).

    В общем, удобство и простота – наше кредо!

    Что-то я устал писать, пойду погоняю кошек и спать… До новых встреч!

    Ваш Смайл

    P.S. На фото я мелкий, но про Power BI уже был наслышан.

    ДЛЯ ЛЮБИТЕЛЕЙ ПОНАЖИМАТЬ НА КНОПОЧКИ