Stampare utilizzando printpreviewdialog

lunedì 21 aprile 2008 - 20.08

marcogio Profilo | Newbie

cerco di stampare i dati prelevati da una datagridview, utilizzando printpreviewdialog.
Se stampo utilizzando printDocument.print, tutto ok.
Se utilizzo printpreviewdialog per effettuare l'anteprima, tutto ok.
Se cerco di stampare i dati dalla finestra di anteprima, i dati memorizzati nell'ArrayList, non vengono stampati.

questo è il codice

code
-------------
private void toolStripButton9_Click(object sender, EventArgs e)
{
//cancello l'ArrayList precedente
elencoBanca.Clear();

//carico ArrayList dei dati della tabella
for (int i = 0; i < bsbanca.Count; i++)
{
elencoBanca.Add(dataGridView1.Rows[i].Cells["entrateUscite"].FormattedValue);
elencoBanca.Add(dataGridView1.Rows[i].Cells["cifra"].FormattedValue);
elencoBanca.Add(dataGridView1.Rows[i].Cells["data"].FormattedValue);
elencoBanca.Add(dataGridView1.Rows[i].Cells["modalita"].FormattedValue);
elencoBanca.Add(dataGridView1.Rows[i].Cells["motivo"].FormattedValue);
elencoBanca.Add(dataGridView1.Rows[i].Cells["estratto"].FormattedValue);
}

ppdbanca = new PrintPreviewDialog();
pdbanca = new PrintDocument();
pdbanca.PrintPage += new PrintPageEventHandler(pdbanca_PrintPage);
ppdbanca.Document = pdbanca;
//ppdbanca.AutoScaleDimensions = FormWindowState.Maximized ;
ppdbanca.ShowDialog();
//pdbanca.Print();

}

void pdbanca_PrintPage(object sender, PrintPageEventArgs e)
{
int x = 10;
int y = 10;
int l = 100;
int h = 100;
int contacolonne = 0;


carattere=new Font("Arial",12);


//creo un ciclo di stampa. Stampo tutti gli oggetti dell'arraylist.
while(elencoBanca.Count>0 && y < e.MarginBounds.Height)
{
while (contacolonne < 6)
{
rettangolo = new Rectangle(x, y, l, h);
stampabanca = (string)elencoBanca[0];
e.Graphics.DrawString(stampabanca, carattere, Brushes.Black, rettangolo);
elencoBanca.RemoveAt(0);
contacolonne++;
x = x + l;
}
contacolonne = 0;
x = 10;
y = y + h;

}

if (elencoBanca.Count > 0)
e.HasMorePages = true;
else
e.HasMorePages = false;



}
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