Я пытаюсь использовать встроенный элемент управления Просмотр отчетов для создания собственных отчетов. Кристаллические отчеты тяжелы и не работают на всех клиентских компьютерах, поэтому я даю сборку отчетов Microsoft.ReportViewer - программно сгенерированный отчет
Цель настоящего отчета - распечатать список всех программ. Они aregotten из базы данных и хранятся в списке следующим образом:
Private Function ProgramDataset() As DataSet
Dim ds As DataSet = New DataSet("Programs")
Dim allPrograms As List(Of clsProgram) = clsProgram.GetAll()
'Build datatable
Dim table1 As DataTable = New DataTable("Programs")
table1.Columns.Add("ProgramName")
For Each program As clsProgram In allPrograms
table1.Rows.Add(program.Name)
Next
' Create a DataSet. Put the table in it
ds.Tables.Add(table1)
Return ds
End Function
Так что мой набор данных под названием «Программы» и содержит DataTable с колонкой под названием «ProgramName». Я добавлял имя программы и, наконец, вернуть набор данных, которые будут использоваться здесь:
Dim ds As DataSet = ProgramDataset()
Dim p As New ReportParameter("programName", "Test")
frmReportViewer.ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
frmReportViewer.ReportViewer1.LocalReport.ReportPath = "..\..\Reports\rptReport.rdlc"
frmReportViewer.ReportViewer1.LocalReport.SetParameters(p)
frmReportViewer.ReportViewer1.LocalReport.DataSources.Clear()
frmReportViewer.ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("Programs", ds.Tables(0)))
frmReportViewer.ReportViewer1.DocumentMapCollapsed = True
frmReportViewer.ReportViewer1.RefreshReport()
frmReportViewer.Show()
Мой доклад под названием «rptReport» содержит поле параметра с именем «ProgramName». Прямо сейчас я пишу в «Тест», и он работает. Мой вопрос, я хочу, чтобы напечатать все имена программ через петлю, но я не совсем уверен, как идти о выполнении этого ...
У вас есть много вещей, которые вам нужны: вам не нужно как список, так и набор данных - вы можете использовать список или строго типизированный набор данных, но вам нужно связать отчет с этим в дизайнере ; поэтому вы должны использовать строго типизированный ds- он должен быть доступен во время разработки. Забудьте о параметрах на данный момент. – peterG