我有一个未绑定的 XtraReport,它有一个包含另一个报表的子报表控件。我将“未绑定”称为“未绑定”报表,该报表使用模式定义了字段,但实际上并未绑定到任何数据集,我使用数据访问层创建了一个 DataTable,然后将该对象传递给报表的 DataSource 属性。
所以,我有以下代码:
// (...) Get the data from the db and fill a DataTable
if (table.Rows.Count > 0)
{
report.DataSource = table;
// (...) Get the data from the db and fill a DataTable for the subreport
report.SubPurchaseOrder.Report.DataSource = tableSubReport;
report.ShowPreviewDialog();
}
else
{
MessageBox.Show("No data to show.");
}
但是我使用这种方法得到的结果是打印的子报告非常奇怪(看一下附件 pdf,抱歉它是西班牙语,但我想你明白了)。
我已经阅读了 DevExpress 文档,也许我的方法不正确,所以我的问题是如何创建一个包含一个或多个子报表的报表,但我必须提供数据以使用外部的一些流程填充它们报告,例如数据访问层?
如果问题陈述不正确或缺少更多信息,请告诉我。
编辑:
我在这里上传了一个带有问题报告的示例项目。
我尝试使用某种参数。在子报表控件的 BeforePrint 事件中,我尝试了:
((XRSubreport)sender).ReportSource.FilterString = "[IdPO_RO] = " + _idPurchaseOrder;
和
((XRSubreport)sender).ReportSource.Parameters["Id"].Value = _idPurchaseOrder;
当然,对于第二个,我添加了一个参数,过滤器字符串与第一个相同,但使用了参数。