المشاركات : 186
المواضيع 53
الإنتساب : May 2017
السمعة :
4
الشكر: 151
تم شكره 102 مرات في 64 مشاركات
السلام عليكم
اخوتي الاعزاء
عندي فورم خاص فيه داتا جريد فيو وفيه كومبو بوكس لعض اسماء المندوبين اريد كود لما اختار اسم مندوب يعرض عندي في الداتا جريد فيو جميع بيانات المندوب من حقل المبيعات يعني الفواتير اي الفواتير المباعه من قبل هذا المندوب
انا عملت الكود يظهر عندي كل المندوبين والبحث بين تايخين ويعمل ما في مشكلة ولكن توقف فقد عند اختيار المندوب لا يظهر لي اي نتيجة يبقى الدتاجريد كما هي
(( لا أحد يمكن له ان يحدد متى يموت ولكن هو من يقدر ان يحدد كيف يعيش بعد الموت فالحياة والمماة بيد الله لكن حياتك بعد الموت بيدك فلا تندم على شيء فاتك في الدنيا لربما يرزقك الله خير منه في الاخرة او لربما دفع الله عنك به شيأ اعظم ... تلك هي مشيئة الله عز وجل ))
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
سيعتمد كود الاستعلام على تفاصيل قاعدة البيانت لديك
يفضل ارفاق قاعدة البيانات مع توضيح اسماء الجداول التى تريد التعامل معها
حتى يتم عمل كود الاستعلام اللازم طبقاً لما لديك فى قاعدة الباينات
تحياتى لك
وتمنياتى لك التوفيق
المشاركات : 186
المواضيع 53
الإنتساب : May 2017
السمعة :
4
الشكر: 151
تم شكره 102 مرات في 64 مشاركات
(17-08-18, 11:43 PM)elgokr كتب : سيعتمد كود الاستعلام على تفاصيل قاعدة البيانت لديك
يفضل ارفاق قاعدة البيانات مع توضيح اسماء الجداول التى تريد التعامل معها
حتى يتم عمل كود الاستعلام اللازم طبقاً لما لديك فى قاعدة الباينات
تحياتى لك
وتمنياتى لك التوفيق
اخي الجوكر
شكرا لك المشكلة في الاستعلام والمشروع كبير جدا ولا استطيع فصل المشروع بالتفصيل والاستعلام المطلوب يقرا البيانات من ثلاث جداول جدول المندوبين وجدل راس الفاتورة وجدول تفاصيل الفاتورة
اما الحقول المطلوب في الاستعلام هي كالاتي
جدول المندوبين MANDOB
ID
MN_CODE
MN_NAME
NASBA
وجدول راس االفاتورة SALEBAL
SALDATE
SALCODE
CUSTMARNAME
وجدول تفاصيل الفاتور DTL_BALE
TOTAL
انا عمل في السيكول سيرفر استعلام في VIEW الاستعلام التالي
كود :
SELECT dbo.MANDOB.ID, dbo.MANDOB.MN_CODE, dbo.MANDOB.MN_NAME, dbo.MANDOB.NASBA, dbo.SALEBILL.SALECODE, dbo.SALEBILL.SALEDATE,
dbo.SALEBILL.CUSTOMERNAME, dbo.SALE_DET.TOTAL
FROM dbo.MANDOB CROSS JOIN
dbo.SALE_DET CROSS JOIN
dbo.SALEBILL
وقام بعرض البيانات في الداتا جريد فيو عن طريق الكود التالي
كود :
Public Sub load_sale_views(ByVal saledate As Date, ByVal saledate2 As Date)
dt_sal_view.Clear()
Dim cmd As New SqlCommand("select * from View_2 where SALEDATE>=@saledate and SALEDATE<=@saledate2 ", SqlConn)
cmd.Parameters.Add("saledate", SqlDbType.Date).Value = saledate
cmd.Parameters.Add("saledate2", SqlDbType.Date).Value = saledate2
dt_sal_view.Load(cmd.ExecuteReader)
cmd = Nothing
End Sub
ولكن قمت باضافة كومبوكس وقمت بتعبئة الكومبوكس باسماء المندوبين الي اريد اني لما اختار اسم من الكومبوكس يقوم بفلترة الداتاجريد فيو الى الاسم الي اخترة ويطلع فقط الاسم المختار وحسب التاريخ المحدد
هذا المطلوب اخي العزيز اتمنى ان تكون الفكرة وصلت اخي الجوكر ربي يوفقك
(( لا أحد يمكن له ان يحدد متى يموت ولكن هو من يقدر ان يحدد كيف يعيش بعد الموت فالحياة والمماة بيد الله لكن حياتك بعد الموت بيدك فلا تندم على شيء فاتك في الدنيا لربما يرزقك الله خير منه في الاخرة او لربما دفع الله عنك به شيأ اعظم ... تلك هي مشيئة الله عز وجل ))
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
جميل بما ان الاستعلام لديك
وكل شئ بدون اى مشاكل فقط تريد اضافة اسم المندوب للكود الاستعلام
لديك الطرق الاتي
أولاً ان تقوم باضافة مثلاً الكود التالى
كود :
Public Sub load_sale_viewsOne(ByVal name As String, ByVal saledate As Date, ByVal saledate2 As Date)
dt_sal_view.Clear()
Dim cmd As New SqlCommand("select * from View_2 where MN_NAME = @name and SALEDATE>=@saledate and SALEDATE<=@saledate2 ", SqlConn)
cmd.Parameters.Add("saledate", SqlDbType.NVarChar).Value = name
cmd.Parameters.Add("saledate", SqlDbType.Date).Value = saledate
cmd.Parameters.Add("saledate2", SqlDbType.Date).Value = saledate2
dt_sal_view.Load(cmd.ExecuteReader)
cmd = Nothing
End Sub
بحيث تستخدم ( load_sale_viewsOne ) فى زر البحث يمكنك التعديل على الجزء التالى
لتجعله
كود :
MN_NAME Like %@name%
فالاختلاف الاول تطابق والثاني تطابق حرفي / جزئي
او انك تقوم فى الداتا جريد مباشر عن طريق التالى
كود :
Dim dv As DataView = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
dv.RowFilter = "NameColumn = '" + textBox1.Text + "'"
DataGridView1.DataSource = dv
تذكر بان تقوم بتعديل على كلمة
لاسم العمود المطلوب البحث به
طبعاً البحث بالاعلى تطابق كلى ويمكنك ان تجعله حرفي عن طريق
كود :
Dim dv As DataView = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
dv.RowFilter = "NameColumn like '%" + textBox1.Text + "%'"
DataGridView1.DataSource = dv
اتمنى اكون وصلت لك طرق متعددة لما تريده وبطريقة بسيطة
تحياتى لك
وتمنياتى لك التوفيق
المشاركات : 186
المواضيع 53
الإنتساب : May 2017
السمعة :
4
الشكر: 151
تم شكره 102 مرات في 64 مشاركات
(18-08-18, 12:26 AM)elgokr كتب : جميل بما ان الاستعلام لديك
وكل شئ بدون اى مشاكل فقط تريد اضافة اسم المندوب للكود الاستعلام
لديك الطرق الاتي
أولاً ان تقوم باضافة مثلاً الكود التالى
كود :
Public Sub load_sale_viewsOne(ByVal name As String, ByVal saledate As Date, ByVal saledate2 As Date)
dt_sal_view.Clear()
Dim cmd As New SqlCommand("select * from View_2 where MN_NAME = @name and SALEDATE>=@saledate and SALEDATE<=@saledate2 ", SqlConn)
cmd.Parameters.Add("saledate", SqlDbType.NVarChar).Value = name
cmd.Parameters.Add("saledate", SqlDbType.Date).Value = saledate
cmd.Parameters.Add("saledate2", SqlDbType.Date).Value = saledate2
dt_sal_view.Load(cmd.ExecuteReader)
cmd = Nothing
End Sub
بحيث تستخدم ( load_sale_viewsOne ) فى زر البحث يمكنك التعديل على الجزء التالى
لتجعله
كود :
MN_NAME Like %@name%
فالاختلاف الاول تطابق والثاني تطابق حرفي / جزئي
او انك تقوم فى الداتا جريد مباشر عن طريق التالى
كود :
Dim dv As DataView = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
dv.RowFilter = "NameColumn = '" + textBox1.Text + "'"
DataGridView1.DataSource = dv
تذكر بان تقوم بتعديل على كلمة
لاسم العمود المطلوب البحث به
طبعاً البحث بالاعلى تطابق كلى ويمكنك ان تجعله حرفي عن طريق
كود :
Dim dv As DataView = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
dv.RowFilter = "NameColumn like '%" + textBox1.Text + "%'"
DataGridView1.DataSource = dv
اتمنى اكون وصلت لك طرق متعددة لما تريده وبطريقة بسيطة
تحياتى لك
وتمنياتى لك التوفيق
تمام اخي الان تمام لكن هنالك مشكلتين الاولى لما اقوم بالبحث اول مرة وارجع ابحث عن اسم اخر يظهر خطا ويفصل البرنامج والامر الاخر هل بالامكان ان اجعل البحث عن طريق الكومبوكس يعني اختار اسم المندوب من الكومبوبوكس يظهر تلقائي بالداتاجريد فيو
وشكرا لك اخي واسال الله لك التوفيق
(( لا أحد يمكن له ان يحدد متى يموت ولكن هو من يقدر ان يحدد كيف يعيش بعد الموت فالحياة والمماة بيد الله لكن حياتك بعد الموت بيدك فلا تندم على شيء فاتك في الدنيا لربما يرزقك الله خير منه في الاخرة او لربما دفع الله عنك به شيأ اعظم ... تلك هي مشيئة الله عز وجل ))
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
حتى اقدر افيدك وضح اولاً اى طريقة تقوم باستخدامها فى البحث
هل عن طريق الاستعلام بالكود ام الاستعلام فى الداتا جريد
وثانياً وضح اين تستخدم الكود فى اى حدث بضبط
لانك اذا استخدمت حدث تحديد الكمبو مع استخدام فلتر الداتا جريد
لن يحدث معك اى مشكلة فى كل مرة تقوم به فى تحديد اسم المندوب
تحياتى لك
وتمنياتى لك التوفيق
المشاركات : 186
المواضيع 53
الإنتساب : May 2017
السمعة :
4
الشكر: 151
تم شكره 102 مرات في 64 مشاركات
(18-08-18, 01:41 AM)elgokr كتب : حتى اقدر افيدك وضح اولاً اى طريقة تقوم باستخدامها فى البحث
هل عن طريق الاستعلام بالكود ام الاستعلام فى الداتا جريد
وثانياً وضح اين تستخدم الكود فى اى حدث بضبط
لانك اذا استخدمت حدث تحديد الكمبو مع استخدام فلتر الداتا جريد
لن يحدث معك اى مشكلة فى كل مرة تقوم به فى تحديد اسم المندوب
تحياتى لك
وتمنياتى لك التوفيق
اخي العزيز
انا استخدمت هذا الكود في الموديل
كود :
Public Sub load_sale_viewsOne(ByVal namee As String, ByVal saledate As Date, ByVal saledate2 As Date)
dt_sal_view.Clear()
Dim cmd As New SqlCommand("select * from View_2 where MN_NAME Like %@namee% and SALEDATE>=@saledate and SALEDATE<=@saledate2 ", SqlConn)
cmd.Parameters.Add("MN_NAME", SqlDbType.NVarChar).Value = namee
cmd.Parameters.Add("saledate", SqlDbType.Date).Value = saledate
cmd.Parameters.Add("saledate2", SqlDbType.Date).Value = saledate2
dt_sal_view.Load(cmd.ExecuteReader)
cmd = Nothing
End Sub
واستخدمت هذا الكود في الفورم الخاص بعرض البيانات
كود :
Public Class FRM_MANDOB_MONY
Private Sub SimpleButton3_Click(sender As Object, e As EventArgs) Handles SimpleButton3.Click
Close()
End Sub
Private Sub SimpleButton4_Click(sender As Object, e As EventArgs) Handles SimpleButton4.Click
load_sale_views(D1.Value, D2.Value)
total_sales()
'load_sale_viewsOne(D1.Value, D2.Value, Name)
End Sub
Private Sub FRM_MANDOB_MONY_Load(sender As Object, e As EventArgs) Handles MyBase.Load
load_sale_views(D1.Value, D2.Value)
DataGridView1.DataSource = dt_sal_view
Load_MANDOB(CMB_MANDOB, Me)
total_sales()
'load_sale_viewsOne(D1.Value, D2.Value, Name)
End Sub
Private Sub D1_ValueChanged(sender As Object, e As EventArgs) Handles D1.ValueChanged
load_sale_views(D1.Value, D2.Value)
total_sales()
End Sub
Public Sub total_sales()
Dim sum As Double
For s As Integer = 0 To DataGridView1.RowCount - 1
sum = sum + DataGridView1.Item("TOTAL", s).Value
Next
TXT_SUM_TOTAL.Text = sum
End Sub
Private Sub D2_ValueChanged(sender As Object, e As EventArgs) Handles D2.ValueChanged
load_sale_views(D1.Value, D2.Value)
total_sales()
End Sub
Sub GET_MANDOB()
load_sale_views_MANDOB(D1.Value, D2.Value, CMB_MANDOB.SelectedItem)
DataGridView1.DataSource = dt_sal_view
End Sub
Sub getm()
Dim dv As DataView = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
dv.RowFilter = "MN_NAME like '%" + CMB_MANDOB.SelectedValue + "%'"
DataGridView1.DataSource = dv
End Sub
Private Sub CMB_MANDOB_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CMB_MANDOB.SelectedIndexChanged
getm()
End Sub
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
Dim dv As DataView = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
dv.RowFilter = "MN_NAME like '%" + TextBox1.Text + "%'"
DataGridView1.DataSource = dv
End Sub
'Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
' Dim dv As DataView = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
' dv.RowFilter = "MN_NAME like '%" + TextBox1.Text + "%'"
' DataGridView1.DataSource = dv
'End Sub
End Class
(( لا أحد يمكن له ان يحدد متى يموت ولكن هو من يقدر ان يحدد كيف يعيش بعد الموت فالحياة والمماة بيد الله لكن حياتك بعد الموت بيدك فلا تندم على شيء فاتك في الدنيا لربما يرزقك الله خير منه في الاخرة او لربما دفع الله عنك به شيأ اعظم ... تلك هي مشيئة الله عز وجل ))
المشاركات : 3,815
المواضيع 36
الإنتساب : Mar 2014
السمعة :
724
الشكر: 7238
تم شكره 6709 مرات في 3265 مشاركات
بما انك بتستخدم كود فلتر الداتا خريد
فكل ما عليك فعله هو التالى
استخدم كود الساب بهذا الشكل
كود :
Sub getm(ByVal cmb As Control)
Dim dv As New DataView
dv = DirectCast(DataGridView1.DataSource, DataTable).DefaultView
dv.RowFilter = "MN_NAME = '" + cmb.Text + "'"
DataGridView1.DataSource = dv
End Sub
وتعال فى حدث الكمبو واستخدم الكود بهذا الشكل
وباذن الله سيعمل معاك فى كل مرة تقوم بتحديد من الكمبو بدون مشكلة
تحياتى لك
وتمنياتى لك التوفيق
|