15-10-20, 12:52 AM (آخر تعديل لهذه المشاركة : 15-10-20, 01:26 AM {2} بواسطة عمور2016.)
هذا الكود استاذي واخي انس هذا الكود يطبع طوليا كيف يتم الطباعة عرض
اين يحتاج التعديل في المثال السابق بارك الله فيك
وشكرا
PHP كود :
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim rect As New Rectangle(20, 20, CInt(PrintDocument1.DefaultPageSettings.PrintableArea.Width), Label1.Height) Dim sf As New StringFormat sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Center
Dim startX As Integer = 50 Dim startY As Integer = rect.Bottom
Static startPage As Integer = 0
For p As Integer = startPage To pages.Count - 1 Dim cell As New Rectangle(startX, startY, DataGridView1.RowHeadersWidth, DataGridView1.ColumnHeadersHeight) e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell) e.Graphics.DrawRectangle(Pens.Black, cell)
startY += DataGridView1.ColumnHeadersHeight
For r As Integer = pages(p).startRow To pages(p).startRow + pages(p).rows - 1 cell = New Rectangle(startX, startY, DataGridView1.RowHeadersWidth, DataGridView1.Rows(r).Height) e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell) e.Graphics.DrawRectangle(Pens.Black, cell) e.Graphics.DrawString(If(DataGridView1.Rows(r).HeaderCell.Value, String.Empty), DataGridView1.Font, Brushes.Black, cell, sf) startY += DataGridView1.Rows(r).Height Next
startX += cell.Width startY = rect.Bottom
For c As Integer = pages(p).startCol To pages(p).startCol + pages(p).columns - 1 cell = New Rectangle(startX, startY, DataGridView1.Columns(c).Width, DataGridView1.ColumnHeadersHeight) e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell) e.Graphics.DrawRectangle(Pens.Black, cell) e.Graphics.DrawString(DataGridView1.Columns(c).HeaderCell.Value.ToString, DataGridView1.Font, Brushes.Black, cell, sf) startX += DataGridView1.Columns(c).Width Next
For r As Integer = pages(p).startRow To pages(p).startRow + pages(p).rows - 1 startX = 50 + DataGridView1.RowHeadersWidth For c As Integer = pages(p).startCol To pages(p).startCol + pages(p).columns - 1 cell = New Rectangle(startX, startY, DataGridView1.Columns(c).Width, DataGridView1.Rows(r).Height) e.Graphics.DrawRectangle(Pens.Black, cell) e.Graphics.DrawString(DataGridView1(c, r).Value.ToString, DataGridView1.Font, Brushes.Black, cell, sf) startX += DataGridView1.Columns(c).Width Next startY += DataGridView1.Rows(r).Height Next
If p <> pages.Count - 1 Then startPage = p + 1 e.HasMorePages = True Return Else startPage = 0 End If
Next
End Sub
زر الطباعة
PHP كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ppd As New PrintPreviewDialog ppd.Document = PrintDocument1 ppd.WindowState = FormWindowState.Maximized ppd.ShowDialog()
(15-10-20, 12:52 AM)عمور2016 كتب : هذا الكود استاذي واخي انس هذا الكود يطبع طوليا كيف يتم الطباعة عرض
اين يحتاج التعديل في المثال السابق بارك الله فيك
وشكرا
PHP كود :
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim rect As New Rectangle(20, 20, CInt(PrintDocument1.DefaultPageSettings.PrintableArea.Width), Label1.Height) Dim sf As New StringFormat sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Center
Dim startX As Integer = 50 Dim startY As Integer = rect.Bottom
Static startPage As Integer = 0
For p As Integer = startPage To pages.Count - 1 Dim cell As New Rectangle(startX, startY, DataGridView1.RowHeadersWidth, DataGridView1.ColumnHeadersHeight) e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell) e.Graphics.DrawRectangle(Pens.Black, cell)
startY += DataGridView1.ColumnHeadersHeight
For r As Integer = pages(p).startRow To pages(p).startRow + pages(p).rows - 1 cell = New Rectangle(startX, startY, DataGridView1.RowHeadersWidth, DataGridView1.Rows(r).Height) e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell) e.Graphics.DrawRectangle(Pens.Black, cell) e.Graphics.DrawString(If(DataGridView1.Rows(r).HeaderCell.Value, String.Empty), DataGridView1.Font, Brushes.Black, cell, sf) startY += DataGridView1.Rows(r).Height Next
startX += cell.Width startY = rect.Bottom
For c As Integer = pages(p).startCol To pages(p).startCol + pages(p).columns - 1 cell = New Rectangle(startX, startY, DataGridView1.Columns(c).Width, DataGridView1.ColumnHeadersHeight) e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell) e.Graphics.DrawRectangle(Pens.Black, cell) e.Graphics.DrawString(DataGridView1.Columns(c).HeaderCell.Value.ToString, DataGridView1.Font, Brushes.Black, cell, sf) startX += DataGridView1.Columns(c).Width Next
For r As Integer = pages(p).startRow To pages(p).startRow + pages(p).rows - 1 startX = 50 + DataGridView1.RowHeadersWidth For c As Integer = pages(p).startCol To pages(p).startCol + pages(p).columns - 1 cell = New Rectangle(startX, startY, DataGridView1.Columns(c).Width, DataGridView1.Rows(r).Height) e.Graphics.DrawRectangle(Pens.Black, cell) e.Graphics.DrawString(DataGridView1(c, r).Value.ToString, DataGridView1.Font, Brushes.Black, cell, sf) startX += DataGridView1.Columns(c).Width Next startY += DataGridView1.Rows(r).Height Next
If p <> pages.Count - 1 Then startPage = p + 1 e.HasMorePages = True Return Else startPage = 0 End If
Next
End Sub
زر الطباعة
PHP كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ppd As New PrintPreviewDialog ppd.Document = PrintDocument1 ppd.WindowState = FormWindowState.Maximized ppd.ShowDialog()