Вопрос или проблема
Мы ищем программное обеспечение или инструмент, который поможет нам автоматизировать распределение отчетов.
Мы используем MS SQL Server 2016 и SSRS (Службы отчетности SQL Server), у нас есть знания по кодированию на SQL.
Наш текущий ручной процесс:
У нас есть представление, показывающее данные о продажах (по строкам счетов, с деталями клиентов и именем продавца), которое мы запускаем/обновляем в Excel, помещаем в сводную таблицу, копируем/вставляем в пустой файл как обычную таблицу, а затем отправляем по электронной почте группе пользователей. Формат такого отчета представлен ниже.
Наша цель
Мы хотим отправлять каждому пользователю только его данные (только те строки, где он/она указаны как продавец). Это можно сделать в SSRS, но поскольку у нас 40 продавцов, это требует создания 40 заданий, что сложно реализовать и поддерживать.
Требования к ПО
– возможность сохранять отчет в разных форматах (XLSX, PDF и т.д.)
– возможность комбинировать несколько отчетов в 1 файле XLSX (на разных листах)
– возможность экспортировать отчеты на электронные почты, в папки, на веб-страницы и т.д.
– возможность прикреплять несколько отчетов в 1 электронном письме
– возможность планировать создание отчетов или запускать его по событию
Дополнительная информация
– подойдёт как коммерческое, так и открытое ПО
– бюджет: мы готовы заплатить максимум “сотни долларов США” за бессрочную лицензию
– мы будем использовать этот инструмент ежедневно
– мы будем генерировать около 100 отчетов ежедневно
Вот инструмент для написания SQL-скриптов, который может сделать большинство из того, что вы ищете: https://execsql.readthedocs.io/en/latest/. Предупреждение: я его написал. Он используется мной и моими коллегами ежедневно на протяжении нескольких лет. Из функций, которые вам нужны, он может:
-
Сохранять экспорты базы данных в 15 фиксированных форматах, а также создавать отчеты на языках шаблонов. Он экспортирует в .ODS вместо .XLSX. PDF-файлы могут быть созданы путем экспорта в Markdown и использования
pandoc
для конвертации их в PDF (см. Пример 8). -
Комбинировать несколько отчетов в один файл ODS на разных листах.
-
Экспорты могут быть записаны в папки и выведены в HTML. Он может отправлять электронную почту и прикреплять отчетные файлы, которые он только что создал.
-
Он поддерживает только одно вложение в письме, так что если вы хотите несколько отчетов в одном письме, они должны находиться на отдельных страницах таблицы.
-
Он не имеет встроенного планировщика; планирование должно быть реализовано на уровне операционной системы.
Устранение ручного создания сводной таблицы, вероятно, сэкономит много времени; вы рассматривали использование команды SQL Server PIVOT
?
Создание отдельных отчетов для 40 продавцов – это просто: Пример 6 в документации иллюстрирует, как это сделать.
Ответ или решение
Для автоматизации распределения отчетов в вашей ситуации, вам необходимо рассмотреть несколько инструментов и решений, которые смогут удовлетворить ваши требования. С учетом ваших предпочтений и условий, вот несколько подходов и рекомендаций:
Использование SQL Server Reporting Services (SSRS)
-
Поддержка подписок: SSRS позволяет настроить подписки на отчеты, которые могут быть отправлены по электронной почте определенным пользователям. Вам не придется вручную создавать 40 отдельных заданий для каждого продавца. Это возможно сделать с помощью параметров отчета, позволяя создавать один отчет и фильтровать данные по каждому пользователю.
-
Форматы сохранения: SSRS поддерживает экспорт отчетов в различные форматы, включая PDF и Excel. Вы сможете настроить отчеты таким образом, чтобы в каждом из них содержались данные, относящиеся только к конкретному пользователю.
-
Группировка в XLSX: Вы можете использовать SSRS для создания многостраничных отчетов в формате Excel, так как в одном отчете можно выводить данные по нескольким пользователям, размещая их на отдельных страницах.
-
Планирование и триггеры: SSRS позволяет планировать задачи, аудитории и триггеры для автоматической генерации отчетов по расписанию или при выполнении определенных условий.
Использование стороннего ПО
Если вам необходимо более гибкое решение, стоит рассмотреть сторонние инструменты, такие как:
-
SQL Server Integration Services (SSIS): SSIS позволяет проектировать сложные ETL-процессы, которые могут включать генерацию отчетов и их отправку по электронной почте. Он также может выполнять задачи по объединению нескольких отчетов в один файл Excel.
-
Crystal Reports: Это мощный инструмент для создания отчетов, который поддерживает автоматизацию и может создавать отчеты в разных форматах, а также рассылать их через электронную почту.
-
Excel VBA: Если у вас есть доступ к Excel, вы можете использовать VBA для автоматизации процесса. Можно написать макросы для извлечения данных, создания сводных таблиц, форматирования отчетов и отправки их по электронной почте.
Рекомендуемое решение
Основываясь на ваших требованиях и условиях, я рекомендую рассмотреть возможность настройки функций SSRS с использованием параметризации для автоматизации отправки отчетов. Это должно значительно упростить процесс и сократить время, затрачиваемое на генерацию и рассылку отчетов. Отдельно можете использовать SSIS или решение на базе Excel VBA для управления более сложными процессами или комбинированием отчетов.
Заключение
Выбор между SSRS и сторонними инструментами зависит от ваших конкретных требований и бюджета. Тем не менее, SSRS может предложить многофункциональное решение, которое интегрируется с вашим текущим стеком технологий. Разработка системы автоматизации отчетности значительно упростит текущий процесс и сэкономит время работы вашей команды.