ERRO AO IMPRIMIR COM PRINTDOCUMENT

PCLSILVA 02/12/2013 22:19:51
#431686
Boa Noite!
Preciso imprimir um banco de dados mysql usando o PrintDocument. o problema é que o código ou entra em loop ou só imprime uma pagina, eu preciso imprimir duas notas por página, segue abaxo o codigo que estou usando!
Desde já agradeço a ajuda!

Private Sub btImpCarga_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btImpCarga.Click

Dim printIt As New PrintDocument
Dim printPreview As New PrintPreviewDialog
printPreview.Document = printIt
AddHandler printIt.PrintPage, AddressOf printIt_PrintPage
[ô] Clipboard.SetImage(My.Resources.Phoenix_logo)
printPreview.ShowDialog()
End Sub

Private Sub printIt_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
Dim x As Integer
Dim format As New StringFormat
Dim mTotal As Double
Dim mCount As Integer
Dim XXX As String
Dim linhaAtual As Integer


format.Alignment = StringAlignment.Far

x = 0



If Not conn.State = ConnectionState.Open Then
conect()
End If

SQL = [Ô]SELECT * FROM Vendas WHERE Carga = [ô][Ô] & Me.txtCarga.Text & [Ô][ô]ORDER BY NroNota ASC[Ô]

Dim myData As New DataTable
myCommand.Connection = conn
myCommand.CommandText = SQL
myAdapter.SelectCommand = myCommand
myAdapter.Fill(myData)
myReader = myCommand.ExecuteReader()

CliCod = myData.Rows(mCount).Item([Ô]CodCli[Ô])
CodProd = myData.Rows(mCount).Item([Ô]CodProd[Ô])

e.Graphics.DrawString(myData.Rows(0).Item([Ô]CodCli[Ô]) & [Ô] - [Ô] & myData.Rows(0).Item([Ô]RazSoc[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 10)
e.Graphics.DrawString(myData.Rows(mCount).Item([Ô]Endereco[Ô]) & [Ô] - [Ô] & myData.Rows(mCount).Item([Ô]Bairro[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 30)
e.Graphics.DrawString([Ô]Tel.: [Ô] & myData.Rows(mCount).Item([Ô]Telefone[Ô]) & [Ô] - [Ô] & CliRota, New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 50)
e.Graphics.DrawString(Me.txtCarga.Text, New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 70)
e.Graphics.DrawString([Ô]PEDIDO: [Ô] & myData.Rows(mCount).Item([Ô]NroNota[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 600, 70)


e.Graphics.DrawString([Ô]COD [Ô], New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 100)
e.Graphics.DrawString([Ô]PRODUTO QUANT Unit TOTAL[Ô], New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 60, 100)

XXX = myData.Rows(mCount).Item([Ô]NroNota[Ô])
While myReader.Read()
If myData.Rows(mCount).Item([Ô]NroNota[Ô]) = XXX Then
e.Graphics.DrawString(myData.Rows(mCount).Item([Ô]CodProd[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 10, 120 + (x * 20))
e.Graphics.DrawString(NomeProd, New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 60, 120 + (x * 20))
e.Graphics.DrawString(myData.Rows(mCount).Item([Ô]Quantidade[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 250, 120 + (x * 20), format)
e.Graphics.DrawString(CDbl(myData.Rows(mCount).Item([Ô]VlrVenda[Ô])).ToString([Ô]##,###,##0.00[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 330, 120 + (x * 20), format)
e.Graphics.DrawString(CDbl(myData.Rows(mCount).Item([Ô]VlrTotVenda[Ô])).ToString([Ô]##,###,##0.00[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 430, 120 + (x * 20), format)

mTotal = mTotal + CDbl(myData.Rows(mCount).Item([Ô]VlrTotVenda[Ô]))

mCount += 1
x = x + 1
Else
e.Graphics.DrawString([Ô]TOTAL--> [Ô] & mTotal.ToString([Ô]##,###,##0.00[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 280, 120 + (x * 30))

XXX = myData.Rows(mCount).Item([Ô]NroNota[Ô])

e.Graphics.DrawString(myData.Rows(mCount).Item([Ô]CodCli[Ô]) & [Ô] - [Ô] & myData.Rows(mCount).Item([Ô]RazSoc[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 700 + (x * 20))
e.Graphics.DrawString(myData.Rows(mCount).Item([Ô]Endereco[Ô]) & [Ô] - [Ô] & myData.Rows(mCount).Item([Ô]Bairro[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 720 + (x * 20))
e.Graphics.DrawString([Ô]Tel.: [Ô] & myData.Rows(mCount).Item([Ô]Telefone[Ô]) & [Ô] - [Ô] & CliRota, New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 740 + (x * 20))
e.Graphics.DrawString(Me.txtCarga.Text, New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 10, 760 + (x * 20))
e.Graphics.DrawString([Ô]PEDIDO: [Ô] & myData.Rows(mCount).Item([Ô]NroNota[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 600, 780 + (x * 20))

e.Graphics.DrawString(myData.Rows(mCount).Item([Ô]CodProd[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 10, 800 + (x * 20))
e.Graphics.DrawString(NomeProd, New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 60, 800 + (x * 20))
e.Graphics.DrawString(myData.Rows(mCount).Item([Ô]Quantidade[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 250, 800 + (x * 20), format)
e.Graphics.DrawString(CDbl(myData.Rows(mCount).Item([Ô]VlrVenda[Ô])).ToString([Ô]##,###,##0.00[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 330, 800 + (x * 20), format)
e.Graphics.DrawString(CDbl(myData.Rows(mCount).Item([Ô]VlrTotVenda[Ô])).ToString([Ô]##,###,##0.00[Ô]), New Font([Ô]Verdana[Ô], 11, FontStyle.Regular), Brushes.Black, 430, 800 + (x * 20), format)

mTotal = mTotal + CDbl(myData.Rows(mCount).Item([Ô]VlrTotVenda[Ô]))

mCount += 1
x = (x * 30)

End If
linhaAtual += 1
e.HasMorePages = True
End While
linhaAtual += 1





e.Graphics.DrawString(Date.Now, New Font([Ô]Verdana[Ô], 11, FontStyle.Bold), Brushes.Black, 525, 1120)
conn.Close()
conn.Dispose()
e.HasMorePages = False
Exit Sub


End Sub
Faça seu login para responder