CRYSTAL REPORTS
Obrigada pela ajuda, mais eu ainda não consegui pegar todas as linhas do datagridview
para exibir no crystal reports
para exibir no crystal reports
Bom dia,
Posta ai como seu código está atualmente.
Posta ai como seu código está atualmente.
Boa tarde,
Olhando o seu código abaixo fica bem claro o erro.
A forma correta seria
Onde tem esse erro é o código responsável por adicionar os dados ao dataset, por este motivo ele tem que esta dentro do do Laço (For...).
Olhando o seu código abaixo fica bem claro o erro.
For i = 0 To dgvMaterial.Rows.Count - 1
dr([Ô]CodMaterial[Ô]) = dgvMaterial.Rows(i).Cells(0).Value
dr([Ô]Descricao[Ô]) = dgvMaterial.Rows(i).Cells(1).Value
dr([Ô]Qtd[Ô]) = dgvMaterial.Rows(i).Cells(2).Value
dr([Ô]PrecoUnitario[Ô]) = dgvMaterial.Rows(i).Cells(3).Value
dr([Ô]Total[Ô]) = dgvMaterial.Rows(i).Cells(4).Value
Next
ds.Tables(0).Rows.Add(dr) [ô] <========================== ERRADO
Dim cr As New RelatorioOrcamento
cr.SetDataSource(ds)
Form2.CrystalReportViewer1.ReportSource = cr
Form2.Show()
A forma correta seria
For i = 0 To dgvMaterial.Rows.Count - 1
dr([Ô]CodMaterial[Ô]) = dgvMaterial.Rows(i).Cells(0).Value
dr([Ô]Descricao[Ô]) = dgvMaterial.Rows(i).Cells(1).Value
dr([Ô]Qtd[Ô]) = dgvMaterial.Rows(i).Cells(2).Value
dr([Ô]PrecoUnitario[Ô]) = dgvMaterial.Rows(i).Cells(3).Value
dr([Ô]Total[Ô]) = dgvMaterial.Rows(i).Cells(4).Value
ds.Tables(0).Rows.Add(dr) [ô]<========================= Correto
Next
Dim cr As New RelatorioOrcamento
cr.SetDataSource(ds)
Form2.CrystalReportViewer1.ReportSource = cr
Form2.Show()
Onde tem esse erro é o código responsável por adicionar os dados ao dataset, por este motivo ele tem que esta dentro do do Laço (For...).
Quando eu tento isso
For i = 0 To dgvMaterial.Rows.Count - 1
dr([Ô]CodMaterial[Ô]) = dgvMaterial.Rows(i).Cells(0).Value
dr([Ô]Descricao[Ô]) = dgvMaterial.Rows(i).Cells(1).Value
dr([Ô]Qtd[Ô]) = dgvMaterial.Rows(i).Cells(2).Value
dr([Ô]PrecoUnitario[Ô]) = dgvMaterial.Rows(i).Cells(3).Value
dr([Ô]Total[Ô]) = dgvMaterial.Rows(i).Cells(4).Value
ds.Tables(0).Rows.Add(dr) [ô]<========================= Correto
Next
Dim cr As New RelatorioOrcamento
cr.SetDataSource(ds)
Form2.CrystalReportViewer1.ReportSource = cr
Form2.Show()
Aparece a seguinte mensagem
[Ô]This row already belongs to this table.[Ô]
For i = 0 To dgvMaterial.Rows.Count - 1
dr([Ô]CodMaterial[Ô]) = dgvMaterial.Rows(i).Cells(0).Value
dr([Ô]Descricao[Ô]) = dgvMaterial.Rows(i).Cells(1).Value
dr([Ô]Qtd[Ô]) = dgvMaterial.Rows(i).Cells(2).Value
dr([Ô]PrecoUnitario[Ô]) = dgvMaterial.Rows(i).Cells(3).Value
dr([Ô]Total[Ô]) = dgvMaterial.Rows(i).Cells(4).Value
ds.Tables(0).Rows.Add(dr) [ô]<========================= Correto
Next
Dim cr As New RelatorioOrcamento
cr.SetDataSource(ds)
Form2.CrystalReportViewer1.ReportSource = cr
Form2.Show()
Aparece a seguinte mensagem
[Ô]This row already belongs to this table.[Ô]
Faça assim:
Testei aqui e funcionou blz;
For i = 0 To dgvMaterial.Rows.Count - 1
Dim dr As DataRow = ds.Tables(0).NewRow()
dr([Ô]CodMaterial[Ô]) = dgvMaterial.Rows(i).Cells(0).Value
dr([Ô]Descricao[Ô]) = dgvMaterial.Rows(i).Cells(1).Value
dr([Ô]Qtd[Ô]) = dgvMaterial.Rows(i).Cells(2).Value
dr([Ô]PrecoUnitario[Ô]) = dgvMaterial.Rows(i).Cells(3).Value
dr([Ô]Total[Ô]) = dgvMaterial.Rows(i).Cells(4).Value
ds.Tables(0).Rows.Add(dr) [ô]<========================= Correto
Next
Dim cr As New RelatorioOrcamento
cr.SetDataSource(ds)
Form2.CrystalReportViewer1.ReportSource = cr
Form2.Show()
Testei aqui e funcionou blz;
Agora funcionou, muito obrigadaa *-*
Tópico encerrado , respostas não são mais permitidas