У меня возникли проблемы с попыткой привязать dataTable к элементу управления ReportViewer в Winform с помощью С#.
Я провел МНОГО времени, просматривая этот и другие форумы в поисках решений, но, увы, пока не нашел. Я поместил маркеры отладки в свой код и могу «видеть» готовую таблицу данных с правильным сводным отчетом по массиву 2x2. Но когда я пытаюсь привязать dataTable к объекту ReportViewer, я получаю пустой экран. Я УВЕРЕН, что в моем коде не хватает чего-то простого, но не могу понять, что это такое!!!
Вот более подробная информация о моей форме отчетности:
- У меня есть 2 глобальных поля, определенных следующим образом:
/*create global dataTable */ DataTable _dTable = new DataTable("dtQOPS3710"); /* create a new Dataset...*/ Dataset _dSet = new Dataset("psysReporting.dSetReportViewer.xsd");
А вот код, который я использую для создания dataTable и привязки его к ReportViewer:
/добавить столбцы в dataTable (всего 10)/
_dTable.Columns.Add(new DataColumn("Nationality", typeof(String))); _dTable.Columns.Add(new DataColumn("Total_Females", typeof(String))); _dTable.Columns.Add(new DataColumn("Total_Males", typeof(String))); _dTable.Columns.Add(new DataColumn("Elig.55", typeof(String))); _dTable.Columns.Add(new DataColumn("Elig.56", typeof(String))); _dTable.Columns.Add(new DataColumn("Elig.57", typeof(String))); _dTable.Columns.Add(new DataColumn("Elig.58", typeof(String))); _dTable.Columns.Add(new DataColumn("Elig.25", typeof(String))); _dTable.Columns.Add(new DataColumn("Elig.26", typeof(String))); _dTable.Columns.Add(new DataColumn("Total_Patients", typeof(String))); /* now add the rows */ for (int i = 0; i < _intMaxNoOfRows; i++) { DataRow dataRow = _dTable.NewRow(); for (int j = 0; j < _maxJ; j++) { if (strArrayList[i, 1] != string.Empty) /* column 1 = Nationality */ dataRow[j] = strArrayList[i, j]; } if (strArrayList[i, 1] != string.Empty) /* column 1= Nationality */ { _dTable.Rows.Add(dataRow); } } // add datatable '_dTable' to dataset '_dSet'... _dSet.Tables.Add(_dTable); // bind dataSet to report viewer this.reportViewer1.Reset(); this.reportViewer1.ProcessingMode = ProcessingMode.Local; this.reportViewer1.LocalReport.ReportEmbeddedResource = "psysReporting.Report1.rdlc"; this.reportViewer1.LocalReport.DataSources.Clear(); this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(_dTable.TableName, _dTable)); this.reportViewer1.Refresh();
Как я уже говорил выше, я попытался отладить код и вижу правильный отчет в dataTable, но кажется, что привязка не работает! Я не получаю никаких ошибок при запуске кода!
Любая помощь приветствуется!