Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB.NET/2008] PrintDocument come report, Problema con variabile Static

    Io cerco di stampare un report utilizzando PrintDocument.
    Tralascio tutto il codice per disegnare i vari oggetti grafici concentrandomi sul codice che analizza i record contenuti in un datagridview e li passa a PrintDocument.

    codice:
    'Questa variabile contiene la posizione nel dataset
    Static z As Integer
    
    'In questa invece si mette la posizione di stampa della prima riga dei dati.
    Dim Y As Integer = 135
    
    
    'Inizio a ciclare i record
    'In questo punto decido quanti record inserire in ogni pagina (in questo caso 25 ognuna)
    For z = z To z + 70    
                                                                 
                    If z < DataGridView1.RowCount Then
    
                        'QUANTITA (In unità)
                        Quantita = FormatNumber(DataGridView1.Rows(z).Cells(2).Value, 2)
                        'TotQuantita = TotQuantita + Quantita
    
                        'PREZZO (In €uro)
                        Prezzo = FormatNumber(DataGridView1.Rows(z).Cells(3).Value, 2)
    
                        'SCONTO1 (In termini percentuali)
                        Sconto1 = FormatNumber(DataGridView1.Rows(z).Cells(4).Value, 2)
    
                        'SCONTO2 (In termini percentuali)
                        Sconto2 = FormatNumber(DataGridView1.Rows(z).Cells(5).Value, 2)
    
                        'SCONTO3 (In termini percentuali)
                        Sconto3 = FormatNumber(DataGridView1.Rows(z).Cells(6).Value, 2)
                       
                        'IVA (In termini percentuali)
                        Iva = FormatNumber(DataGridView1.Rows(z).Cells(7).Value, 2)
       
                        'VALORE (Comprensivo di iva)
                        Valore = FormatNumber(DataGridView1.Rows(z).Cells(8).Value, 2)
    
                        e.Graphics.DrawString(Quantita, Font3, Brushes.Black, e.MarginBounds.Left + 256, Y)
                        e.Graphics.DrawString(Prezzo, Font3, Brushes.Black, e.MarginBounds.Left + 310, Y)
                        e.Graphics.DrawString(Sconto1, Font3, Brushes.Black, e.MarginBounds.Left + 364, Y)
                        e.Graphics.DrawString(Sconto2, Font3, Brushes.Black, e.MarginBounds.Left + 418, Y)
                        e.Graphics.DrawString(Sconto3, Font3, Brushes.Black, e.MarginBounds.Left + 472, Y)
                        e.Graphics.DrawString(Iva, Font3, Brushes.Black, e.MarginBounds.Left + 526, Y)
                        e.Graphics.DrawString(Valore, Font3, Brushes.Black, e.MarginBounds.Left + 580, Y)
    
                        Y = Y + Font3.GetHeight
                        e.HasMorePages = True                                                                           'Permetto di stampare la pagina successiva                                                                                    'Aumenta di una unità il numero della pagina
    
                    Else
    
                        e.HasMorePages = False                                                                          'Blocco la stampa
    
                    End If
    
                Next z

    Voi penserete che tutto funziona, ed è proprio così, almeno fino al momento della stampa effettiva, dove vengono stampati tutti gli elementi grafici ma gli item del datagridview no.

    Cosa è successo? dove sbaglio?

    Ho provato anche a mettere Z=0 (anzichè Z=Z) visualizza correttamente solo la prima pagina, le successive no ma in compenso la prima viene stampata correttamente.

    Se qualcuno sa consigliarmi o una possibile risoluzione o altre strade : GRAZIE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma che valore ha z in partenza?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Hai ragione scusa non lo ho specificato nel messagio

    Ha un valore iniziale pari a 0

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 © 2026 vBulletin Solutions, Inc. All rights reserved.