السلام عليكم ورحمة الله وبركاته
سؤالي كيف أقوم بعمل فلترة للبيانات باستخدام الداتاقريد فيو ولا افلتر البيانات من قاعدة البيانات ( يعني استعلام الفلترة من خلال الداتاقريدفيو فقط ) قمت باستخدام الكود التالي ولكن تظهر عندي أخطاء
بارك الله فيكم
If ComboBox2.Text <> String.Empty Then
For Each row As DataGridViewRow In DataGridView1.Rows
If row.Cells(5).Value.ToString().Trim().Contains(ComboBox2.Text.Trim()) Then
row.Visible = True
Else
row.Visible = False
End If
Next
End If
و عليكم السلام ورحمة الله وبركاته :
فقط استبدل
كامل الكود الموجود في مشاركتك بهذا الكود :
كود :
Dim strALL As String = DataGridView1.Columns(5).Name & " Like '*" & (ComboBox2.Text.Trim) & "*'"
TryCast(DataGridView1.DataSource, DataTable).DefaultView.RowFilter = String.Format(strALL)
الـ :
DataGridView1.Columns(5).Name
يمكنك استبدالها باسم العمود للتبسيط
فتصبح مثلاً (في حال اسم الحقل City):
كود :
Dim strALL As String = " City Like '*" & (ComboBox2.Text.Trim) & "*'"
TryCast(DataGridView1.DataSource, DataTable).DefaultView.RowFilter = String.Format(strALL)
جزاك الله كل خير أستاذ طه وكتب لك الأجر لما تقدمه لجميع رواد المنتدى شكرا شكرا لك
سؤال آخر لو سمحت وآسف لكثرة الأسئلة
كيف استطيع ان أعمل تقرير للبيانات في الكريستال ريبورت مع العلم أن البيانات في الداتاقريدفيو ليس لها قاعدة بيانات ( عمل تقرير كريستال ريبورت من الداتاقريدفيو مباشرة )
السلام عليكم ورحمة الله وبركاته
تم حل المشكلة الأخيرة بإستخدام الكود التالي لعل أحد الإخوة يستفيد منه
Dim dt2 As New DataTable
dt2.Columns.Add("Student_Num", GetType(String))
dt2.Columns.Add("Student_Name", GetType(String))
For Each row As DataGridViewRow In DataGridView1.Rows
dt2.Rows.Add(row.Cells(1).Value, (row.Cells(2).Value))
Next
Dim cr2 As New CrystalReport1
cr2.SetDataSource(dt2)
Dim r2 As New Form6
'Form25.FormBorderStyle = Windows.Forms.FormBorderStyle.None
r2.CrystalReportViewer1.Zoom(300%)
r2.CrystalReportViewer1.ReportSource = cr2
r2.ShowDialog()