16/06/20 10:56
aragorn76
Ciao a tutti,
eccomi di nuovo con un altro quesito molto interessante dove però non sono molto afferrato e dove non riesco a trovare utili guide..
Ho un form che allego come esempio. Dentro il form:
2 datetimepicker
3 button
1 PrintPreviewControl1
1 datagridview1 (non visibile)
Come ben avrete capito, vorrei stampare i valori della datagridview1 nella zona grigia del documento (che sia poi possibile salvare in word o pdf o stampare). Questo documento deve avere un logo, un intestazione, numero pagina e una firma.
lasciando stare i valori delle 2 datetimepicker e volendo prendere tutti i valori nella DGV, ecco quello che sono riuscito a fare:
Con questo codice ho ricreato quello che vedete nel form.. anche se il codice (essendo ripeto la prima volta che uso questo comando) mi sembra un po come la La corazzata Potëmkin (secondo fantozzi)
Iniziamo dal dire che il button stampa non funge e non capisco perche.. forse sbaglio nell'indicare cosa stampare.. boh
Vorrei sapere intanto se il codice che ho scritto è giusto e come faccio a dire che il logo deve essere messo al centro?
Inoltre devo indicare il numero per ogni pagina.
Ma passiamo al problema principale: vorrei che si prendessero i dati dal datagridview1 e che i valori vengano messi in automatico nella parte grigia.. tenendo conto però che magari nella prima pagina potrei avere 10 record (in quanto le descrizioni sono piccole) ma nelle pagine a seguire avere magari solo 5 record ad esempio, perche ogni record ha una descrizione lunga che potrebbe prendere piu righe... importante che non superi lo spazio predisposto o arriverebbe sulla "Firma"..
Facendo questo poi credo che facendo Salva su word o stampa, dovrebbe tenere la formattazione... Ogni piccolo aiuto sarà per me un passo grande.. Grazie a tutti in anticipo
eccomi di nuovo con un altro quesito molto interessante dove però non sono molto afferrato e dove non riesco a trovare utili guide..
Ho un form che allego come esempio. Dentro il form:
2 datetimepicker
3 button
1 PrintPreviewControl1
1 datagridview1 (non visibile)
Come ben avrete capito, vorrei stampare i valori della datagridview1 nella zona grigia del documento (che sia poi possibile salvare in word o pdf o stampare). Questo documento deve avere un logo, un intestazione, numero pagina e una firma.
lasciando stare i valori delle 2 datetimepicker e volendo prendere tutti i valori nella DGV, ecco quello che sono riuscito a fare:
Private Sub PrintDocument1_PrintPage(sender As Object, e As Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim fon As New Font("Time New Roman", 14) Dim primariga As String = "esempio prima riga" Dim secondariga As String = "esempio seconda riga" Dim terzariga As String = "esempio terza riga" Dim numpag As Integer Dim logo As Drawing.Image = My.Resources.replogo 'logo e intestazione e.Graphics.DrawImage(logo, 350, 30, 100, 100) e.Graphics.DrawString(primariga, fon, Brushes.Black, 250, 150) e.Graphics.DrawString(secondariga, fon, Brushes.Black, 280, 170) e.Graphics.DrawString(terzariga, fon, Brushes.Black, 270, 190) 'nr pagina e.Graphics.DrawString("Pagina nr. " & numpag, fon, Brushes.Blue, 650, 220) 'titolo cella e.Graphics.DrawString("Utente Orario Descrizione", New Font("Time New Roman", 12), Brushes.Blue, 50, 370) 'valori datagridview ' -> Qui il problema <- 'firma e.Graphics.DrawString("L'Operatore L'Ufficiale di P.G.", fon, Brushes.Blue, 80, 1000) End Sub Private Sub stampa_Click(sender As Object, e As EventArgs) Handles stampa.Click PrintDialog1.Document = PrintDocument1 If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.Yes Then PrintDocument1.Print() End If End Sub
Con questo codice ho ricreato quello che vedete nel form.. anche se il codice (essendo ripeto la prima volta che uso questo comando) mi sembra un po come la La corazzata Potëmkin (secondo fantozzi)
Iniziamo dal dire che il button stampa non funge e non capisco perche.. forse sbaglio nell'indicare cosa stampare.. boh
Vorrei sapere intanto se il codice che ho scritto è giusto e come faccio a dire che il logo deve essere messo al centro?
Inoltre devo indicare il numero per ogni pagina.
Ma passiamo al problema principale: vorrei che si prendessero i dati dal datagridview1 e che i valori vengano messi in automatico nella parte grigia.. tenendo conto però che magari nella prima pagina potrei avere 10 record (in quanto le descrizioni sono piccole) ma nelle pagine a seguire avere magari solo 5 record ad esempio, perche ogni record ha una descrizione lunga che potrebbe prendere piu righe... importante che non superi lo spazio predisposto o arriverebbe sulla "Firma"..
Facendo questo poi credo che facendo Salva su word o stampa, dovrebbe tenere la formattazione... Ogni piccolo aiuto sarà per me un passo grande.. Grazie a tutti in anticipo
Ultima modifica effettuata da aragorn76 26/06/20 14:20
aaa