Допустим вы ведете файл Excel с продажами сотрудников. Вы бы хотели видеть результаты продаж за месяц в виде графика. Так быстрее и проще оценить эффективность сотрудника. Хорошо бы видеть разницу в показателях с предыдущим днем. Такой отчет необходим вам каждое утро. На помощь к нам приходит FastReport Desktop. С помощью него мы создадим отчет с красивым графиком и поставим задачу в планировщике на ежедневную отправку отчета к вам на электронный почтовый ящик.
Определимся с источником данных. Это будет csv файл, например, с таким содержанием:
У нас три колонки: номер заказа, дата оформления заказа, фамилия продавца.
Предположим этот файл ежедневно пополняется новыми данными. Тогда каждое утро начальник будет получать отчет с графиком продаж по сотрудникам.
Давайте создадим отчет. Добавляем новый источник данных – CSV файл.
Размещаем на странице отчета объект Диаграмма. Не важно на каком бэнде. Пусть это будет бэнд Данные.
Как вы заметили, заголовок отчета содержит дату:
Мы воспользовались системной переменной [Date], а, чтобы отобразить дату без времени применили функцию FormatDateTime.
Перейдем к диаграмме. Сделаем двойной клик по ней:
Вверху справа нужно выбрать источник данных для диаграммы, который называется у нас «Диаграмма». Диаграмма состоит из серий, которые собственно и представляют собой диаграммы. У нас уже есть одна добавленная серия – Series 1. Кликаем по ней.
На вкладке «Данные» нам нужно определить какие поля из источника мы будем отображать. Для значения X выбираем поле FirstName. Для значения Y – OrderID.
Выше есть поле «Фильтр». В него добавим вот такое сложное выражение:
FormatDateTime(ToDateTime([Диаграмма.OrderDate]), "MMYYYY") == FormatDateTime([Date], "MMYYYY")
Здесь мы получаем месяц и год из поля OrderDate и сравниваем его с текущим месяцем и годом. Таким образом мы фильтруем актуальные для текущего года и месяца данные.
Изменим имя серии на «Сегодня»:
Перейдем на вкладку «Обработка данных». Здесь мы включим группировку данных по «Значению X», а функция - Количество:
На вкладке «Подписи» выбираем «Тип подписи:» - Y
Теперь давайте добавим еще одну серию в диаграмму и назовем ее «Вчера»:
Настраиваем ее с такими же параметрами, как и первую серию, с одним лишь изменением. В фильтре появится еще одно условие:
(FormatDateTime(ToDateTime([Диаграмма.OrderDate]), "MMYYYY") == FormatDateTime([Date], "MMYYYY"))&&(ToDateTime([Диаграмма.OrderDate])<AddDays([Date],-1))
Теперь мы проверяем, чтобы данные были на дату меньше текущей на один день. Это даст нам возможность сравнить продажи на сегодняшний и вчерашний день.
Итак, отчет готов. Давайте создадим конфигурацию, которая будет отправлять отчет по почте. Запускаем приложение Configurator из пакета FastReport Desktop.
Выбираем файл отчета, отмечаем опцию «Export as» и выбираем формат PDF. Теперь включаем опцию «Send e-mail». При этом будет предложено настроить отправку писем:
И
Сохраняем файл конфигурации с помощью кнопки Save.
Запускаем приложение Scheduler из пакета FastReport Desktop.
Создаем задачу и редактируем параметры:
Выбираем файл конфигурации, триггер – Every day, дату и время начала. Периодичность повторения 1 день. Теперь каждый день в 17.00 начальнику будет приходить письмо на электронный почтовый ящик.
Давайте ради интереса запустим задачу, не дожидаясь времени исполнения. Делаем правый клик по задаче и выбираем Run task now:
И получаем письмо с вложенным pdf файлом. А в нем наш график:
Как видите, за какие-то 10-15 минут мы создали полезный инструмент для контроля. Вы также можете автоматизировать отправку других графиков и диаграмм.