Я пытаюсь сделать квитанцию, используя Report Viewer для .NET.
После исследования я реализовал, как показано ниже:
- build Объект Product, представляющий каждую строку в таблице.
- создал список объектов Product
- Сделал reportDataSource и установил список в качестве его значения
- Задал параметры отчета
Кодвыше указано ниже:
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 во время выполнения и отредактировать во время выполнения?
Может кто-нибудь порекомендовать мне пакет с открытым исходным кодом для создания структурированного документа, чтобы получить квитанцию, если у вас есть какие-либорекомендовать?
Я, конечно, могу добавить дополнительные данные, если это необходимо.Спасибо за ваше время.