Boopalslm Ответов: 1

Как распечатать значения представления таблицы данных на нескольких страницах


I am creating windows application using c# 2010 here I am using data grid view for reporting purpose, in my data grid view having above 100 rows, I want print multiple page my data grid view values I am write a code on printDocument1_PrintPage event handler, but data’s cannot shown on second page at print time 

how to print Data grid view values at multiple pages

this is my code any one give me just ideas

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {
 
            try
            {
 
                Graphics graphic = e.Graphics;
                e.PageSettings.PaperSize = new PaperSize("A4", 850, 1100);
                float pageWidth = e.PageSettings.PrintableArea.Width;
                float pageHeight = e.PageSettings.PrintableArea.Height;
                Font font = new Font("Times New Roman", 10, FontStyle.Bold);
 
                float fontHeight = font.GetHeight();
                int startX = 40;
                int startY = 30;
                int offsetY = 40;
 

                System.Drawing.Font fntString = new Font("Times New Roman", 10, FontStyle.Bold);
                System.Drawing.Font fnthead = new Font("Arial", 20, FontStyle.Bold);
 

                while (s < gvpurchase.Rows.Count)
                {
 

                    if (s % 2 == 0)
                    { 
 
                        for (; s <= 100; s++)
                        {
 
                            offsetY += (int)fontHeight;
 
                            if (offsetY >= pageHeight)
                            {
                                e.HasMorePages = true;
                                offsetY = 0;
                                return;
 

 
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[2].Value.ToString(), fntString, Brushes.Black, 70, (s * 93) + 20);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[3].Value.ToString(), fntString, Brushes.Black, 100, (s * 93) + 20);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[4].Value.ToString(), fntString, Brushes.Black, 70, (s * 93) + 40);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[5].Value.ToString(), fntString, Brushes.Black, 100, (s * 93) + 40);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[6].Value.ToString(), fntString, Brushes.Black, 100, (s * 93) + 60);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[7].Value.ToString(), fntString, Brushes.Black, 100, (s * 93) + 80);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[8].Value.ToString(), fntString, Brushes.Black, 100, (s * 93) + 100);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[9].Value.ToString(), fntString, Brushes.Black, 100, (s * 93) + 120);
                                e.Graphics.DrawString(gvpurchase.Rows[s].Cells[10].Value.ToString(), fntString, Brushes.Black, 100, (s * 93) + 140);
 
                            }
 
                            else
                            {
                                e.HasMorePages = false;
                            }
 

                        }
 
                    }
 

 

 
                    else
                    { 
 

                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[2].Value.ToString(), fntString, Brushes.Black, 370, ((s - 1) * 93) + 20);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[3].Value.ToString(), fntString, Brushes.Black, 400, ((s - 1) * 93) + 20);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[4].Value.ToString(), fntString, Brushes.Black, 370, ((s - 1) * 93) + 40);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[5].Value.ToString(), fntString, Brushes.Black, 400, ((s - 1) * 93) + 40);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[6].Value.ToString(), fntString, Brushes.Black, 400, ((s - 1) * 93) + 60);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[7].Value.ToString(), fntString, Brushes.Black, 400, ((s - 1) * 93) + 80);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[8].Value.ToString(), fntString, Brushes.Black, 400, ((s - 1) * 93) + 100);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[9].Value.ToString(), fntString, Brushes.Black, 400, ((s - 1) * 93) + 120);
                        e.Graphics.DrawString(gvpurchase.Rows[s].Cells[10].Value.ToString(), fntString, Brushes.Black, 400, ((s - 1) * 93) + 140);
 
                       
                    }
 
                }
 
                s++;
 
            }
 
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 

        }


Что я уже пробовал:

How to print data grid view values at multiple pages

1 Ответов

Рейтинг:
1

Vinod Jangle

Обратитесь по ссылке это может вам помочь.

Печать GridView с подкачкой страниц[^]


Boopalslm

это приложение windows, а не веб-приложение