Назначение источника данных из DataGridView для tablix в средстве просмотра отчетов во время выполнения - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь сделать квитанцию, используя Report Viewer для .NET.

После исследования я реализовал, как показано ниже:

  1. build Объект Product, представляющий каждую строку в таблице.
  2. создал список объектов Product
  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]

В [POINT A] я не могу установить параметры, поскольку табликс, использующий добавленный источник данных (т. е. DataSet_Products), не может найти источник данных со следующим сообщением об ошибке:

ReportPublishingException: Набор данных «DataSet_Products» ссылается на источник данных «», который не существует.

Я проверил, что существует Источник данных с именем 'DataSet_Products »добавлен в объект reportViewer, но я не могу понять, почему он говорит, что источник данных не существует.

Есть ли способ добавить tablix к файлу rdlc во время выполнения и отредактировать во время выполнения?

Может кто-нибудь порекомендовать мне пакет с открытым исходным кодом для создания структурированного документа, чтобы получить квитанцию, если у вас есть какие-либорекомендовать?

Я, конечно, могу добавить дополнительные данные, если это необходимо.Спасибо за ваше время.

...