IMPRIMIR DATAGRIDVIEW
Olá, estou tentando imprimir um datagridview na minha aplicação.
Coloquei um printdialog e tentei de várias formas, até converti pra bmp pra imprimir, só que não deu mt certo.
Alguém teria um modo um pouco mais fácil para imprimir o datagridview? Eu sou iniciante e essa é minha primeira aplicação pra valer.
Obrigado.
Coloquei um printdialog e tentei de várias formas, até converti pra bmp pra imprimir, só que não deu mt certo.
Alguém teria um modo um pouco mais fácil para imprimir o datagridview? Eu sou iniciante e essa é minha primeira aplicação pra valer.
Obrigado.
Bom dia
Veja os links abaixo, creio que eles devem lhe ajudar.
http://vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=353241&varWorld=
http://vb.net-informations.com/datagridview/vb.net_datagridview_printing.htm
http://www.macoratti.net/vbn_prn2.htm
Veja os links abaixo, creio que eles devem lhe ajudar.
http://vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=353241&varWorld=
http://vb.net-informations.com/datagridview/vb.net_datagridview_printing.htm
http://www.macoratti.net/vbn_prn2.htm
Eu vi todos os links e a maioria deles eu já acessei hoje. Mas não consegui fazer. Muitos deles estão em C# e eu não entendo.
Não tem uma forma de apenas pegar o que tem no datagridview (sem converter pra imagem) e imprimir como se fosse uma tabela comum?
Não tem uma forma de apenas pegar o que tem no datagridview (sem converter pra imagem) e imprimir como se fosse uma tabela comum?
Sim, se voce tem tem um componente PrintDocument no Form, eh so escrever uma iteracao no evento PrintPage do objeto de impressao percorrendo todos os Rows do DataGridView.
http://www.macoratti.net/08/11/vbn_vimp.htm
http://www.macoratti.net/08/11/vbn_vimp.htm
O meu printdocument ficou assim
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawString([Ô]Dados do Cliente[Ô], New Font([Ô]arial[Ô], 40, FontStyle.Regular), Brushes.Black, 160, 80)
e.Graphics.DrawString([Ô]Código : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 200)
e.Graphics.DrawString(ccodigo, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 200)
e.Graphics.DrawString([Ô]Nome : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 230)
e.Graphics.DrawString(cnome, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 230)
e.Graphics.DrawString([Ô]Endereço : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 260)
e.Graphics.DrawString(cendereco, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 260)
e.Graphics.DrawString([Ô]CEP : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(ccep, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Cidade : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(ccidade, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Estado : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(cestado, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Telefone : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(ctelefone, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Email : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(cemail, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
End Sub
Como eu faço pra usar os campos do datagridview? Ele exibe os dados nessa mesma ordem.
Eu queria imprimir igual o datagridview, como se fosse uma tabela do excel.
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawString([Ô]Dados do Cliente[Ô], New Font([Ô]arial[Ô], 40, FontStyle.Regular), Brushes.Black, 160, 80)
e.Graphics.DrawString([Ô]Código : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 200)
e.Graphics.DrawString(ccodigo, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 200)
e.Graphics.DrawString([Ô]Nome : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 230)
e.Graphics.DrawString(cnome, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 230)
e.Graphics.DrawString([Ô]Endereço : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 260)
e.Graphics.DrawString(cendereco, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 260)
e.Graphics.DrawString([Ô]CEP : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(ccep, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Cidade : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(ccidade, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Estado : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(cestado, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Telefone : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(ctelefone, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
e.Graphics.DrawString([Ô]Email : [Ô], New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 20, 290)
e.Graphics.DrawString(cemail, New Font([Ô]arial[Ô], 15, FontStyle.Regular), Brushes.Black, 220, 290)
End Sub
Como eu faço pra usar os campos do datagridview? Ele exibe os dados nessa mesma ordem.
Eu queria imprimir igual o datagridview, como se fosse uma tabela do excel.
To baixando o crystalreports... Se eu fizer um relatório e clicar no botão imprimir dele já abre a caixa de diálogo de impressão ou mesmo assim preciso do printdocument ??
Veja esse projeto pra se te ajuda... eu que fiz
ALEX PASSOS
to seguindo seu projeto e o código tá assim agora
Private Sub imprimirButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles imprimirButton.Click
Try
Application.DoEvents()
relatorioImpressao.Crystal.Refresh()
relatorioImpressao.Crystal.RefreshReport()
vContador = clientesDataGridView.Rows.Count
If vContador = 0 Then
MsgBox([Ô]Não há dados para imprimir[Ô], MsgBoxStyle.Information, [Ô]Atenção[Ô])
Exit Sub
End If
[ô]Variáveis com o nome das colunas
Application.DoEvents()
Dim rptNormal As New relatorio
rptNormal.SetDataSource(dSet)
[ô]frmImprimir.MdiParent = frmPrincipal
Me.Dispose()
Dim lobjImpressao As New relatorioImpressao
FrmBase.Controls.Add(lobjImpressao)
lobjImpressao.Show()
relatorioImpressao.Crystal.ReportSource = rptNormal
Catch ex As Exception
MsgBox(Err.Description)
End Try
End Sub
como eu posso fazer pra incluir os dados da minha tabela do sql no relatorio ???
ee tá dando o seguinte erro
[Ô]Object Reference not set to an instante of an object[Ô]
to seguindo seu projeto e o código tá assim agora
Private Sub imprimirButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles imprimirButton.Click
Try
Application.DoEvents()
relatorioImpressao.Crystal.Refresh()
relatorioImpressao.Crystal.RefreshReport()
vContador = clientesDataGridView.Rows.Count
If vContador = 0 Then
MsgBox([Ô]Não há dados para imprimir[Ô], MsgBoxStyle.Information, [Ô]Atenção[Ô])
Exit Sub
End If
[ô]Variáveis com o nome das colunas
Application.DoEvents()
Dim rptNormal As New relatorio
rptNormal.SetDataSource(dSet)
[ô]frmImprimir.MdiParent = frmPrincipal
Me.Dispose()
Dim lobjImpressao As New relatorioImpressao
FrmBase.Controls.Add(lobjImpressao)
lobjImpressao.Show()
relatorioImpressao.Crystal.ReportSource = rptNormal
Catch ex As Exception
MsgBox(Err.Description)
End Try
End Sub
como eu posso fazer pra incluir os dados da minha tabela do sql no relatorio ???
ee tá dando o seguinte erro
[Ô]Object Reference not set to an instante of an object[Ô]
Consegui... Eu não tinha importado o relatorio pro reportviewer hehe
ficou assim o código
Private Sub imprimirButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles imprimirButton.Click
Try
Me.Dispose()
Dim lobjImpressao As New relatorioImpressao
FrmBase.Controls.Add(lobjImpressao)
lobjImpressao.Show()
Catch ex As Exception
MsgBox(Err.Description)
End Try
End Sub
o problema é que não tem opção no reportviewer pra não cortar parte das colunas? Pq a coluna email não aparece todo o email..
ficou assim o código
Private Sub imprimirButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles imprimirButton.Click
Try
Me.Dispose()
Dim lobjImpressao As New relatorioImpressao
FrmBase.Controls.Add(lobjImpressao)
lobjImpressao.Show()
Catch ex As Exception
MsgBox(Err.Description)
End Try
End Sub
o problema é que não tem opção no reportviewer pra não cortar parte das colunas? Pq a coluna email não aparece todo o email..
Agora eu consegui ajustar as colunas e linhas e tá imprimindo perfeitamente...
Só que toda vez que vai carregar o relatório ele pede a senha do banco de dados.
Como eu faço pra salvar ela e não pedir mais ???
Só que toda vez que vai carregar o relatório ele pede a senha do banco de dados.
Como eu faço pra salvar ela e não pedir mais ???
Acho que saà muito do assunto. Vou encerrar esse tópico e criar um novo, pois este já está ficando confuso. Muito obrigado a todos.
Tópico encerrado , respostas não são mais permitidas