Member 11691579 Ответов: 1

Как отобразить все строки в datagridview в crystal report без использования источника данных VB.NET


Иам новые в программировании и мне нужна помощь я хочу показать все строки в datagridview в отчет Crystal, в случае моего элемента управления datagridview не имеет источника данных, я просто добавить все значения инструкцию к нему после того, как я вставить все значения я хочу нажать кнопку, чтобы отправить все это строки хрусталя отчет иам с использованием Visual Studio 2015 и я просто создайте новый проект и поместите Datagridview1 и CrystalReportViewer1 и это мой код под кнопку Перейти к Кристалл

Dim crystal As New CrystalReport1
    crystal.SetDataSource(DataGridView1.DataSource)
    CrystalReportViewer1.ReportSource = crystal
    CrystalReportViewer1.Refresh()

and when i click the button i got this the report has no table Error Picture
<a href="https://i.stack.imgur.com/N9blQ.jpg"></a>
 what to do


Что я уже пробовал:

я попробовал этот код я написал его помогите мне

1 Ответов

Рейтинг:
1

Maciej Los

В случае если а Практическое руководство[^] компонент не привязан к какому-либо источнику данных, а свойство DataSource[^] вернет Nothing.

Итак, вам нужно создать источник данных для crystal report. Видеть:

Dim dgv As DataGridView = Me.DataGridView
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(dgv.Columns.Cast(Of DataGridViewColumn)().Select(Function(x) New DataColumn(x.Name)).ToArray())
dt = dgv.Rows.Cast(Of DataGridViewRow)() _
	.Select(Function(x) _
		dt.LoadDataRow(New Object() _
		{ _
			x.Cells(0).Value, _
			x.Cells(1).Value, _
			x.Cells(2).Value _
		}, False)) _
	.CopyToDataTable()
Dim crystal As New CrystalReport1
    crystal.SetDataSource(dt)
    CrystalReportViewer1.ReportSource = crystal
    CrystalReportViewer1.Refresh()


Вы можете достичь того же самого с помощью простых for ... next цикл по столбцам и строкам в DataGridView.
Удачи вам!


Member 11691579

Большое вам спасибо но я получил эту ошибку когда пытался использовать ваш код
http://prntscr.com/js3aih

Maciej Los

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

Member 11691579

я ввел твой код
Попробуй


Дим dgv как практическое руководство = меня.DataGridView1
Dim dt As DataTable = новый DataTable()
ДТ.колонны.AddRange(dgv.Columns.Приведение(От DataGridViewColumn)().Выберите(функция(х) новый datacolumn(х.Имя)).Метод toArray())
ДТ = dgv.Строк.Литой(Из Ячейки Datagridviewrow)() _
.Выберите(функция(x) _
dt.LoadDataRow(новый объект() _
{
x.ячейки(0).значение,
x.ячейки(1).Значение,
x.ячейки(2).Значение
}, Ложный)) _
.CopyToDataTable()
Тусклый кристалл как новый CrystalReport1
кристалл.SetDataSource(dt)
CrystalReportViewer1.ReportSource = Кристалл
CrystalReportViewer1.Обновить()
Поймать ex как исключение
С помощью MsgBox(исх.Сообщение)
Конец Попытки

Вот в результате я и получил ту же ошибку
Необработанное исключение типа "System.IO.FileNotFoundException" произошло в mscorlib.dll

Дополнительные сведения: не удалось загрузить файл или файл сборки:///C: программные файлы\(для x86)\приложение businessobjects\отчетов Crystal для .Чистый фреймворк 4.0\общие\приложения businessobjects предприятия в XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' или одна из ее зависимостей. Система не может найти указанный файл.

Только ваш код делает это
Не могли бы вы, пожалуйста, сделать для меня примером