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

我需要做些什么才能使其发挥作用吗?

预先感谢...vsdotnetguy

有帮助吗?

解决方案 3

克里斯和亚当,

这是我找到的答案。

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

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

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

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

其他提示

我之前已经从业务对象加载了 Reporting Service 报告(通过 NHibernate 加载——虽然不准确,但出于论证目的已经足够接近了)。

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

我会根据我的记忆添加更多内容,自从我这样做以来已经有几个月了。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top