在运行时将数据源从DataGridView分配给Report Viewer中的tablix

时间:2018-12-03 18:32:47

标签: c# winforms datagridview reportviewer

我正在尝试使用Report Viewer for .NET收据。

研究后,我实现了以下方法:

  1. 构建代表表中每一行的产品对象。
  2. 创建了产品对象列表
  3. 制作reportDataSource并将列表设置为其值
  4. 在报告上设置参数

以上代码如下:

        Microsoft.Reporting.WinForms.ReportParameter[] reportParameters = new Microsoft.Reporting.WinForms.ReportParameter[]
        {
            new Microsoft.Reporting.WinForms.ReportParameter("address", address),
            new Microsoft.Reporting.WinForms.ReportParameter("phoneNumber", phoneNumber),
            new Microsoft.Reporting.WinForms.ReportParameter("transactionID", transactionID),

        };

        ReportDataSource reportdataSource = new ReportDataSource();
        List<Product> products = new List<Product>();
        products.Clear();

        // Create the list of products using the datagridview; each Product object represents each row in DataGridView
        ConstructProductList(products, txn.DataGridView);

        reportdataSource.Name = "DataSet_Products";
        reportdataSource.Value = products;

        this.reportViewer.LocalReport.DataSources.Clear();
        this.reportViewer.LocalReport.DataSources.Add(reportdataSource);
        this.reportViewer.LocalReport.ReportEmbeddedResource = "Example.Receipt.rdlc";


        this.reportViewer.LocalReport.SetParameters(reportParameters);



        this.reportViewer.RefreshReport(); // [POINT A]

在[要点A],我无法设置参数,因为添加了使用数据源的Tablix(即DataSet_Products)找不到具有以下错误消息的数据源:

  

ReportPublishingException:数据集“ DataSet_Products”引用的数据源“”不存在。

我检查了在ReportViewer对象中是否添加了名称为'DataSet_Products'的数据源,但是我似乎无法找出为什么它说该数据源不存在。

是否可以在运行时将tablix添加到rdlc文件并在运行时进行编辑?

有人可以向我推荐一个开源软件包,用于创建结构化文档以在需要时发出收据吗?

如果需要,我当然可以添加其他数据。 感谢您的时间。

0 个答案:

没有答案