Я играл с системами отчетности, такими как Crystal Reports или SQL Reports, и обнаружил, что они имеют кривую обучения, но также являются жесткими и негибкими или генерируют ужасный HTML.
ASP.NET MVC можно использовать как большую систему отчетности, вот как:
- Необязательно использовать
VirtualPathProvider
, чтобы позволить вам сохранить ваш MVC .aspx
файлы в базе данных.
- Имейте класс контроллера с действием «GenerateReport», который создает объект EF Context/Repository или даже соединение с необработанной базой данных и передает его как объект в представление, другой модели нет.
- Прерывать правила MVC «Отсутствие логики доступа к данным в представлении»! Ваш вид (в файле
.aspx
) должен иметь область <% %>
, которая выполняет всю логику генерации отчетов, выполняя запросы и прочее.
- Для графиков и диаграмм, используйте библиотеку генерации диаграмм RESTful, вы также можете написать свой собственный. Это в основном означает, что вместо отчета, создающего статический файл изображения и хранения его где-то и помещения пути в элемент
<img src="">
, он вместо этого делает это: <img src="RestfulImage.ashx?line1={1.2,4.6,8...." />
. Google на самом деле имеет услугу, которую можно использовать: https://developers.google.com/chart/image/docs/making_charts
Таким образом, каждый отчет является .aspx
файл, который получает объект доступа к данным тогда запросов непосредственно и генерирует отчеты самостоятельно. Очевидно, что это плохо работает для отчетов, которые занимают много времени для создания (но это обычно является признаком плохого проектирования БД или отсутствия индексов), но если ваши требования просты (то есть куча SQL-запросов SELECT
, полученных в <table>
и некоторые диаграммы, чтобы идти вместе), то этот подход отлично работает.
Какая часть вам нужна? Контуры? – MikeSmithDev
таблицы и диаграммы –
Проверьте [DotNet.Highcharts] (http://dotnethighcharts.codeplex.com/) – MikeSmithDev