2015-03-27 3 views
5

Я разрабатываю веб-приложение asp.net mvc 5. Существует библиотека классов только для отчетов telerik [no trdx]. Я использую TypeReportSource для решения отчета и события NeedDataSource файла отчета для извлечения данных из базы данных. Во всем проекте я использую конструкцию конструктора (structmap), но здесь встраивание конструктора не работает, поскольку отчет telerik поддерживает только конструктор без параметров.Telerik Reporting ObjectDataSource с инъекцией зависимости

Как передать данные в источник данных отчета? Я не хочу добавлять отдельный контейнер IoC для библиотеки классов, поскольку он разделяется несколькими проектами с отдельной конфигурацией.

ответ

1

В режиме «Библиотека отчетов Telerik» каждый отчет состоит из 3 файлов по умолчанию. Предположим, я создаю отчет с названием «ProductReport» в проекте отчета. он будет генерировать ProductReport.cs, ProductReport.Designer.cs, ProductReport.resx

Ниже «ProductReport.cs» Код:

public partial class ProductReport : Telerik.Reporting.Report 
{ 
    public ProductReport() 
    { 
     // 
     // Required for telerik Reporting designer support 
     // 
     InitializeComponent(); 

     // 
     // TODO: Add any constructor code after InitializeComponent call 
     // 
    } 
} 

Я думаю, что один из опции, чтобы добавить другой конструктор с параметром (ы), которые вы хотите ввести в экземпляр отчета, включите источник данных и не забудьте вызвать «InitializeComponent()».

Другая хорошая сторона этого решения заключается в том, что это не повлияет на использование конструктора отчетов и изменение элементов отчета самим дизайнером.