[英]How to set datasource of sub report in crystal report for master detail table
I've these two tables, I want to generate a crystal report in which I've a sub report listing all the orders by store. 我有这两个表,我想生成一个水晶报表,其中有一个子报表,按商店列出了所有订单。 But I'm having problem setting data source of sub report. 但是我在设置子报表的数据源时遇到问题。
ReportsDataSetTableAdapters.StoreTableAdapter adp = new ReportsDataSetTableAdapters.StoreTableAdapter();
MainOrderReport report = new MainOrderReport();
ReportsDataSetTableAdapters.OrderTableAdapter del = new ReportsDataSetTableAdapters.OrderTableAdapter();
report.Subreports[0].SetDataSource(del.GetData().DefaultView);
report.SetDataSource(adp.GetData().DefaultView);
crystalReportViewer.ReportSource = report;
crystalReportViewer.Refresh();
But this code is throwing this exception: "Failed to enable constraints. One or more rows contain values violating non-null, unique or foreign-key constraints". 但是此代码引发了以下异常:“未能启用约束。一个或多个行包含违反非空,唯一或外键约束的值”。 Kindly help me, what I'm missing here. 请帮助我,我在这里想念的东西。
Try clearing the connection first: 尝试先清除连接:
report.Subreports[0].DataSourceConnections.Clear();
report.Subreports[0].SetDataSource(adp.GetData().DefaultView);
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.Refresh();
As per your given DataSet
image, your OrderDataTable
is child of StoreDataTable
. 根据给定的DataSet
图像,您的OrderDataTable
是StoreDataTable
子级。 While in your code you are filling your child first and parent later. 在编写代码时,您要先填充孩子,然后再填充父母。 And in your DataSet
you have defined a constraint between the two tables. 并且在您的DataSet
您已经定义了两个表之间的约束。
Probably this is the reason why you are getting this error. 可能这就是您收到此错误的原因。 Try filling the parent Table first, then child Table. 尝试先填充父表,然后再填充子表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.