Problema con stampa VB.NET

lunedì 23 gennaio 2012 - 12.37

raf741804 Profilo | Newbie

Ciao a tutti
Ho un problema con l'anteprima di stampa
Ho creato questo codice:
Private Sub cmdStampaSelezione_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStampaSelezione.Click
If sender.text = "Stampa tutti i dati" Then
' Se l'utente vuole stampare l'elenco completo, questa riga visualizza TUTTI i dati nella tabella.
Titolo = "ANALISI LISTINI TOTALE"
Me.ListiniTableAdapter.Fill(Me.ListDataSet.Listini)
End If
PageSetupDialog1.Document = PrintDocument1
If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
PrintDocument1.Print()
Exit Sub
End If
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

' Imposta il testo da stampare:
Dim Font1 As New Font("Arial Black", 18)
Dim Font2 As New Font("Arial", 18, FontStyle.Bold)
Dim Font3 As New Font("Arial", 12, FontStyle.Bold)
Dim Font4 As New Font("Arial", 12)
Static i As Integer
Dim Y As Integer = 250
Dim str As String
Static Pagina As Integer
Dim Parziale As Double
e.Graphics.DrawString("ANALISI LISTINI", Font2, Brushes.Black, 10, 60)
e.Graphics.DrawString("Stagione.", Font3, Brushes.Black, 10, 200)
e.Graphics.DrawString("Tessuto", Font3, Brushes.Black, 110, 200)
e.Graphics.DrawString("Modello", Font3, Brushes.Black, 180, 200)
e.Graphics.DrawString("Descrizione", Font3, Brushes.Black, 300, 200)
e.Graphics.DrawString("Costo", Font3, Brushes.Black, 410, 200)
e.Graphics.DrawString("Ricarica", Font3, Brushes.Black, 480, 200)
e.Graphics.DrawString("Prezzo", Font3, Brushes.Black, 560, 200)
e.Graphics.DrawString("Façon", Font3, Brushes.Black, 630, 200)
e.Graphics.DrawLine(Pens.Red, 10, 230, 780, 230)

For i = i To i + 24
If i < ListiniBindingSource.Count Then
str = ListDataSet.Tables("Listini").Rows(i).Item(0)
str = ListDataSet.Tables("Listini").Rows(i).Item(1)
e.Graphics.DrawString(str, Font4, Brushes.Black, 10, Y)
str = ListDataSet.Tables("Listini").Rows(i).Item(2)
e.Graphics.DrawString(str, Font4, Brushes.Black, 110, Y)
str = ListDataSet.Tables("Listini").Rows(i).Item(3)
e.Graphics.DrawString(str, Font4, Brushes.Black, 180, Y)
str = ListDataSet.Tables("Listini").Rows(i).Item(9)
e.Graphics.DrawString(str, Font4, Brushes.Black, 300, Y)
str = ListDataSet.Tables("Listini").Rows(i).Item(10)
e.Graphics.DrawString(str, Font4, Brushes.Black, 410, Y)
str = ListDataSet.Tables("Listini").Rows(i).Item(11)
e.Graphics.DrawString(str, Font4, Brushes.Black, 480, Y)
str = ListDataSet.Tables("Listini").Rows(i).Item(12)
Parziale += str
e.Graphics.DrawString(str, Font4, Brushes.Black, 560, Y)
str = ListDataSet.Tables("Listini").Rows(i).Item(8)
e.Graphics.DrawString(str, Font4, Brushes.Black, 630, Y)


Y = Y + Font4.GetHeight
e.HasMorePages = True
Else
e.HasMorePages = False
End If
Next i
TextBox1.Text = FormatNumber(TextBox1.Text, 2)
TextBox2.Text = FormatNumber(TextBox2.Text, 2)
TextBox3.Text = FormatNumber(TextBox3.Text, 2)
If i > ListiniBindingSource.Count Then
e.Graphics.DrawString("MEDIE ", Font3, Brushes.Black, 340, (Y + 15))
str = TextBox1.Text
e.Graphics.DrawLine(Pens.Black, 410, (Y + 10), 700, (Y + 10))
e.Graphics.DrawString(str, Font4, Brushes.Black, 410, Y + 15)
str = TextBox2.Text
e.Graphics.DrawLine(Pens.Black, 480, (Y + 10), 700, (Y + 10))
e.Graphics.DrawString(str, Font4, Brushes.Black, 480, Y + 15)
str = TextBox3.Text
e.Graphics.DrawLine(Pens.Black, 560, (Y + 10), 700, (Y + 10))
e.Graphics.DrawString(str, Font4, Brushes.Black, 560, Y + 15)
End If
'Per visualizzare un elemento grafico
e.Graphics.DrawLine(Pens.Red, 10, 780, 780, 780)
Pagina += 1
e.Graphics.DrawString("Pagina " & Pagina, Font4, Brushes.Black, 600, 850)


End Sub

Fin qui tutto a posto,mi stampa tutte le pagine del documento,ma appena inserisco il controllo
PrintPreviewDialog1

mi fa vedere tutte le pagine,ma mi stampa solo l'ultima
con i totali e senza dati

Qualcumo mi può aiutare?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5