我正在寻找一种方法,可以从我用C#构建的域模型生成一些不错的报告。使用SSRS是理想的,但不是必需的。
我们的大多数报告直接在我们的数据库之外运行,但我们对几个报告有特殊需求,这些报告要求所有数据都通过域模型。 POJO报告似乎很常见,但我对POCO的看法并不多。
答案 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