ثم من صفحة العرض في اداة Datagridviwer نكون ما يختاره المستخدم من اعمدة وصفوف بشكل جدول ونرسله الى التقرير الملائم له لطباعته
numberofselected = 0
If CheckedListBox2.Items.Count < 1 Then
MsgBox("لم تقم باختيار اي حقل لطباعته", MsgBoxStyle.Information, "Error Print")
Exit Sub
End If
numberofselected = 0
For i = 0 To DataGridView1.Rows.Count - 1
Try
If DataGridView1.Item(0, i).Value = True Then
numberofselected = numberofselected + 1
End If
Catch ex As Exception
End Try
Next
If numberofselected = 0 Then
MsgBox("لم تقم باختيار اي صف خاص ياي شخص لطباعته", MsgBoxStyle.Information, "Error Print")
Exit Sub
End If
If CheckedListBox2.Items.Count > 7 Then
MsgBox("تجاوز عد الاعمدة التي اخترتها عرضا ورقة الطباعة يجب ان لايتجاوز عدد الاعمدة 7 اعمدة", MsgBoxStyle.Information, "Error Print")
Exit Sub
End If
Me.Cursor = Cursors.WaitCursor
PrintDocumuntFile.Enabled = False
TheArrayOFNamesColoumToPrintIT()
dt = New printFormsDataSet.table1stdDataTable
dt.TableName = "table1std"
Dim count As Integer = 1
Dim dr As DataRow
For i = 0 To DataGridView1.Rows.Count - 1
Try
If DataGridView1.Item(0, i).Value = True Then
dr = dt.Rows.Add
' the tasatsol
dr.Item("a3") = count
dr.Item("a6") = "التسلسل"
For j = 0 To DataGridView1.ColumnCount - 1
' for 2 coloums and above
If Val(ComboBox3.Text) >= 2 Then
If ArrayOFPrintColoum(0) = DataGridView1.Columns(j).HeaderText Then
dr.Item("a2") = DataGridView1.Item(j, i).Value.ToString
dr.Item("a5") = DataGridView1.Columns(j).HeaderText
End If
If ArrayOFPrintColoum(1) = DataGridView1.Columns(j).HeaderText Then
dr.Item("a1") = DataGridView1.Item(j, i).Value.ToString
dr.Item("a4") = DataGridView1.Columns(j).HeaderText
End If
End If
' for 3 coloums and above
If Val(ComboBox3.Text) >= 3 Then
If ArrayOFPrintColoum(2) = DataGridView1.Columns(j).HeaderText Then
dr.Item("a7") = DataGridView1.Item(j, i).Value.ToString
dr.Item("a8") = DataGridView1.Columns(j).HeaderText
End If
End If
' for 4 coloums and above
If Val(ComboBox3.Text) >= 4 Then
If ArrayOFPrintColoum(3) = DataGridView1.Columns(j).HeaderText Then
dr.Item("a9") = DataGridView1.Item(j, i).Value.ToString
dr.Item("a10") = DataGridView1.Columns(j).HeaderText
End If
End If
' for 5 coloums and above
If Val(ComboBox3.Text) >= 5 Then
If ArrayOFPrintColoum(4) = DataGridView1.Columns(j).HeaderText Then
dr.Item("a11") = DataGridView1.Item(j, i).Value.ToString
dr.Item("a12") = DataGridView1.Columns(j).HeaderText
End If
End If
' for 6 coloums and above
If Val(ComboBox3.Text) >= 6 Then
If ArrayOFPrintColoum(5) = DataGridView1.Columns(j).HeaderText Then
dr.Item("a13") = DataGridView1.Item(j, i).Value.ToString
dr.Item("a14") = DataGridView1.Columns(j).HeaderText
End If
End If
' for 7 coloums and above
If Val(ComboBox3.Text) >= 7 Then
If ArrayOFPrintColoum(6) = DataGridView1.Columns(j).HeaderText Then
dr.Item("a15") = DataGridView1.Item(j, i).Value.ToString
dr.Item("a16") = DataGridView1.Columns(j).HeaderText
End If
End If
Next
count += 1
End If
Catch ex As Exception
End Try
Next
Dim dss As New DataSet
dss.Clear()
dss.Tables.Add(dt)
' for select the report will print
Select Case Val(ComboBox3.Text)
Case 2
Dim p3 As New PrintForm3Coloums
p3.table1stdBindingSource.DataSource = dss
p3.Show()
Case 3
Dim p4 As New PrintForm4Coloums
p4.table1stdBindingSource.DataSource = dss
p4.Show()
Case 4
Dim p5 As New PrintForm5Coloums
p5.table1stdBindingSource.DataSource = dss
p5.Show()
Case 5
Dim p6 As New PrintForm6Coloums
p6.table1stdBindingSource.DataSource = dss
p6.Show()
Case 6
Dim p7 As New PrintForm7Coloums
p7.table1stdBindingSource.DataSource = dss
p7.Show()
Case 7
Dim p8 As New PrintForm8Coloums
p8.table1stdBindingSource.DataSource = dss
p8.Show()
End Select
Me.Cursor = Cursors.Default
PrintDocumuntFile.Enabled = True
End Sub
الان جرب المثال سيطبع لك تقرير حسب طلبك
المثال موجود في مرفقات كتاب خطوة بخطوة نحو قاعدة بيانات ترضي العميل