来自父数据集的子报告的RDLC报告?

时间:2018-06-01 06:52:01

标签: c# rdlc reportviewer

所以,我想弄清楚如何做到以下几点:

想象一下,我有一系列客户。它包含以下属性:

  • 客户名称
  • 账户号码
  • 总金额

现在,对于每个客户,它都有一系列发票。每张发票都包含以下属性:

  • InvoiceNumber
  • InvoiceDate
  • AmountDue
  • 付款

我从服务中检索并存储在本地。因此,一组客户和每个客户都有发票。到现在为止还挺好?很容易理解!

现在,我有一个RDLC,我已经通过添加数据集来显示客户集合,作为代码库中的模型。这一切都很好,绑定和工作,并显示我需要的数据。

我现在遇到的困难是如何显示FOR THAT RECORD(当前客户)的发票清单。

任何想法如何做到这一点?我甚至不知道如何开始或使用什么,所以请不要说“你有什么尝试?” - 我甚至不知道从哪里开始,因此这个问题无效! : - )

目前在表单上我有一个tablix。 Tablix指向Customer数据集(DataSet1),并添加字段以显示该数据集中的属性值。

接下来我需要它,以便在Tablix或其他内容中,获取该记录的发票并呈现它(带标题)

我被困住了,并希望在正确的方向上获得指导。

渲染报告查看器的代码(此时此刻并不重要 - 这是我遇到困难的RDLC):

public void RunReport<T>(List<T> reportData, List<ReportParameter> parameters, string reportLayout)
        {
            var viewer = ReportViewerHost.Child as Microsoft.Reporting.WinForms.ReportViewer;
            viewer.Reset();
            viewer.ProcessingMode = ProcessingMode.Local;
            viewer.LocalReport.ReportEmbeddedResource = "PlayPen.ReportLayouts." + reportLayout + ".rdlc";
            viewer.LocalReport.SetParameters(parameters);
            viewer.SetDisplayMode(DisplayMode.PrintLayout);
            viewer.ZoomMode = ZoomMode.PageWidth;
            viewer.LocalReport.DataSources.Clear();
            viewer.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", reportData));
            viewer.RefreshReport();
        }

通话方式:

this.reportViewer.RunReport(this.OutstandingInvoices, new List<ReportParameters>(), "OutstandingInvoices");

谢谢。

1 个答案:

答案 0 :(得分:2)