我正在尋找一種方法來從我的C#域模型中生成一些很好的報告。使用SSRS將是理想的,但不是必需的。如何從POCO運行報告?
我們的大部分報告都直接運行在我們的數據庫之外,但我們有一些報告要求所有數據都通過域模型的特殊需求。 POJO報告似乎很常見,但我對POCO沒有太多的瞭解。
我正在尋找一種方法來從我的C#域模型中生成一些很好的報告。使用SSRS將是理想的,但不是必需的。如何從POCO運行報告?
我們的大部分報告都直接運行在我們的數據庫之外,但我們有一些報告要求所有數據都通過域模型的特殊需求。 POJO報告似乎很常見,但我對POCO沒有太多的瞭解。
這不是一個簡單的答案,但您可以使用oData reflection provider將您的對象轉換爲oData提要,然後使用類似Tablaeu's oData support之類的東西。我beliive有一些free options報告的oData飼料以及。
SSRS允許你引用你自己的程序集,所以也許它可以幫助你?看看這篇文章:Domain driven reports: adding custom code
當我運行Business Intel時,我看不到此選項。工作室。這是否需要客戶端呈現報告? –
不知道您在BIDS中沒有看到什麼選項,但是不,在SSRS服務器上執行自定義程序集。沒有特殊的客戶端渲染。 –
在代碼中,如果它是在一個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
我希望能夠報告一個REST風格的Web服務。 –