【问题标题】:How to create an unbound subreport in another unbound report如何在另一个未绑定报表中创建未绑定子报表
【发布时间】:2009-09-28 23:43:34
【问题描述】:

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

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

【问题讨论】:

  • 是子报表重复16次还是数据没有绑定标签的问题?
  • 是的,数据未显示在标签中。但正如您在没有数据源的标签中看到的那样,子报表是绑定的。
  • 另一件事:当我在没有主报告的情况下调用子报告时,它确实显示了标签中的所有数据。

标签: c# devexpress subreport xtrareport


【解决方案1】:

我可以解决问题。

造成这种情况的原因是我分配给了错误的对象。这一行:

report.SubPurchaseOrder.Report.DataSource = tableSubReport;

应该是:

report.SubPurchaseOrder.ReportSource.DataSource = tableSubReport;

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

【讨论】:

    猜你喜欢
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多