Stampare datagridview

martedì 14 settembre 2010 - 22.35
Tag Elenco Tags  C#  |  .NET 4.0

giulioz Profilo | Newbie

Ciao!
Allora,vi spiego... ho fatto un programma che legge dei file csv e dopo li mette su una datagridview ma volevo fare anche che si potesse stampare come una specie di report, si può fare??

alexmed Profilo | Guru

Ciao
Secondo me questa è la migliore soluzione che c'è in giro:

http://www.codeproject.com/KB/grid/PrintDataGridView.aspx

Ciao

alexmed

blackspidy14 Profilo | Junior Member

Ciao soluzione eccezzionale, ma ho un problemino posso cambiare i layout di stampa?
Mi servirebbe girare il foglio da verticale orizzonatale?

alexmed Profilo | Guru

Si e puoi fare così:
Nel Form PrintOptions aggiungi un controllo CheckBox che chiamerai chkLandscape.
Nel codice del Form PrintOptions aggiungi:

Public ReadOnly Property pageLandscape() As Boolean
Get
Return chkLandscape.Checked
End Get
End Property

Poi vai nella Classe PrintDVG e dopo

PrintTitle = dlg.PrintTitle
PrintAllRows = dlg.PrintAllRows
FitToPageWidth = dlg.FitToPageWidth
SelectedColumns = dlg.GetSelectedColumns

Aggiungi

PrintDoc.DefaultPageSettings.Landscape = dlg.pageLandscape

Prova e fammi sapere.
alexmed

blackspidy14 Profilo | Junior Member

spettacolo tutto ok :D

adesso ho un altro piccolo problemino quando lancio la stampa si genera una ecceccione in Private Shared Sub PrintDoc_PrintPage (l'unico ciclo try presente in quella sub) con il seguente errore:

"Error:"
"Riferimento ad un oggetto non impostata su un oggetto"

secondo me è dovuto al fatto che ho un numero di colonne tali da non poter essere impaginate correttamente :D

punto 2 non riesco a stampare le righe selezionate cerca sempre di stampare le 1942 righe presenti nella tabella O_O idee?

alexmed Profilo | Guru

>spettacolo tutto ok :D
>
>adesso ho un altro piccolo problemino quando lancio la stampa
>si genera una ecceccione in Private Shared Sub PrintDoc_PrintPage
>(l'unico ciclo try presente in quella sub) con il seguente errore:
>
>"Error:"
>"Riferimento ad un oggetto non impostata su un oggetto"
>

Questa riga c'è:
Dim ppvw As PrintPreviewDialog
?


Public Shared Sub Print_DataGridView(ByVal dgv1 As DataGridView)

Dim ppvw As PrintPreviewDialog

Try
' Getting DataGridView object to print
dgv = dgv1

........


>secondo me è dovuto al fatto che ho un numero di colonne tali
>da non poter essere impaginate correttamente :D
>
Quante sono?
Io ho provato con una trentina ma non ho riscontrato problemi.

>punto 2 non riesco a stampare le righe selezionate cerca sempre
>di stampare le 1942 righe presenti nella tabella O_O idee?
Se ti riferisci all'opzione che hai nel PrintOptions okkio che è relativo alle colonne selezionate nella CheckedListBox dove sono elencate le colonne.
Se invece vuoi fare una Multiselect sulla DGV e stampare solo quelle allora la cosa si complica perchè si deve modificare la Sub PrintDoc_PrintPage.

>EDIT!!!
>Come non detto! E' un pò che non ci mettevo mani e mi confondevo con un'altra soluzione.
>Prova mettendo SelectionMode = FullRowSelect

alexmed

blackspidy14 Profilo | Junior Member

>Questa riga c'è:
> Dim ppvw As PrintPreviewDialog

questa riga c'è, è presente nella classe PrintDGV.

>Quante sono?
>Io ho provato con una trentina ma non ho riscontrato problemi.
30 :D


>>EDIT!!!
>>Come non detto! E' un pò che non ci mettevo mani e mi confondevo con un'altra soluzione.
>>Prova mettendo SelectionMode = FullRowSelect

puoi essere più chiaro, non capisco?

cmq grazie per tutte le rip date fino ad ora

alexmed Profilo | Guru

Ciao
Per
>>Prova mettendo SelectionMode = FullRowSelect

Intendo che nella DataGridView che devi passare alla funzione di stampa devi impostare il modo in cui vengono selezionate le righe.
Selezioni la DataGridView vai sulle proprieta e dove trovi SelectionMode come valore metti FullRowSelect

alexmed

blackspidy14 Profilo | Junior Member


>Selezioni la DataGridView vai sulle proprieta e dove trovi SelectionMode
>come valore metti FullRowSelect

ok fatto ma continua a selezionarmi tutte le righe della tabella

alexmed Profilo | Guru

Ciao
Ti allego il progetto che ho io in cui funziona.
Proviamo così.

Ciao
alexmed

blackspidy14 Profilo | Junior Member

GRAZIE FUNZIONA TUTTO :s

alexmed Profilo | Guru

>GRAZIE FUNZIONA TUTTO :s
Prego
alexmed

blackspidy14 Profilo | Junior Member

ho "resuscitato" questo thread per nn aprirne di nuovi e creare confusione.
in questa discussione si fa riferimento ad progetto trovato su codeproject per stampare un datagrid - http://www.codeproject.com/KB/grid/PrintDataGridView.aspx
mi sono accorto che se nel data grid view quando c'è un valore null (una cella vuota) il software restituisce una eccezione. succede solo a me o qualcuno ha avuto il mio stesso problema?
se si come siete riusciti a corregerlo?
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5