Post-Image

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

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

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

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

dev_001_screen

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

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

  • Общее количество рабочих дней, при этом отдельно выделены сокращенные рабочие дни.

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

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

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

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

  • Лист «Отчет» – собственно, сам отчет, содержащий сводные показатели производственного календаря;

  • Лист «Информация» – памятка пользователя.

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

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

  • Кнопки.

  • Иконки.

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

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

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

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

  • Для указания базового промежутка времени на уровне Power Query были созданы параметры «Начало периода» и «Конец периода» – это даты начала и окончания периода, которые выведены в название отчета.

  • Создана таблица «Календарь» – базовая таблица, определяющая набор дат для расчета.

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

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

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

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

  • Создана таблица «Длительность недели» – справочник, определяющий продолжительность рабочей недели, поскольку неделя может быть, в общем случае, не только 40-ка часовой, но и сокращенной (36 часов, 24 часа), в зависимости от вредности работы. К тому же учтено, что перед федеральными праздниками продолжительность рабочего дня на 1 час меньше, например, 11-го июня 2019 г. работать будем 7 часов при 40-ка часовой рабочей неделе.

  • Создана таблица «Меры» – техническая таблица, созданная для удобства.

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

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

    Рвав-рвав, с Power Query, пожалуй, все.

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

    dev_001_relations

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

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

  • После этого рассчитываем кучу мер, складываем для удобства в отдельный «горшочек» (см. таблицу «Меры»).

    Рвав-рвав, кстати говоря, продолжительность рабочей недели – это так называемая «переключаемая мера», сделать которую потянет на небольшой кейс, как-нибудь расскажу отдельно.

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

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

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

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

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

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

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

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

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

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

    Что-то я устал писать, пойду погоняю кошек и спать…

    До новых встреч!

    Ваш Смайл

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

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