2015-03-27 14 views
5

Zajmuję się tworzeniem aplikacji sieci web asp.net mvc 5. Istnieje biblioteka klas tylko dla raportów telerik [bez trdx]. Używam TypeReportSource do rozwiązania raportu i zdarzenia NeedDataSource pliku raportu, aby pobrać dane z bazy danych. W całym projekcie korzystam z techniki iniekcji konstruktora (structuremap), ale tutaj iniektor Constructor nie działa, ponieważ raport telemetryczny obsługuje tylko konstruktor bez parametrów.Telerik Reporting ObjectDataSource z wtyczką zależności

Jak przekazać dane do źródła danych raportu? Nie chcę dodawać oddzielnego kontenera IoC dla biblioteki klas, ponieważ jest on współużytkowany przez wiele projektów z osobną konfiguracją.

Odpowiedz

1

W trybie "Biblioteka raportów Telerik" każdy raport składa się domyślnie z 3 plików. Załóżmy, że tworzę raport o nazwie "ProductReport" w projekcie raportu. wygeneruje ProductReport.cs, ProductReport.Designer.cs, ProductReport.resx

Poniżej znajduje się „ProductReport.cs” Kod:

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

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

Myślę, że jednym z opcją jest dodanie innego konstruktora z parametrem (s), które chcesz wstawić do instancji raportu, dołącz źródło danych i pamiętaj, aby wywołać "InitializeComponent()".

Inną dobrą stroną tego rozwiązania jest to, że nie wpłynie to na użycie projektanta raportów i modyfikację elementów raportu przez samego projektanta.

Powiązane problemy