gpt4 book ai didi

c# - 如何在另一个未绑定(bind)报表中创建未绑定(bind)子报表

转载 作者:行者123 更新时间:2023-11-30 16:35:49 26 4
gpt4 key购买 nike

我有一个未绑定(bind)的 XtraReport,它有一个包含另一个报表的子报表控件。我调用“未绑定(bind)”到一个报表,该报表具有使用架构定义的字段但实际上未绑定(bind)到任何数据集,我使用数据访问层创建一个 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.");
}

但我使用这种方法得到的子报表打印得非常奇怪(看看 attached pdf ,抱歉,它是西类牙语,但我想你明白了)。

我已经阅读了 DevExpress 文档,也许我没有找到正确的方法,所以我的问题是如何创建一个包含一个或多个子报表的报表,但我必须提供数据以使用一些报告外部的过程,例如数据访问层?

如果问题陈述不正确或缺少更多信息,请告诉我。

编辑:

我上传了一个带有问题报告的示例项目 here .

我试过使用某种参数。在子报表控件的 BeforePrint 事件中,我尝试了:

((XRSubreport)sender).ReportSource.FilterString = "[IdPO_RO] = " + _idPurchaseOrder;

((XRSubreport)sender).ReportSource.Parameters["Id"].Value = _idPurchaseOrder;

当然,对于第二个,我添加了一个参数和与第一个相同但使用参数的过滤器字符串。

最佳答案

我可以解决这个问题。

这是因为我分配给了错误的对象。这一行:

report.SubPurchaseOrder.Report.DataSource = tableSubReport;

应该是:

report.SubPurchaseOrder.ReportSource.DataSource = tableSubReport;

所以简单的解释是我使用了另一个属性来引用包含在子报表控件 (XRSubreport) 中的报表。

关于c# - 如何在另一个未绑定(bind)报表中创建未绑定(bind)子报表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1489892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com