Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    75

    [VB .NET] problemi stampa su più pagine

    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:
    codice:
     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
    ciao a tutti
    luca

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Non hai specificato di che linguaggio si tratta.
    Dovrebbe essere VB, ma in ogni caso manca la versione.

    Il linguaggio è un dettaglio obbligatorio nel titolo della discussione.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    75
    è vero scusa me ne sono dimenticato. cmq è il VB .NET 2005.
    Ho modificato il titolo

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    75
    ragazzi va bene anche un codice di esempio per stampare un datagrid che qualcuno ha.

    ciao luca

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.