Просмотр данных в Reportviewer из одномерного массива - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть winform, которая использует фонового работника для сбора файлов и их фильтрации по дате, типу файла и т. Д. Эти файлы хранятся в списке под названием «allfiles». Я хотел бы отобразить этот список в программе просмотра отчетов. Из того, что я нашел до сих пор, лучший способ сделать это - проанализировать список в datatable, а затем установить этот datatable в качестве источника данных для файла «report.rdlc» перед загрузкой этого файла в средство просмотра отчетов.

Это код, который я использую для разбора списка в таблицу данных:

 DataTable dtable = new DataTable();
 dtable.Columns.Add("Field Name", typeof(string));
 foreach (string x in allfiles.ToArray())
 {
      DataRow dataRow = dtable.NewRow();
      dataRow["Field Name"] = x;
      dtable.Rows.Add(dataRow);
      dtable.AcceptChanges();
 }

Это код, который я использую, чтобы эти данные отображались в моем средстве просмотра отчетов:

BindingSource thisIsABindingSource = new BindingSource();
thisIsABindingSource.DataSource = dtable;

reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
var reportDataSource1 = new ReportDataSource { Name = "list", Value = thisIsABindingSource};
string exeFolder = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
reportViewer1.LocalReport.ReportPath = exeFolder + @"\Report1.rdlc";
reportViewer1.LocalReport.ReportEmbeddedResource = exeFolder + @"\Report1.rdlc";
reportViewer1.LocalReport.DataSources.Add(reportDataSource1);

Проблема, с которой я сталкиваюсь, заключается в том, что при запуске этого кода средство просмотра отчетов остается пустым, т.е. пустой белый лист без информации (см. screecap of reportviewer ). Кажется, это должно быть легко исправить, но ничего, что я пробовал, не сработало.

...