grazie a tutti
A.
> in
> particolare, dovendo stampare il risultato di una query come faccio a
> passare il risultato, o eventualmente il datareader alla sub
> PrinterDocument1_PrintPage??? e inoltre, come faccio se devo stampare piu'
> "moduli"? devo creare un printdocument per ogni "modulo"? In questo caso un
> bel printer.print sarebbe stato comodissimo :)
L'ho usato poco il PrintDocument e solo per fare una stampa di 4 textbox,
ma l'ho trovato abbastanza scomodo.
Un software di report dovrebbe andare molto meglio. ReportMan dovrebbe
andare anche su .NET.
sto facendo dei piccoli passi avanti... ora mi sono bloccato nel salto
pagina... vi posto il codice per intero sperando che qualcuno mi sappia
spiegare come fare:
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As
System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim carattereStampa As New Font("Courier New", 8, FontStyle.Regular)
Dim strHeader As String
Dim strLine As String
Dim LineY As Integer
strHeader =
"--------------------------------------------------------------------------------"
& vbNewLine & _
" REPORT " & vbNewLine & _
"--------------------------------------------------------------------------------"
e.Graphics.DrawString(strHeader, carattereStampa, Brushes.Black, 0, 0)
LineY = 30
While dr.Read
If (LineY + 20 > e.MarginBounds.Bottom) Then
e.HasMorePages = True
e.Graphics.DrawString(strHeader, carattereStampa, Brushes.Black, 0, 0)
LineY = 30
End If
LineY = LineY + 10
strLine = Format(dr("BARAG0"), "{0,-30}")
e.Graphics.DrawString(strLine, carattereStampa, Brushes.Black, 0, LineY)
End While
End Sub
quello che ottengo al momento � la stampa di n pagine tutte sovrapposte in
una sola... in teoria e.HasMorePages = true dovrebbe crearmi una nuova
pagina, ed infatti riesco a stampare l'strHeader ma poi le altre righe...
niente :(
aiutoooo ci sto diventando matto!!!!
A.
> sto facendo dei piccoli passi avanti... ora mi sono bloccato nel salto
> pagina... vi posto il codice per intero sperando che qualcuno mi sappia
> spiegare come fare:
> quello che ottengo al momento � la stampa di n pagine tutte sovrapposte in
> una sola... in teoria e.HasMorePages = true dovrebbe crearmi una nuova
> pagina, ed infatti riesco a stampare l'strHeader ma poi le altre righe...
> niente :(
>
> aiutoooo ci sto diventando matto!!!!
Non hai studiato bene :).
AFAIK HasMorePages serve solo quando lo setti a False parte la stampa.
http://totem.altervista.org/guida/versione2/C12.php
> sto facendo dei piccoli passi avanti... ora mi sono bloccato nel salto
> pagina... vi posto il codice per intero sperando che qualcuno mi sappia
> spiegare come fare:
> quello che ottengo al momento � la stampa di n pagine tutte sovrapposte in
> una sola... in teoria e.HasMorePages = true dovrebbe crearmi una nuova
> pagina, ed infatti riesco a stampare l'strHeader ma poi le altre righe...
> niente :(
>
> aiutoooo ci sto diventando matto!!!!
Non hai studiato bene :).
AFAIK HasMorePages serve solo quando lo setti a False parte la stampa.
http://totem.altervista.org/guida/versione2/C12.php
> sto facendo dei piccoli passi avanti... ora mi sono bloccato nel salto
> pagina... vi posto il codice per intero sperando che qualcuno mi sappia
> spiegare come fare:
Public Class Form1
Dim a As Integer
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
a = 1
Me.PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e
As System.Drawing.Printing.PrintPageEventArgs) Handles
PrintDocument1.PrintPage
Select Case a
Case 1
'stampo sulla prima pagina
e.Graphics.DrawRectangle(Pens.Blue, New Rectangle(e.PageBounds.Width \ 2 -
90, 150, 180, 30))
e.HasMorePages = True 'significa che appena il programma esce da questa
subrotine, verr� nuovamente scatenato l'evento di stampa: in termini pratici
questa subroutine verr� richiamata nuovamente
a = 2
Case 2
'stampo sulla seconda pagina
e.Graphics.DrawRectangle(Pens.Blue, New Rectangle(e.MarginBounds.Width \ 2 -
90, 250, 180, 30))
e.HasMorePages = false
End Select
End Sub
End Class