如何从POCO运行报告?

时间:2011-08-29 19:35:32

标签: reporting-services domain-driven-design reporting poco

我正在寻找一种方法,可以从我用C#构建的域模型生成一些不错的报告。使用SSRS是理想的,但不是必需的。

我们的大多数报告直接在我们的数据库之外运行,但我们对几个报告有特殊需求,这些报告要求所有数据都通过域模型。 POJO报告似乎很常见,但我对POCO的看法并不多。

3 个答案:

答案 0 :(得分:1)

SSRS允许您引用自己的程序集,所以它可以帮助您吗?也请看一下这篇文章:Domain driven reports: adding custom code

答案 1 :(得分:0)

这不是一个简单的答案,但您可以使用oData reflection provider将对象转换为oData Feed,然后使用Tablaeu's oData support之类的内容。我很乐意有一些free options用于报告oData feed。

答案 2 :(得分:0)

在代码中,如果POCO位于IEnumerable(如简单数组)中,则可以将其添加为数据源。您的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