Как вы минимизируете боль в процессе разработки, когда дело доходит до отчетности?
Для веб-фреймворков существует довольно простой способ как создания контента, так и его графического оформления; контент представлен семантически через HTML, а дизайн отдельно указан через CSS. И браузеры довольно последовательны в том, как они отображают вывод (а несоответствия хорошо известны и могут быть запланированы). Есть даже WYSIWYG-редакторы, помогающие менее разбирающимся в CSS графическим дизайнерам.
Но что нам делать с печатным контентом?
В одной компании я создал процесс, который работал следующим образом: сценарий генерировал семантическое представление через XML. XML был пропущен через XSLT для создания документа XML-FO. Затем это было передано другому инструменту (кажется, Apache FOP) для создания PDF-файла. Это хорошо сработало для этой компании.
Однако в этой компании для руководства важен внешний вид продукции, и у нас есть графический дизайнер. В настоящее время мы используем инструмент отчетности (XtraReports от Developer Express, версия 8.1). Это не плохо; он выводит в различные форматы, имеет конструктор WYSIWYG, отчеты реализуются через классы C# и поддерживает привязку данных к наборам данных (к сожалению, не POCO). Тем не менее, у нас есть несколько основных проблем с этой настройкой:
- Структура отчетности имеет серьезные ограничения на то, как вы можете размещать и группировать диапазоны отчетности.
- Презентабельным элементам, особенно диаграммам, не хватает возможностей, необходимых для точной настройки и достижения внешнего вида наших макетов.
- Нет хорошего способа поделиться стилями и макетом между отчетами, подобно тому, что мы можем получить с помощью CSS.
- Хорошую компоновку многоразовых деталей реализовать очень сложно. Таким образом, мы получаем большое количество функций копирования и вставки; это плохая новость, когда нам нужно внести радикальные изменения во все отчеты.
Теперь, может быть, есть какой-то крутой фреймворк, который может устранить проблемы фреймворков отчетности, но я предполагаю, что у всех у них есть свои слабости. Есть ли у вас структура или процесс, которые хорошо работают для вас и уменьшают болевые точки, присущие отчетности?