
Аптечка первой помощи
Рвав-рвав, собака Смайл говорит: “Здрям!”
Представляем вашему вниманию свою 4-ю разработку комплекта отчетности “Офисная жизнь” – отчет “Аптечка первой помощи”, помогающий контролировать наличие в офисе такой важной вещи, как лекарства.
ВАЖНО: Информация, представленная в отчете, носит демонстрационный характер, и не является руководством к действию, собака Смайл при разработке активно пользовался гуглом.
Отчет реализован при помощи DAX и Power Query, и построен на базе производственного календаря.
Рвав-рвав, не устаю повторять, что “Производственный календарь” – наше все. Хотя, раскрою секрет, в данном случае он избыточен, и используется просто календарь с датами. Однако собака Смайл – маленький стратег, и где-то в голове у него стала мелькать идея создать комплект отчетности по принципу “Один файл – много отчетов”. Так что, зрим глубже, пишем универсально, по возможности – просто, и единообразно. (Наверно, вы уже заметили это по дизайну).
Разработка содержит 2 листа:
Лист “Отчет” – собственно, сам отчет, содержащий данные по состоянию аптечки в компании;
Лист “Информация” – памятка пользователя.
Используемые элементы:
Кнопки.
Иконки.
Закладки.
Подсказки.
В качестве основного элемента используется “Table” (“Таблица”), а дополнительного – “Card” (“Карточка”) и “Donut chart” (“Кольцевая диаграмма”).
Дополнительные украшательства – “Text box” (“Текстовое поле”), “Shapes” (“Фигуры”), условное форматирование.
Процесс разработки:
Для указания базового промежутка времени на уровне Power Query были созданы параметры “Начало периода” и “Конец периода” – это даты начала и окончания периода, которые выведены в название отчета.
Создана таблица “Календарь” – базовая таблица, определяющая набор дат для расчета.
Создана таблица “Праздники” – таблица настройки, содержащая список российских праздников.
Создана таблица “Переносы” – таблица настройки, содержащая даты так называемых “перенесенных” дней.
Создана таблица “Меры” – техническая таблица, созданная для удобства, складываем туда меры (по старинке), хоть теперь можно их группировать при помощи каталогов.
Создана таблица “Параметры” – содержит параметры отчета для указания необходимого отрезка времени.
Создана таблица “Плановые позиции” – содержит набор исходных данных, который имеет минимально необходимую структуру для планирования стоимости аптечки, а именно:
– наименование позиции, которая должна быть в аптечке;
– плановое количество указанных позиций (поскольку, их может быть больше одной в зависимости от количества сотрудников);
– плановую цену позиции (ориентировочная цена позиции, так сказать, чтобы представлять бюджет).
Создана таблица “Фактические позиции” – содержит набор исходных данных, который имеет минимально необходимую структуру для контроля текущего состояния аптечки, а именно:
– наименование позиции, которая должна быть в аптечке;
– фактическое количество указанных позиций;
– дату проверки аптечки;
– фактический срок годности конкретной позиции.
Создана таблица “Справочник позиций” – содержит набор исходных данных, в котором отражена следующая информация:
– приоритет позиции;
– наименование позиции;
– форму выпуска позиции;
– заявленный срок годности позиции;
– назначение позиции;
– фармакологическая группа
На этом работы с Power Query завершены.
Рвав-рвав, видимо, тут стоит пояснить, почему, собственно, так “сложно”.
Итак, логика хитрой собаки следующая:
Количество позиций может быть различно, в зависимости от количества сотрудников, работающих в офисе (планирование количества обязательно, так как таблеток может на всех не хватить).
Цена позиции, используемая для оценки стоимости аптечки, близка к реальной, для большей точности конечный потребитель может ее периодически актуализировать, или выставлять фактические цены последней закупки.
Срок годности позиций может быть разным даже при одинаковом названии позиции (например, в аптеке лекарства попались из разных партий). Также есть позиции без срока годности (например, медицинские ножницы), или с большим сроком годности (например, тонометр).
Есть очень важный момент: препарат может быть в наличии, но при этом просрочен, что, в свою очередь, означает, что по факту его нет.
Рвав-рвав, просроченные лекарства отправляем в утиль, однозначно!
Проверку состояния аптечки лучше делать, например, ежемесячно, то есть мы предполагаем, что сроки годности вносятся исправно, а просроченные позиции заменяются нормальными на постоянной основе :-)
Также важно понимать разницу между позициями, составляющими “джентельменский набор” (в примере использовано 20 наименований), и позициями, которые необходимо закупить (их может быть больше 20, в зависимости от размеров коллектива). То есть первое – это некая постоянная величина, когда отсутствие чего-либо дает повод, как минимум, озаботиться данным вопросом, а второе можно планировать в зависимости от частоты наступления конкретных обстоятельств.
Рвав-рвав, роще говоря, не стоит народ на лапах – покупай бинты и йод!”
Следующим этапом является проверка связей получившейся модели данных, и их корректировка в случае необходимости. Схема связей представлена ниже:
Затем при помощи DAX начинаем формировать нужные аналитические разрезы, например, производим деление общего массива данных, сформированного в таблице “Dataset_Actual”, на дополнительные составляющие: в соответствии со сроком годности получаем статус позиции, равный “Нормально” или “Просрочено”.
Далее, при помощи мер, производится расчет необходимых показателей для формирования итогового количества позиций по закупке. Данное количество также распределено по статусам.
При визуализации данных был применен функционал условного форматирования.
При визуализации данных был применен функционал всплывающих подсказок.
Управление фильтрацией данных в разрезе временных периодов не реализовано специально (за исключением параметров), поскольку в данном отчете, по нашему мнению, важно именно состояние в настоящий момент времени. Именно для этого введена информация о дате последней проверки.
Особенности разработки:
Работа и функционал созданного календаря подробно описана в одной из предшествующих статей, все преимущества сохранены.
При разработке сделано допущение, что информация вносится в источник данных в разрезе каждой позиции. Также, справочник позиций, используемый в качестве демонстрационных данных, должен быть расширен в соответствии с потребностями конкретной организации.
Отчет, на начальном этапе, подскажет, что можно использовать для облегчения появившегося недомогания (см. фильтр “Симптомы”), однако это не панацея, и, по-хорошему, нужно обратиться к врачу.
Дополнительно обозначена примерная стоимость аптечки.
При разработке отчета данные исходного набора значений вносились непосредственно в Power BI (таблицы “Плановые позиции”, “Фактические позиции” и “Справочник позиций”), дабы конечный файл не зависел от внешних источников. Переключение на внешние источники данных не составляет проблем.
Рвав-рвав, граждане, здоровье – штука важная, своевременно и правильно используя данную разработку, можно избежать множества проблем, если вдруг “авось” все-таки наступит.
Правда в случае, как у меня на фото, одним йодом не отделаешься. Когда повредил лапу, хозяин, бросив все, вез меня на такси к хирургу. Дело было зимой, напоролся на стекло, закончилось все нормально.
Собственно, на этом все. Будьте здоровы!
Ваш Смайл
ДЛЯ ЛЮБИТЕЛЕЙ ПОНАЖИМАТЬ НА КНОПОЧКИ