2011-08-29 58 views
2

我正在尋找一種方法來從我的C#域模型中生成一些很好的報告。使用SSRS將是理想的,但不是必需的。如何從POCO運行報告?

我們的大部分報告都直接運行在我們的數據庫之外,但我們有一些報告要求所有數據都通過域模型的特殊需求。 POJO報告似乎很常見,但我對POCO沒有太多的瞭解。

+0

我希望能夠報告一個REST風格的Web服務。 –

回答

1

SSRS允許你引用你自己的程序集,所以也許它可以幫助你?看看這篇文章:Domain driven reports: adding custom code

+0

當我運行Business Intel時,我看不到此選項。工作室。這是否需要客戶端呈現報告? –

+0

不知道您在BIDS中沒有看到什麼選項,但是不,在SSRS服務器上執行自定義程序集。沒有特殊的客戶端渲染。 –

0

在代碼中,如果它是在一個IEnumerable(如簡單數組)中,可以將POCO添加爲數據源。您的POCO只能包含簡單的數據類型,因爲SSRS報告不支持像SomeProperty.AnotherProperty.Value這樣的表達式。因此,如果您有一個複雜的對象,則必須將它壓平成一個對象。

在C#:

public static string GetDiagramReport(MyPOCO model) 
{ 
    Microsoft.Reporting.WinForms.LocalReport ssrsReport = new LocalReport(); 
    ... 
    ssrsReport.DataSources.Add(new ReportDataSource("DataSet1", new MyPOCO[] { model })); 
    ... 
} 

而且SSRS設計師是完全爲你高興到這個POCO添加爲一個對象的數據源。

根據這個問題/答案,如果添加更多代碼,則可以執行更復雜的對象。 Reporting Services: Business object data source with parent-child-grandchild