منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط !

اذهب الى الأسفل

طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! Empty طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط !

مُساهمة من طرف المبرمج الطموح الأحد يوليو 14, 2013 7:16 am

السلام عليكم ورحمة الله وبركاته ,,

إخواني أعضاء منتدى فيجوال بيسك للعرب .. ارجو ان تكون بكل صحة وعافية

درسنا لليوم عن كيفية إتاحة خدمة الطباعة المحددة للصفوف الموجودة في الـ DataGriView

مع كيفية إرسال البيانات الموجودة بدالخه للتقرير عن تقرير كتابة اسهل شيفرة لذلك ...

سنعمل على قاعدة بيانات أكسيس لتسهيل العملية وتسهيل تشغيلها على أكثر الاجهزة .

بداية سنقوم بإنشاء قاعدة البيانات التي سوف نتعامل معها ..

وسيكون بداخلها جدولاً واحداً فقط ... وهو يحوي أسماء بعض الأشخاص وبعض معلوماتهم ...

وستكون تركيبة الجدول على الشكل التالي ..

طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 1

اسم الجدول persons
حقول الجدول
p_name
p_age
p_job
p_car
p_lang


بعد ان قمنا بإنشاء قاعدة البيانات سوف ننتقل الان للبرمجة

وبعد فتح البرنامج , واختيار الـ windows application

نضع هذه الاداوات على الفورم الأول


طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 2

ومن ثم نقوم بإضافة الفورم الثاني ...

ونضع فيه الـ crystal report viewer


كما هو ظاهر في هذه الصورة ..
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 3
ومن ثم نقوم بإضافة الكريستال ريبورت

للمشروع من خلال هذه الخطوات
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 14
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 4
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 5
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 6
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 7
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 8
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 9
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 11
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 10

نقوم بفتح الشاشة الأولى (form1)
وفي قسم الـ general نعرف المتغيرات التالية ...


الكود:
 Public con As New OleDbConnection("provider=microsoft.jet.oledb.4.0; data source = " & Application.StartupPath & "\data.mdb")

    Public ds As New DataSet

    Public dt As New DataTable 


وفي حدث الفورم لود form_load للـشاشة

نقوم بكتابة الكود التالي



الكود:
 Try

            Dim data As New OleDbDataAdapter("select * from persons", con)

            ds.Clear()

            con.Open()

            data.Fill(ds, "ppp")

            con.Close()

            DataGridView1.DataSource = ds.Tables("ppp")

            add()

        Catch ex As Exception

            MsgBox(ex.Message)

        Finally

            con.Close()

        End Try  

كما ترى في الكود قمنا بإستدعاء حدث بإسم add
قم بإضافته ليعمل الكود بكفاءة



الكود:
 Sub add()

        Dim field As New DataGridViewCheckBoxColumn

        field.HeaderText = "اختر للطباعة"

        DataGridView1.Columns.Insert(5, field)

    End Sub 


 ثم نقوم بالذهاب إلى الشاشة الثانية (form2)
لكتابة دالة تتلقى البيانات من ال dataset لعرضها في التقرير ...
نقوم بكتابة هذه الدالة


الكود:
Public Function print(ByVal ds As DataSet, ByVal tb As String)

        Dim e1 As New CrystalReport1

        e1.SetDataSource(ds.Tables(tb))

        CrystalReportViewer1.ReportSource = e1

        Me.CrystalReportViewer1.RefreshReport()

        Return Nothing

    End Function 

هذه الدالة سوف تساعدنا في إرسال البيانات الموجودة في الـ dataset إلى التقرير لتعرضها فيه .

نعود للشاشة الأولى (form1)

ونكتب هذا الكود في زر (طباعة الكل)


الكود:
Try

            Me.Cursor = Cursors.WaitCursor

            Dim x As New Form2

            x.print(ds, "ppp")

            x.Show()

            Me.Cursor = Cursors.Default

        Catch ex As Exception

            MsgBox(ex.Message)

        End Try 

ومن ثم نقوم بفتح زر ال (طباعة المحدد) ونكتب فيه الكود التالي ..



الكود:
 Try

            Me.Cursor = Cursors.WaitCursor

            dt = New DataTable

            dt.TableName = "sss"

            dt.Columns.Clear()

            add2()

            Dim count As Integer = 0

            Dim dr As DataRow

            For i = 0 To DataGridView1.Rows.Count - 1

                If DataGridView1.Item(5, i).Value = True Then

                    dr = dt.Rows.Add

                    dr.Item("p_name") = DataGridView1.Item(0, i).Value.ToString

                    dr.Item("p_age") = DataGridView1.Item(1, i).Value.ToString

                    dr.Item("p_job") = DataGridView1.Item(2, i).Value.ToString

                    dr.Item("p_car") = DataGridView1.Item(3, i).Value.ToString

                    dr.Item("p_lang") = DataGridView1.Item(4, i).Value.ToString

                    count += 1

                End If

            Next

            If count = 0 Then

                MsgBox("لم تقم بإختيار أي عنصر للطباعة", MsgBoxStyle.Exclamation)

                Exit Sub

            End If

            Dim dss As New DataSet

            dss.Clear()

            dss.Tables.Add(dt)

            Dim r As New Form2

            r.print(dss, "sss")

            removecheck()

            r.Show()

        Catch ex As Exception

            MsgBox(ex.Message)

        Finally

            Me.Cursor = Cursors.Default

        End Try 

لكي يعمل الكود بنجاح يجب عليك إضافة الإجرائين التاليين
الاجراء الاول


الكود:
Sub add2()

        Dim Name As DataColumn = New DataColumn("p_name")

        Name.DataType = System.Type.GetType("System.String")

        dt.Columns.Add(Name)

        Dim age As DataColumn = New DataColumn("p_age")

        age.DataType = System.Type.GetType("System.String")

        dt.Columns.Add(age)

        Dim job As DataColumn = New DataColumn("p_job")

        job.DataType = System.Type.GetType("System.String")

        dt.Columns.Add(job)

        Dim car As DataColumn = New DataColumn("p_car")

        car.DataType = System.Type.GetType("System.String")

        dt.Columns.Add(car)

        Dim lang As DataColumn = New DataColumn("p_lang")

        lang.DataType = System.Type.GetType("System.String")

        dt.Columns.Add(lang)

    End Sub 

والاجراء الثاني


الكود:
Sub removecheck()

        For i = 0 To DataGridView1.Rows.Count - 1

            DataGridView1.Item(5, i).Value = False

        Next

    End Sub 

وبعد تشغيل البرنامج يمكنك إختيار الصفوف التي تريد طباعتها

هذه الصورة تبين عند تشغيل زر (طباعة الكل) سوف يطبع لك جميع الصفوف الظاهرة في الـ datagridvew

طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 12

وهذه الصورة تبين عند اختيار السجلات التي تريد طباعتها السجلات التي قمت بإختيارها لتقوم بطباعتها .

طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 13

كان هذا درساً بسيطاً لكيفية تحديد الصفوف المراد طباعتها في التقرير



مصدر المقال هنا
المبرمج الطموح
المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 207
النقاط : 368
التقيم : 17
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! Empty رد: طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط !

مُساهمة من طرف issatiger2050 السبت يوليو 26, 2014 2:20 pm

طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط ! 2qxyec1
issatiger2050
issatiger2050
..
..

تاريخ التسجيل : 17/07/2014
المساهمات : 13
النقاط : 13
التقيم : 0
الدولة : ليبيا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى