Я создал систему, аналогичную той, которую вы описывали в прошлом, передавая один параметр хранимой процедуре типа xml.Таким образом, вы можете указать (в xml), что вы хотите отчитываться, и создать SQL, необходимый для получения желаемых результатов.
Это также делает ваш код на C # проще, так как всевам нужно сгенерировать xml, который будет читать ваша процедура.Генерирование динамического SQL - определенно не то, что вы должны использовать, если вам не нужно, но когда вы хотите позволить пользователям динамически выбирать то, о чем они хотят сообщать, это практически единственный способ сделать это.
Другим вариантом для вас может быть поиск в службах Reporting Services - это позволит пользователю выбрать, какие поля он хочет просмотреть, и сохранить этот конкретный «отчет» в своем собственном разделе, где он может затем вернуться и запустить его в любое время.. Вы также можете создавать отчеты для них, если они не разбираются в компьютерах (что гораздо проще сделать с помощью построителя отчетов, при условии, что все, что им нужно, это данные и никаких специальных функций).
В любом случаевы идете по этому поводу, их плюсы и минусы для обоих решений. Вы должны будете определить, какой вариант лучше для вас.
xml / dynamic sql: сложно поддерживать / вносить изменения.извините всех, кто должен прийти за кем-то, кто генерирует динамический SQL и попытаться понять логику беспорядка).
службы отчетов: очень легко выкладывать отчеты, которые выглядят хорошо, но они немного менее гибки и не бесплатны.