CRYSTAL REPORTS

THAINE 15/02/2012 08:23:22
#394789
Obrigada pela ajuda, mais eu ainda não consegui pegar todas as linhas do datagridview
para exibir no crystal reports
ALTAIR148 15/02/2012 11:04:42
#394804
Bom dia,

Posta ai como seu código está atualmente.
ALTAIR148 15/02/2012 12:47:54
#394814
Boa tarde,

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...).



THAINE 22/02/2012 12:49:11
#395263
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.[Ô]
ALTAIR148 22/02/2012 13:11:32
#395267
Faça assim:

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;
THAINE 22/02/2012 13:17:52
#395269
Agora funcionou, muito obrigadaa *-*
Página 2 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas