将亚音速对象集合绑定到Microsoft报告(rdlc)

时间:2009-04-30 20:29:05

标签: subsonic rdlc

有没有人能够将SubSonic生成的集合用作Microsoft报表(rdlc)的“业务对象数据源”?我已经生成了SubSonic类代码,但由于某种原因,报告数据源窗口没有将该类视为潜在的对象集合数据源。

我需要做些什么来实现这个目标吗?

提前致谢... vsdotnetguy

3 个答案:

答案 0 :(得分:0)

之前我已经从业务对象加载了Reporting Service报告(通过NHibernate加载 - 这不是确切的,但为了论证而足够接近)。

几个关键点: 1.返回List中的对象,即使您只返回一个对象。 2.您想要FLAT业务对象。您可能必须通过DTO转换才能实现这一目标。平面,我的意思是业务对象中最复杂的属性是字符串和数字(​​int,decimal,double)。如果您希望获得这样的值: myObject.Customer.Name,算了吧。创建CustomerName属性。 3.如果您需要来自多个位置的数据,请尝试将报表拆分为子报表。您可以键入数据源键以确定要返回报告的数据。

我记得,我会添加更多,自从我这样做了几个月。

答案 1 :(得分:0)

是的我已经完成了,您只需要确保包含您的报告的项目引用您的SubSonic项目(显然:)。

有时我也发现Visual Studio可能会有点麻烦,需要重新启动才能使用SubSonic生成的对象重新填充数据源窗口。

答案 2 :(得分:0)

克里斯和亚当,

这是我找到的答案。

在我的例子中,我想使用SubSonic对象集合在运行时动态设置主数据源和子报表数据源。但是,我还想使用拖放数据源列来设计报表布局。

但我无法使用拖放设计报告,因为我的SubSonic系列没有出现在网站数据源中。

然而,后来当我使用ObjectDataSource控件进行一些控件绑定时,我注意到现在我的SubSonic集合出现在Website DataSources窗口中,我可以拖放报表布局。

因此,如果您在运行时动态设置报表数据源并且不使用项目中已有的ObjectDataSource控件,则必须将一个虚拟ObjectDataSource控件添加到您的一个aspx页面。然后,这将使业务对象数据源显示在报表设计器中。