طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط !
صفحة 1 من اصل 1 • شاطر
طباعة الـ DataGridView وخاصية الطباعة للصفوف المحددة فقط !
السلام عليكم ورحمة الله وبركاته ,,
إخواني أعضاء منتدى فيجوال بيسك للعرب .. ارجو ان تكون بكل صحة وعافية
درسنا لليوم عن كيفية إتاحة خدمة الطباعة المحددة للصفوف الموجودة في الـ DataGriView
مع كيفية إرسال البيانات الموجودة بدالخه للتقرير عن تقرير كتابة اسهل شيفرة لذلك ...
سنعمل على قاعدة بيانات أكسيس لتسهيل العملية وتسهيل تشغيلها على أكثر الاجهزة .
بداية سنقوم بإنشاء قاعدة البيانات التي سوف نتعامل معها ..
وسيكون بداخلها جدولاً واحداً فقط ... وهو يحوي أسماء بعض الأشخاص وبعض معلوماتهم ...
وستكون تركيبة الجدول على الشكل التالي ..
اسم الجدول persons
حقول الجدول
p_name
p_age
p_job
p_car
p_lang
بعد ان قمنا بإنشاء قاعدة البيانات سوف ننتقل الان للبرمجة
وبعد فتح البرنامج , واختيار الـ windows application
نضع هذه الاداوات على الفورم الأول
ومن ثم نقوم بإضافة الفورم الثاني ...
ونضع فيه الـ crystal report viewer
كما هو ظاهر في هذه الصورة ..
ومن ثم نقوم بإضافة الكريستال ريبورت
للمشروع من خلال هذه الخطوات
نقوم بفتح الشاشة الأولى (form1)
وفي قسم الـ general نعرف المتغيرات التالية ...
وفي حدث الفورم لود form_load للـشاشة
نقوم بكتابة الكود التالي
كما ترى في الكود قمنا بإستدعاء حدث بإسم add
قم بإضافته ليعمل الكود بكفاءة
ثم نقوم بالذهاب إلى الشاشة الثانية (form2)
لكتابة دالة تتلقى البيانات من ال dataset لعرضها في التقرير ...
نقوم بكتابة هذه الدالة
هذه الدالة سوف تساعدنا في إرسال البيانات الموجودة في الـ dataset إلى التقرير لتعرضها فيه .
نعود للشاشة الأولى (form1)
ونكتب هذا الكود في زر (طباعة الكل)
ومن ثم نقوم بفتح زر ال (طباعة المحدد) ونكتب فيه الكود التالي ..
لكي يعمل الكود بنجاح يجب عليك إضافة الإجرائين التاليين
الاجراء الاول
والاجراء الثاني
وبعد تشغيل البرنامج يمكنك إختيار الصفوف التي تريد طباعتها
هذه الصورة تبين عند تشغيل زر (طباعة الكل) سوف يطبع لك جميع الصفوف الظاهرة في الـ datagridvew
وهذه الصورة تبين عند اختيار السجلات التي تريد طباعتها السجلات التي قمت بإختيارها لتقوم بطباعتها .
كان هذا درساً بسيطاً لكيفية تحديد الصفوف المراد طباعتها في التقرير
مصدر المقال هنا
إخواني أعضاء منتدى فيجوال بيسك للعرب .. ارجو ان تكون بكل صحة وعافية
درسنا لليوم عن كيفية إتاحة خدمة الطباعة المحددة للصفوف الموجودة في الـ DataGriView
مع كيفية إرسال البيانات الموجودة بدالخه للتقرير عن تقرير كتابة اسهل شيفرة لذلك ...
سنعمل على قاعدة بيانات أكسيس لتسهيل العملية وتسهيل تشغيلها على أكثر الاجهزة .
بداية سنقوم بإنشاء قاعدة البيانات التي سوف نتعامل معها ..
وسيكون بداخلها جدولاً واحداً فقط ... وهو يحوي أسماء بعض الأشخاص وبعض معلوماتهم ...
وستكون تركيبة الجدول على الشكل التالي ..
اسم الجدول persons
حقول الجدول
p_name
p_age
p_job
p_car
p_lang
بعد ان قمنا بإنشاء قاعدة البيانات سوف ننتقل الان للبرمجة
وبعد فتح البرنامج , واختيار الـ windows application
نضع هذه الاداوات على الفورم الأول
ومن ثم نقوم بإضافة الفورم الثاني ...
ونضع فيه الـ crystal report viewer
كما هو ظاهر في هذه الصورة ..
ومن ثم نقوم بإضافة الكريستال ريبورت
للمشروع من خلال هذه الخطوات
نقوم بفتح الشاشة الأولى (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
وهذه الصورة تبين عند اختيار السجلات التي تريد طباعتها السجلات التي قمت بإختيارها لتقوم بطباعتها .
كان هذا درساً بسيطاً لكيفية تحديد الصفوف المراد طباعتها في التقرير
مصدر المقال هنا
المبرمج الطموح- الاشراف
- تاريخ التسجيل : 18/02/2011
المساهمات : 207
النقاط : 368
التقيم : 17
الدولة :
الجنس :
issatiger2050- ..
- تاريخ التسجيل : 17/07/2014
المساهمات : 13
النقاط : 13
التقيم : 0
الدولة :
الجنس :
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 7:09 pm من طرف moslema_r
» شركة تنظيف فرشات بالرياض
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد