Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Testo non completato al salto pagina.
venerdì 16 febbraio 2018 - 17.05
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Peppino
Profilo
| Junior Member
193
messaggi | Data Invio:
ven 16 feb 2018 - 17:05
Chiedo scusa se non è la stanza giusta, magari mi indicate.
' Ciao a tutti.
' Uso Visual Studio Community, Sql Server 2008 R2 e per la stampa PrintDocument
' Siccome faccio l'amministratore ma solo per il mio condominio, ho pensato di farmi un piccolo
' applicativo personale. Diciamo che ci sono quasi riuscito. Dico quasi perchè mi sono infancato
' nella stampa del verbale. Siccome non voglio che l'intero verbale sia scritto in un'unica
' variabile, (che non ci sarebbero problemi) ma solo per abbellirlo un poco usando diversi tipi di font.
' Qui ci sono altri record salvati che stampa normalmente.
' Qui siamo arrivati alla stampa del primo ordine del giorno. Anche lui salvato con una variabile separata dal testo.
' Come detto prima, l'ordine del giorno viene stampato con un font diverso.
' Fino a questo diciamo che va bene.
' Il problema nasce sul record o sui record seguenti, in quanto ad ogni ordine del giorno è associato il testo.
' La variabile testo ( nel database sql è salvata come varCharMAX )
' Per la stampa dei testi di ogni orine del giorno, ho inserito il seguente codice.
' Il problema: arivato alla stampa del primo ordine del giorno, stampa il testo facendo fa anche il salto pagina se
' il testo è più lungo di una pagina. Passato al secondo cosi anche per gli altri, le cose cambiano, sono riuscito
' ad accodarlo come riga, ma arrivato a fine pagina se il testo non è finito, fa il salto pagina, ma il resto del
' testo non viene stampato perchè esce da quel record e passa a quello successivo.
' Non ho più punti della testa dove sbattere. E non vorrei rinunciarci. Quindi chiedo se quancuno gentilmente
' vorrebe dare regolata a questo codice in modo da far realizzare il mio desiderio.
' Mi scuso per il post un po lungo. Certo della vostra disponibilità come sempre, in attesa di una eventuale risposta,
' Ringrazio anticipatamente e porgo i saluti.
' Ciao a tutti. Peppino.
Do
If i < dt.Rows.Count Then
If RigheStampate < RighePerPagina Then
' Qui ci sono altri record che stampa normalmente.
If testo <> "" Then
Static intCurrentChar As Int32
' Qui ho dovuto adattare il font in questo modo perchè al salto pagina,
' ho mangia delle righe ho li ripete.
Dim font As New Font("Arial", 11.41369295125)
Dim intPrintAreaHeight, intPrintAreaWidth, marginLeft, marginTop As Int32
With PrintDocument1.DefaultPageSettings
intPrintAreaHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom
intPrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right
marginLeft = X + 10
marginTop = Y
End With
If PrintDocument1.DefaultPageSettings.Landscape Then
Dim intTemp As Int32
intTemp = intPrintAreaHeight
intPrintAreaHeight = intPrintAreaWidth
intPrintAreaWidth = intTemp
End If
Dim intLineCount As Int32 = CInt(intPrintAreaHeight / font.Height)
Dim rectPrintingArea As New RectangleF(marginLeft, marginTop, 725, 1078 - Y)
Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
Dim intLinesFilled, intCharsFitted As Int32
e.Graphics.MeasureString(Mid(testo, intCurrentChar + 1), font,
New SizeF(intPrintAreaWidth, intPrintAreaHeight), fmt, intCharsFitted, intLinesFilled)
e.Graphics.DrawString(Mid(testo, intCurrentChar + 1), Font5, Brushes.Black, rectPrintingArea, fmt)
intCurrentChar += intCharsFitted
If intCurrentChar < testo.Length Then
e.HasMorePages = True
righeStampate = 0
' i è l'avanzamento dei record
i = i
Exit Do
Else
intCurrentChar = 0
Y += CInt((intLinesFilled * 0.5) * AltezzaRiga)
righeStampate = CInt(Y / AltezzaRiga)
End If
End If
' Qui ci sono altri record che non stampa normalmente. In quanto la variabile che incrementa
' la riga successiva, da un risultato sballato.
i += 1
Else
e.HasMorePages = True
righeStampate = 0
Exit Do
End If
e.HasMorePages = True
Else
e.HasMorePages = False
Exit Do
End If
Loop
Torna su
Stanze Forum
Elenco Threads
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 !