Post-Image

Аптечка первой помощи

Рвав-рвав, собака Смайл говорит: “Здрям!”

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

ВАЖНО: Информация, представленная в отчете, носит демонстрационный характер, и не является руководством к действию, собака Смайл при разработке активно пользовался гуглом.

dev_003_screen

Отчет реализован при помощи DAX и Power Query, и построен на базе производственного календаря.

Рвав-рвав, не устаю повторять, что “Производственный календарь” – наше все. Хотя, раскрою секрет, в данном случае он избыточен, и используется просто календарь с датами. Однако собака Смайл – маленький стратег, и где-то в голове у него стала мелькать идея создать комплект отчетности по принципу “Один файл – много отчетов”. Так что, зрим глубже, пишем универсально, по возможности – просто, и единообразно. (Наверно, вы уже заметили это по дизайну).

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

  • Лист “Отчет” – собственно, сам отчет, содержащий данные по состоянию аптечки в компании;

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

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

  • Кнопки.

  • Иконки.

  • Закладки.

  • Подсказки.

  • В качестве основного элемента используется “Table” (“Таблица”), а дополнительного – “Card” (“Карточка”) и “Donut chart” (“Кольцевая диаграмма”).

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

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

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

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

  • Создана таблица “Праздники” – таблица настройки, содержащая список российских праздников.

  • Создана таблица “Переносы” – таблица настройки, содержащая даты так называемых “перенесенных” дней.

  • Создана таблица “Меры” – техническая таблица, созданная для удобства, складываем туда меры (по старинке), хоть теперь можно их группировать при помощи каталогов.

  • Создана таблица “Параметры” – содержит параметры отчета для указания необходимого отрезка времени.

  • Создана таблица “Плановые позиции” – содержит набор исходных данных, который имеет минимально необходимую структуру для планирования стоимости аптечки, а именно:

    – наименование позиции, которая должна быть в аптечке;

    – плановое количество указанных позиций (поскольку, их может быть больше одной в зависимости от количества сотрудников);

    – плановую цену позиции (ориентировочная цена позиции, так сказать, чтобы представлять бюджет).

  • Создана таблица “Фактические позиции” – содержит набор исходных данных, который имеет минимально необходимую структуру для контроля текущего состояния аптечки, а именно:

    – наименование позиции, которая должна быть в аптечке;

    – фактическое количество указанных позиций;

    – дату проверки аптечки;

    – фактический срок годности конкретной позиции.

  • Создана таблица “Справочник позиций” – содержит набор исходных данных, в котором отражена следующая информация:

    – приоритет позиции;

    – наименование позиции;

    – форму выпуска позиции;

    – заявленный срок годности позиции;

    – назначение позиции;

    – фармакологическая группа

    На этом работы с Power Query завершены.

    Рвав-рвав, видимо, тут стоит пояснить, почему, собственно, так “сложно”.

    Итак, логика хитрой собаки следующая:

  • Количество позиций может быть различно, в зависимости от количества сотрудников, работающих в офисе (планирование количества обязательно, так как таблеток может на всех не хватить).

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

  • Срок годности позиций может быть разным даже при одинаковом названии позиции (например, в аптеке лекарства попались из разных партий). Также есть позиции без срока годности (например, медицинские ножницы), или с большим сроком годности (например, тонометр).

  • Есть очень важный момент: препарат может быть в наличии, но при этом просрочен, что, в свою очередь, означает, что по факту его нет.

    Рвав-рвав, просроченные лекарства отправляем в утиль, однозначно!

  • Проверку состояния аптечки лучше делать, например, ежемесячно, то есть мы предполагаем, что сроки годности вносятся исправно, а просроченные позиции заменяются нормальными на постоянной основе :-)

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

    Рвав-рвав, роще говоря, не стоит народ на лапах – покупай бинты и йод!”

  • Следующим этапом является проверка связей получившейся модели данных, и их корректировка в случае необходимости. Схема связей представлена ниже:

    dev_002_relations

  • Затем при помощи DAX начинаем формировать нужные аналитические разрезы, например, производим деление общего массива данных, сформированного в таблице “Dataset_Actual”, на дополнительные составляющие: в соответствии со сроком годности получаем статус позиции, равный “Нормально” или “Просрочено”.

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

  • При визуализации данных был применен функционал условного форматирования.

  • При визуализации данных был применен функционал всплывающих подсказок.

  • Управление фильтрацией данных в разрезе временных периодов не реализовано специально (за исключением параметров), поскольку в данном отчете, по нашему мнению, важно именно состояние в настоящий момент времени. Именно для этого введена информация о дате последней проверки.

    Особенности разработки:

  • Работа и функционал созданного календаря подробно описана в одной из предшествующих статей, все преимущества сохранены.

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

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

  • Дополнительно обозначена примерная стоимость аптечки.

  • При разработке отчета данные исходного набора значений вносились непосредственно в Power BI (таблицы “Плановые позиции”, “Фактические позиции” и “Справочник позиций”), дабы конечный файл не зависел от внешних источников. Переключение на внешние источники данных не составляет проблем.

    Рвав-рвав, граждане, здоровье – штука важная, своевременно и правильно используя данную разработку, можно избежать множества проблем, если вдруг “авось” все-таки наступит.

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

    Собственно, на этом все. Будьте здоровы!

    Ваш Смайл

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