Вопрос:
Мы (то есть я, один человек) должны внедрить "отчеты, созданные пользователями" (максимум через 1 месяц, представление в конце месяца/начале нового месяца).
Проблема 1:
Под пользователем я подразумеваю пользователей, которые не обладают какими-либо техническими навыками, такими как SQL или VBA.
Проблема 2:
Технология ТОЛЬКО .NET, поэтому я не могу использовать Java (и вещи, основанные на Java, такие как Jasper)
Проблема 3.
Должен быть возможен экспорт в Excel (я имею в виду XLS или XLSX, а не XML или CSV).
Проблема 4.
Должна быть предусмотрена возможность группировки данных (несколько групп).
Проблема 5.
База данных — это Microsoft SQL-Server (предположительно 2008 R2, но может оказаться 2008 R1 или 2005)
Бонусная «проблема»:
веб-интерфейс с ASP.NET WebForms, но также может быть и настольный компьютер, если веб-сайт невозможен.
Теперь, помимо явной нелепости этих требований и временных ограничений...
Одним из решений может быть построитель отчетов, предоставляемый SSRS (служба отчетов SQL-Server). Тем не менее, есть некоторые недостатки, которые я считаю довольно серьезными:
- Пользователь, создающий отчет, в основном все еще должен знать SQL (левое, правое, внутреннее, внешнее соединение и их последствия). Поскольку пользователь, вероятно, не понимает разницы, он просто обвинит меня, если не получит или получит неверный результат (например, внутреннее соединение для пустого столбца).
Пользователь, создающий отчет, ничего не знает о базе данных/структуре данных (например, мягкое удаление, даты продолжительности). Кроме того, мусор в мусоре, вероятно, будет проблемой, с неправильными данными и т. д. ...
Если они собираются создать матрицу и суммировать промежуточные итоги из неокругленных значений, сумма итогов не будет совпадать с суммой промежуточных итогов, потому что в отчете будет что-то отображаться. как только 2 цифры после запятой (и, следовательно, округление значения до 2 цифр) для промежуточных итогов, но он будет вычислять итог из суммы всех значений (которые НЕ округлены), а не из суммы промежуточных итогов (которые округлый). Опять же, они обвинят в этом меня или данные, или построителя отчетов.
Поскольку построитель отчетов не будет отображать количество результатов после добавления дополнительной таблицы с объединением, пользователь не сможет сказать, правильное ли количество записей у него, что неизбежно приведет к неправильным результатам. Опять будут обвинять меня.
Фильтры по датам: их нужно применять, но не обязательно в месте, а в соединении. Построитель отчетов не поддерживает это. Невозможно создать такой серьезный отчет.
Статус: как уже говорилось, мы используем мягкое удаление и поле статуса со статусом 99 для удаленных записей. Статус фильтрации в where опасен и иногда должен возникать в соединении. Опять же, Report Builder не поддерживает это, если только вы не используете необработанный SQL, что бессмысленно, поскольку пользователи не будут знать SQL.
Для установки построителя отчетов требуются права администратора или ИТ-отдел компании-заказчика для его установки. И соответствующую платформу .NET для соответствующего ReportBuilder и соответствующий ReportBuilder для соответствующего Report-Server, поскольку служба отчетов SQL-Server 2005 НЕ будет работать с отчетами для служб отчетов SQL-Server 2008, а SQL 2008 R1 не будет работать с отчетами. Р2. А также для этого требуется, чтобы все пользователи, способные на это, были в определенной роли пользователя генератора отчетов службы отчетов SQL-Server, что требует, чтобы ИТ-отдел поместил пользователей в соответствующую группу активного каталога, которая до сих пор никогда не работала ни с одним из клиенты у нас были. Кроме того, я не верю, что ИТ-отдел знает, что они устанавливают соответствующий ReportBuilder, если они вообще соглашаются его установить.
Однажды мне (давным-давно) довелось посмотреть презентацию SSAS (SQL-Server Analysis Services) на YouTube.
Но ссылку уже не нахожу.
Но в любом случае у меня нет опыта работы со SSAS, только с SSRS.
Я думаю, что можно было бы злоупотреблять SSAS таким образом, чтобы пользователи могли подключаться к нему через Excel, получать данные и суммировать их более или менее так, как они хотят. Кроме того, они смогут видеть необработанные данные.
И я мог бы заранее подготовить несколько запросов для необработанных данных из таблиц (это я мог бы сделать и с помощью построителя отчетов, через наборы данных).
Кто-нибудь знает SSAS достаточно хорошо, чтобы сказать мне, возможно ли это за такое время?
И совместима ли надстройка, необходимая для сервера анализа и версий Excel (2007/2010), со всеми версиями сервера анализа? , или если есть проблемы с доступом к 2008 R2 из Excel 2007 или SSAS-2005 из Excel 2010.
Или я должен столкнуться с большим количеством проблем с SSAS, чем с ReportBuilder?