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