السلام عليكم
انظر الى البرنامج المرفق وعدل علية حسب المطلوب
كود :
If DataTable1DataGridView.RowCount = 0 Then
MessageBox.Show("لا يوجد بيانات للطباعة")
Return
End If
يمكنك تعديل من 0 الى -1 اذا كانت الداتا جرد مغلقة(اي لا يسمح بتعديل عليها كالاضافة والتعديل)
كود :
dt = New DataTable
dt.TableName = "grid"
dt.Columns.Clear()
Dim first_name As DataColumn = New DataColumn("name")
first_name.DataType = System.Type.GetType("System.String")
dt.Columns.Add(first_name)
Dim second_name As DataColumn = New DataColumn("phone")
second_name.DataType = System.Type.GetType("System.String")
dt.Columns.Add(second_name)
Dim dr As DataRow
Dim i As Integer
For i = 0 To Me.DataTable1DataGridView.RowCount - 2
dr = dt.Rows.Add
'ملاحظة يجب ان يكون اسم الكولوم مشابة للموجود في الداتا سيت
dr.Item("name") = Me.DataTable1DataGridView.Item(0, i).Value.ToString
dr.Item("phone") = Me.DataTable1DataGridView.Item(1, i).Value.ToString
Next i
لانشاء جدول مشابه للموجود في الداتا سيت(في هذا المثال هناك فقط 2كولوم)
وجلب البيانات من الداتا جرد
كود :
Dim e1 As New CrystalReport1
e1.SetDataSource(dt)
print.CrystalReportViewer1.ReportSource = e1
print.CrystalReportViewer1.RefreshReport()
print.ShowDialog()
لارسال الجدول السابق الى الكرستال ريبورت
وفتح فورم الطباعة الذي يحتوي على كريستال فيور
اما بخصوص طباعة كل سجل بصفحة
موجودة في الكرستال ريبورت وتتم بترك 24 سم اذا كانت A4
لاحظ الكرستال ريبورت