Просто используйте страницы ASP.NET.
Мы сделали приложение у моего предыдущего работодателя, которое сделало очень похожую вещь. Мы решили связать все доступные свойства для данного приложения / программы / отчета. У пользователей был список для выбора свойств, а затем соответственно отфильтровали эти свойства. Каждый тип свойства был отдельным объектом с различными фильтруемыми свойствами, которые «менеджер» мог настроить для своих пользователей.
После выбора столбцов, которые они хотели просмотреть / отфильтровать, щелкнув по кнопке go, мы сгенерировали SQL и поместили результаты 15/30 за раз обратно в сетку просмотра.
Если они хотят увидеть что-то большее, они могут загрузить файл экспорта в Excel CSV.
Для больших, менее отфильтрованных запросов мы ограничили число возвращаемых строк до чего-то разумного, что не истекло бы.
Это не самый элегантный, но он был ОЧЕНЬ универсален и сделал почти всех счастливыми.
Чтобы разъяснить - эта система отчетности сама по себе была приложением, которое мы создали (ООП, NHibernate и т. Д.) Для поддержки и упрощения этого процесса.