У меня есть быстро растущий набор отчетов Telerik в моем веб-проекте. Моя стратегия предоставления данных заключается в том, что в каждом отчете есть текстовый файл, содержащий запрос SQL. Я работаю со сложными критериями фильтра, такими как long 'x is in (y, z, a, b, c ....)' или '((x = 1) и (x
Все отчеты - это классы, производные от Telerik.Reporting.Report
, которые имеют ограниченные свойства, которые служат метаданными отчета, такими как служебное название отчета, по сравнению с программным именем отчета. Нет никаких полей для таких атрибутов, как категория отчета, имя файла запроса SQL для отчета, возможная альтернативная страница просмотра отчета, подмножество общих параметров фильтра, которые должны быть отключены для отчета, и т. Д.
Я считаю первые варианты решения здесь непривлекательными, а именно. создание и поддержка хранилища «параметров отчета» в файле, файле web.config или в таблице базы данных. Это хранилище отделено от фактических отчетов, и работа в них или в хранилище требует частых и раздражающих обменов контекста.
Моя более предпочтительная идея - использовать нечто похожее на схему метаданных динамических данных, где атрибут класса сущности присваивает другой класс для хранения метаданных для сущности. Я мог бы также расширить Telerik.Reporting.Report
, добавив, возможно, словарь для атрибутов, которые я хочу прикрепить к отчетам, и извлечь из этого все мои отчеты.
Буду признателен за любую критику моего нынешнего мышления или предложения относительно других вариантов.