Problema salto pagina

domenica 02 ottobre 2016 - 12.19
Tag Elenco Tags  VB.NET  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2008 R2

Peppino Profilo | Junior Member

Ciao a tutti.

Uso Sql Server 2008 R2, Visual Basic 2010 Express e per la stampa PrintDocument

Ho un problema con il salto pagina e.HasMorePages che non riesco a risolvere. Sono giorni
che giro in rete sperando di trovare qualcosa che mi aiutasse a risolvere il problema ma
senza successo. Con il salto pagina con un solo ciclo, non ho problema, ma adesso mi serve
una stampa con cicli annidati e non riesco a fargli fare il salto pagina. Provo a fare un
piccolo esempio di quello che vorrei realizzare.

'Dichiarazione del numero di righe per pagine da stampare
Dim RighePerPagina As Integer = 20

Static j AS Integer
Static i As Integer
Static RigheStampate As Integer = 0

Dim Causale As String
Dim Articolo As String

'Con una query mi ricavo il totale dei record della tabella 'Causali'
Dim RecordCausali As Integer ' = risultato della query

'Con un'altra query mi ricavo il totale dei record della tabella 'Uscite'
Dim RecordUscite As Integer ' = risultato della query

'Con un'altra query mi richiamo la tabella delle 'Causali'
'Creo il primo ciclo esterno per lo scorrimento delle causali

For j = j To j + RecordCausali - 1

If j < BindingSource.Count Then

'Estraggo il valore della causale in base al ciclo
causale = CStr(DataSet.Tables("Causale").Rows(j).Item(0))

'Con un'altra query vedo s'è la causale estratta è presente nella tabelle delle 'Uscite'
If la causale esiste Then
'Stampo la riga della causale
e.Graphics.DrawString(causale, Font3, Brushes.Red, x, y)
y += 20
righeStampate += 1
End If

'Con un'altra query mi richiamo la tabella delle 'Uscite' con il parametro della causale
'Creo il secondo ciclo interno per lo scorrimento degli articoli che fanno parte della causale

'Se il ciclo sarebbe solo questo lo farei nel modo seguente e funziona bene
For i = i To i + RighePerPagina

If i < BindingSource.Count Then

'Estraggo il valore dell'articolo in base al ciclo
articolo = CStr(DataSet.Tables("Articolo").Rows(i).Item(2))

'Stampo la riga dell'articolo in base al ciclo e alla causale
e.Graphics.DrawString(articolo, Font5, Brushes.Black, x + 15, y)

y += 20
righeStampate += 1

'Se il ciclo sarebbe solo questo il codice del salto pagina e.HasMorePage = True
'lo metto qui e funziona bene

e.HasMorePages = True
Else
e.HasMorePages = False

End If

Next

End If

Next

Come impostato questo codice con il ciclo esterno non funziona. Vorrei sapere perché non funziona,
ma vorrei che il salto pagina lo facesse in base alle Righe Stampate. Ho provato in tanti modi seguendo
anche diversi esempi trovati in rete, ma il risultato è sempre lo stesso. Chiedo scusa se mi sono
prolungato un poco, ma cosi spero di aver espresso il problema in modo chiaro. In attesa di una eventuale
risposta (che spero tanto) con la quale gradirei un vostro suggerimento, aiuto o correzione del codice
che sarebbe il massimo.
Ringrazio anticipatamente come sempre.
Ciao a tutti. Peppino.

Ho risolto, forse non in modo appropriato, ma ho risolto.
Grazie comunque a tutti.
Ciao a tutti. Peppino.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5