salve a tutti avrei necesssità di stampare il contenuto di un datagridview su carta.
Per stampare riesco a stamparlo usando la classe printdocument, ma il problema si pone quando il datagridview ha molti record e quidni è richiesta la stampa su più pagine. Ho provato a usare e.hasmorepages per farlo stampare su più pagine, ma le pagine che mi escono dalla stampante sono tutte uguali.
Vi posto l'abbozzo di codice che ho scritto:
ciao a tutticodice:Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim cont As Integer, I As Integer Static righe As Integer Dim hRow As Integer = 25 Dim left As Integer Dim top As Integer = 20 e.Graphics.DrawString("ID", Data.Font, Brushes.Black, left + 49, top) e.Graphics.DrawString("Data", Data.Font, Brushes.Black, left + 92, top) e.Graphics.DrawString("Scheda", Data.Font, Brushes.Black, left + 242, top) e.Graphics.DrawString("Descrizione", Data.Font, Brushes.Black, left + 335, top) Do For Each dgr As DataGridViewRow In Data.Rows cont = 0 top += hRow left = 50 For Each dgc As DataGridViewCell In dgr.Cells e.Graphics.DrawString(dgc.Value, Data.Font, Brushes.Black, left, top) Select Case cont Case 0 : left += 45 Case 2 : left += 90 Case Else : left += 150 End Select cont += 1 Next Next righe += 45 e.HasMorePages = True If righe > Data.Rows.Count Then e.HasMorePages = False : Exit Do Loop Until righe < Data.Rows.Count End Sub
luca![]()

Rispondi quotando

