簡體   English   中英

如何在水晶報表中為主明細表設置子報表的數據源

[英]How to set datasource of sub report in crystal report for master detail table

在此處輸入圖片說明

我有這兩個表,我想生成一個水晶報表,其中有一個子報表,按商店列出了所有訂單。 但是我在設置子報表的數據源時遇到問題。

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();

但是此代碼引發了以下異常:“未能啟用約束。一個或多個行包含違反非空,唯一或外鍵約束的值”。 請幫助我,我在這里想念的東西。

嘗試先清除連接:

report.Subreports[0].DataSourceConnections.Clear();
report.Subreports[0].SetDataSource(adp.GetData().DefaultView);
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.Refresh();

根據給定的DataSet圖像,您的OrderDataTableStoreDataTable子級。 在編寫代碼時,您要先填充孩子,然后再填充父母。 並且在您的DataSet您已經定義了兩個表之間的約束。

可能這就是您收到此錯誤的原因。 嘗試先填充父表,然后再填充子表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM