Oppure

Loading
23/11/08 13:14
sergio58
Problema:Dopo aver effettuato regolarmente una stampa dalla routine Print_page,alla successiva richiesta di stampa,dopo aver modificato il documento, mi ristampa il documento precedente,senza la variazione effettuata.Ho azzerato tutte le variabili static.Controllando il codice passo passo ho notato che alla successiva richiesta,la routine _printpage non viene eseguita. Vi posto il codice che chiama l'evento _printPage dal secondo form presente nella procedura.
Private Sub frmAnteprima_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Dim intLivelliPdeiC As Integer
 Me.PrintPreviewControl2.Zoom=1.3 
                 Me.PrintPreviewControl2.Document = Form1.prtPianoDeiConti 
 'chiama la rutine del form pricipale     
 lblPaginaAttuale.Text = "1"
 Me.PrintPreviewControl2.UseAntiAlias = True

End Sub

Grazie a tutti
Ultima modifica effettuata da sergio58 23/11/08 13:15
aaa
23/11/08 23:19
Gianluca87
ciao,probabilmente rimane in cache il file che invii allo spooler di stampa, riesci a allegare il progetto intero o un progettino funzionante che esegue la funzione di stampa che usi?
Ciao
aaa
24/11/08 15:27
Il Totem
Forse hai postato il codice sbagliato (non c'è riferimento al metodo Print). Comunque penso che l'errore sia in PrintPage, poiché è quella la procedura che si occupa di prelevare i dati e stampare. Secondo me, i dati non sono stati aggiornati e vengono perciò presi dalla stessa fonte.
aaa
24/11/08 21:31
sergio58
Il codice della routine print_page è un normalissimo codice, di cui ne posto l'inizio perchè molto lungo.
Ma il problema secondo me è, come ha detto Gianluca, dello scarico della cache, ma non so come fare.
  Private Sub prtPianoDeiConti_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles prtPianoDeiConti.PrintPage
        Dim i As Integer
        '  Dim y As Integer
        Dim strDesMastro As String
        Dim strDesConto As String
        Dim intCodMastro As Integer
        Dim intCodConto As Integer
        Dim strCeeDare As String
        Dim strCeeAvere As String
        Dim strPatrimoniale_Economico As String
        Dim strFunzionamento As String
        Dim strCespite As String
        Dim intPuntaIniMastro As Integer
        Dim intPuntaFinMastro As Integer
        Dim intPuntaConto As Integer
        Dim strMastro As String
        Dim strCancellato As String
        Dim strConto As String
        Dim intNumMastri As Integer
        Dim strP_E As String
        Dim strInserimento As String = ""

        '
               '
        Static Numrighe As Integer = 0
        Static CicloMastro As Integer = 1
        Static Pagina As Integer = 1
        Dim stzDimensioneStringa As New SizeF
        Dim sngFineColonna As Single
        Dim strRigaStampa As String

        'definisce il font e determina l'altezza della riga
        Dim TipoCarattere As New Font("Arial", 9)
        Dim MastroGrasso As New Font("Arial", 9, FontStyle.Bold)
        Dim Grassetto As New Font("Verdana", 12, FontStyle.Bold)
        'rende la riga più grande di 2 pixel rispetto al carattere
        Dim sngAltezzaRiga As Single = TipoCarattere.GetHeight + 2
        Dim sngStampaX As Single
        Dim sngStampaY As Single = e.MarginBounds.Top
        Dim sngFinePagina As Single = 1100
        Dim gr As Graphics = e.Graphics
        Dim penBlack As New Pen(Color.Black, 1)

        gr.DrawRectangle(penBlack, 10, 20, 790, 80)
        sngStampaY = 50
        sngStampaX = 300
        strRigaStampa = "PIANO  DEI   CONTI"
        e.Graphics.DrawString(strRigaStampa, Grassetto, Brushes.Black, sngStampaX, sngStampaY)
        sngStampaY = sngStampaY + sngAltezzaRiga
        '
        sngStampaY = 110
        sngStampaX = 10
        strRigaStampa = "Conto"
        e.Graphics.DrawString(strRigaStampa, TipoCarattere, Brushes.Black, sngStampaX, sngStampaY)
        sngFineColonna = 180
        strRigaStampa = "Descrizione"
        stzDimensioneStringa = e.Graphics.MeasureString(strRigaStampa, TipoCarattere) 'misura la stringa in questo carattere
        sngStampaX = sngFineColonna - stzDimensioneStringa.Width
        e.Graphics.DrawString(strRigaStampa, TipoCarattere, Brushes.Black, sngStampaX, sngStampaY)

        sngStampaX = 350
        strRigaStampa = "Funzionamento"
        e.Graphics.DrawString(strRigaStampa, TipoCarattere, Brushes.Black, sngStampaX, sngStampaY)
        '
        sngStampaX = 500
        strRigaStampa = "Cee Dare"
        e.Graphics.DrawString(strRigaStampa, TipoCarattere, Brushes.Black, sngStampaX, sngStampaY)

        '
        sngStampaX = 700
        strRigaStampa = "Cee Avere"
        e.Graphics.DrawString(strRigaStampa, TipoCarattere, Brushes.Black, sngStampaX, sngStampaY)
        sngStampaY = sngStampaY + sngAltezzaRiga
        '
        'linea orizzontale
        gr.DrawLine(penBlack, 10, 130, 790, 130)
        sngStampaY = 150
  'azzeramenti
        frmAnteprima.lblPagine.Text = Pagina
        Numrighe = 0
        CicloMastro = 1
        Pagina = 1
aaa
25/11/08 2:13
Gianluca87
Ciao, il codice che mi hai postato non mi è di aiuto non conoscendo l'applicazione... se vuoi mi trovi su msn prendi pure il contatto dal mio profilo
aaa
25/11/08 14:57
Il Totem
Il codice stampa la stessa cosa su tutte le pagine. Io chiedevo la parte di codice in cui c'è la variazione (lettura da file/database/oggetti).
aaa