DevExpress 报告 Main 和 Detail 报告存储过程

DevExpress report Main and Detail reports stored procedures

我必须创建一个包含两个部分的 XtraReport;大师和细节。例如,类别 - 是大师,他们的产品是细节:

类别 1

类别 2

问题是类别和相关产品都来自存储过程。所以我有 2 个存储过程,第一个主存储过程没有参数,第二个详细存储过程有 CategoryId 参数(来自第一个存储过程)。

我找不到从第一个存储过程设置第二个存储过程的 CategoryId 参数值的方法。

在存储过程设计器中我可以看到这个,但是我不能将参数值设置为第一个存储过程ID。

我知道我有点晚了,但我确定 DevExpress 内置数据访问解决方案(EFDataSource 组件)不支持这个一种集成,因为整个源一次被填充。据我了解,您需要创建一个 Master-Detail Report. In this case, the best option here will be to define control bindings in Object Binding 模式,然后在运行时使用您的 DBContext class 手动执行两个存储过程。将第一个结果集直接赋值给XtraReport.DataSource。第二个存储过程应该在运行时在 DetailReportBand.BeforePrint 事件处理程序中执行多次。您可以获得主行的 CategoryId 作为 rootReport.GetCurrentColumnValue("CategoryID")

希望对您有所帮助。如果我的解释不清楚,我相信 DevExpress 支持团队会很乐意解释更多并为您提供一个示例(不确定您为什么不首先这样做——Whosebug 并不是为了讨论供应商-特定产品)

解决方案是使用 xsSubreport 组件,创建单独的子报表并附加到它。

你可以从外层(主)报表传参数给它,它会根据外层参数在里面取数据

https://www.youtube.com/watch?v=ZKRsXxjr_EI