По моему мнению и исходя из моего опыта, Crystal Reports - это кошмар обслуживания. Я считаю, что для сохранения этих отчетов в течение всей их жизни требуется больше усилий, чем для создания. Это старый продукт DOS, который был взломан слишком много раз.
Мне действительно нравятся отчеты Microsoft. Легко создавать и легко поддерживать. Мне особенно нравятся автономные отчеты (rdlc), которые устраняют необходимость в службах Sql Server Reporting Services. (Я не уверен, что последнее предложение технически правильно, но вы поняли.)
Я использовал System.Drawing.Printing для простой печати информации, отображаемой пользовательским интерфейсом. (Простой включает в себя несколько страниц по горизонтали и по горизонтали.) Я всегда рассматриваю отчеты Microsoft прежде, чем писать код. Тем более, что пользователи всегда меняют то, что хотят, когда видят реальный отчет. Следовательно, кодирование может потребовать значительных усилий. Вот почему я обычно делаю только информацию пользовательского интерфейса, такую как списки, формы или другую четко определенную информацию, где я могу использовать существующие методы элемента управления "draw-to-bitmap".
У меня нет опыта работы с "шаблоном отчета". Microsoft rdl и rdlc являются файлами XML. Поэтому ими легко манипулировать и хранить. У вас не должно возникнуть проблем с хранением XML в базе данных, в файловой системе или в качестве ресурса. Я сохранил двоичные книги Microsoft Excel в виде файлов ресурсов, изменил их на основе пользовательских критериев, а затем открыл их в Excel в качестве шаблонов. Если я могу сделать это для Excel, отчет должен быть простым.
Я не знаю о более поздних версиях Crystal Reports, но изменение макета и полей данных отчетов более старых версий во время выполнения было от невозможного до невыносимо трудного. Я сделал это однажды несколько лет назад. Я не мог добавить или удалить поля, поэтому мне пришлось включить все поля, а затем скрыть / показать каждое поле по мере необходимости. Это затрудняло проектирование отчета из-за всех статических полей. Я думаю, что мог бы закодировать отчет вручную быстрее, чем это потребовалось для создания отчета через Crystal Reports.
Crystal Reports - это отдельное развертывание и установка. Есть проблемы с лицензированием, о которых вам нужно прочитать. Отчеты Microsoft являются частью .NET Framework.
Это мои два цента. Я настоятельно рекомендую вам избегать Crystal Reports. Мне действительно нравятся отчеты Microsoft. Я не могу дать рекомендации другим системам отчетов, но я слышал хорошие отзывы об ActiveReports и ComponentOne. Microsoft также предоставляет бесплатную библиотеку графиков. (Поиск по загрузке MSDN.)