تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة فى كود الطباعة المباشرة
#6
(15-10-20, 12:52 AM)عمور2016 كتب : هذا الكود استاذي واخي انس هذا الكود يطبع طوليا كيف يتم الطباعة عرض

اين يحتاج التعديل في المثال السابق بارك الله فيك


وشكرا

PHP كود :
   Private Sub PrintDocument1_PrintPage(ByVal sender As System.ObjectByVal e As System.Drawing.Printing.PrintPageEventArgsHandles PrintDocument1.PrintPage
        Dim rect 
As New Rectangle(2020CInt(PrintDocument1.DefaultPageSettings.PrintableArea.Width), Label1.Height)
 
       Dim sf As New StringFormat
        sf
.Alignment StringAlignment.Center
        sf
.LineAlignment StringAlignment.Center

        e
.Graphics.DrawString(Label1.TextLabel1.FontBrushes.Blackrectsf)

 
       sf.Alignment StringAlignment.Near

        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(startXstartYDataGridView1.RowHeadersWidthDataGridView1.ColumnHeadersHeight)
 
           e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell)
 
           e.Graphics.DrawRectangle(Pens.Blackcell)

 
           startY += DataGridView1.ColumnHeadersHeight

            For r 
As Integer pages(p).startRow To pages(p).startRow pages(p).rows 1
                cell 
= New Rectangle(startXstartYDataGridView1.RowHeadersWidthDataGridView1.Rows(r).Height)
 
               e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell)
 
               e.Graphics.DrawRectangle(Pens.Blackcell)
 
               e.Graphics.DrawString(If(DataGridView1.Rows(r).HeaderCell.ValueString.Empty), DataGridView1.FontBrushes.Blackcellsf)
 
               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(startXstartYDataGridView1.Columns(c).WidthDataGridView1.ColumnHeadersHeight)
 
               e.Graphics.FillRectangle(New SolidBrush(SystemColors.ControlLight), cell)
 
               e.Graphics.DrawRectangle(Pens.Blackcell)
 
               e.Graphics.DrawString(DataGridView1.Columns(c).HeaderCell.Value.ToStringDataGridView1.FontBrushes.Blackcellsf)
 
               startX += DataGridView1.Columns(c).Width
            Next

            startY 
rect.Bottom DataGridView1.ColumnHeadersHeight

            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(startXstartYDataGridView1.Columns(c).WidthDataGridView1.Rows(r).Height)
 
                   e.Graphics.DrawRectangle(Pens.Blackcell)
 
                   e.Graphics.DrawString(DataGridView1(cr).Value.ToStringDataGridView1.FontBrushes.Blackcellsf)
 
                   startX += DataGridView1.Columns(c).Width
                Next
                startY 
+= DataGridView1.Rows(r).Height
            Next

            If p 
<> pages.Count 1 Then
                startPage 
1
                e
.HasMorePages True
                Return
            Else
                startPage 
0
            End 
If

 
       Next

    End Sub 
زر الطباعة
PHP كود :
   Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim ppd 
As New PrintPreviewDialog
        ppd
.Document PrintDocument1
        ppd
.WindowState FormWindowState.Maximized
        ppd
.ShowDialog()


 
 
   End Sub 

ظهور خطأ ارجو تعديل الخطا كما في الصورة


الطباعة عرض تحتاج للسطر
كود :
PrintDocument1.DefaultPageSettings.Landscape = True
تضعه قبل ShowDialog
PHP كود :
   Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click

        PrintDocument1
.DefaultPageSettings.Landscape True

        Dim ppd 
As New PrintPreviewDialog
        ppd
.Document PrintDocument1
        ppd
.WindowState FormWindowState.Maximized
        ppd
.ShowDialog()


 
 
   End Sub 

الخطا الذي ظهر لديك قد يكون بسبب تغييرات قمت بعملها في الكود فلم ينفذ الكود
كود :
pages = New Dictionary(Of Integer, pageDetails)
الرد }}}


الردود في هذا الموضوع
RE: مشكلة فى كود الطباعة المباشرة - بواسطة mustaf - 17-10-20, 08:39 AM


التنقل السريع :


يقوم بقرائة الموضوع: