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

时间:2018-01-02 13:35:17

标签: c# asp.net-mvc stored-procedures devexpress xtrareport

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

组别

  • Prod1
  • Prod2的
  • Prod3

类别2

  • Prod4
  • Prod5
  • Prod6

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

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

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

enter image description here

2 个答案:

答案 0 :(得分:1)

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

您可以从外部(主)报告中向其传递参数,并且它将基于外部参数获取其中的数据

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

enter image description here

答案 1 :(得分:0)

我知道我在这方面有点晚了,但我确信DevExpress内置数据访问解决方案( EFDataSource 组件)不支持这种集成。整个来源立即填补。据我了解,您需要创建一个Master-Detail Report。在这种情况下,这里最好的选择是在Object Binding模式下定义控件绑定,然后在运行时使用DBContext类手动执行两个存储过程。将第一个结果集直接分配给 XtraReport.DataSource 。第二个存储过程应该在运行时在 DetailReportBand.BeforePrint 事件处理程序中多次执行。您可以将主行的CategoryId设为rootReport.GetCurrentColumnValue("CategoryID")

我希望这会有所帮助。如果我的解释不明确,我相信DevExpress支持团队将很乐意解释更多并为您提供一个示例(不知道为什么您从一开始就没有这样做 - StackOverflow不是为了讨论供应商 - 特定产品)