منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيفية عمل تضبيط الفلتر من داخل فلتر اخر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته الاخوة الاحباب

عملت هذا المشروع البسيط وفيه عمل فلتر لاكثر من عمود

ولكن اجد الفلتر يعمل لعمود واحد فقط لنفس المرة للبحث ولا يحترم الفلتر الاخري

وانا اريد ان يكون الفلتر تحت كل الشروط المختارة التي عملت لها فلتر

بمعني

اني لو عملت فلتر لل region  المفروض تظهر مجموعة من الصفوف حسب الفلتر ولنفرض 20 صف مثلا

ثم لو بحثت بالمدينة يجب ان البحث في داخل هذه ال 20 صف وليس كل الجدول ولنفرض الناتج هو 10 صفوف

ثم لو بحثت بال category  ييكون البحث داخل هذه ال 10 صفوف ويكون الناتج هو 5 صفوف مثلا

وهكذا

برجاء فحص المرفقات

مع الشكر الجزيل
و عليكم السلام و رحمة الله و بركاته
اخي الكريم,
الفكرة لديك تعتمد على تعشيش الاستعلامات
و كجواب نظري انت تريد الوصول من الاكبر الى الاصغر (من الاعم و الاشمل الى المختصر)
اما ان تعتمد على تعشيش الاستعلامات في القاعدة و تستقبل المخرجات في البرنامج عن طريق تمرير البارمترات المناسبة
و اذا كنت تتعامل مع SqlServer استفد من الاجراءات المخزنة في هذا الموضوع.

او يمكنك تخصيص العمل مع مكاتب Linq بالتوازي مع تعبيرات Lambda و بالتالي يصبح الامر اسهل و اقوى , لان القيم الراجعة من دوال لامدا هي مصفوفات و بالتالي يمكنك التعمق الى ابعد حد في الاستعلامات و الحصول على اي نتيجة تحبذها

وان كنت ستعتمد على اطار العمل (اقصد Ado التقليدي) فيتوجب عليك العمل , كاشارة اولى 
اعمل على DataTable.select و استخدم  FilterExpression  يتاسب مع احتياجاتك بالتوازي مع ربطها بدوال ديناميكة حتى لا يصبح لديك الكود طويل جداً (مع ان هذه الفكرة ستغلبك كثيراً ولا احبذها)

كمثال على قوة Linq 

PHP كود :
Using svcContext As New ServiceContext(_serviceProxy)
 
Dim query_multiselect =
 
    svcContext.IncidentSet _
     
.Where(Function(iNot i.IncidentId.Value.Equals(_incidentId1)) _
     
.Select(Function(ii.incident_customer_accounts_
     
.Where(Function(aNot a.AccountId.Value.Equals(_accountId2)) _
     
.Select(Function(aa.account_primary_contact_
     
.OrderBy(Function(cc.FirstName).Select(Function(cc.ContactId)
 For 
Each c In query_multiselect
  Console
.WriteLine(c.GetValueOrDefault())
 
Next c
End Using 
(28-05-17, 02:57 AM)ابو ليلى كتب : [ -> ]و عليكم السلام و رحمة الله و بركاته
اخي الكريم,
الفكرة لديك تعتمد على تعشيش الاستعلامات
و كجواب نظري انت تريد الوصول من الاكبر الى الاصغر (من الاعم و الاشمل الى المختصر)
اما ان تعتمد على تعشيش الاستعلامات في القاعدة و تستقبل المخرجات في البرنامج عن طريق تمرير البارمترات المناسبة
و اذا كنت تتعامل مع SqlServer استفد من الاجراءات المخزنة في هذا الموضوع.

او يمكنك تخصيص العمل مع مكاتب Linq بالتوازي مع تعبيرات Lambda و بالتالي يصبح الامر اسهل و اقوى , لان القيم الراجعة من دوال لامدا هي مصفوفات و بالتالي يمكنك التعمق الى ابعد حد في الاستعلامات و الحصول على اي نتيجة تحبذها

وان كنت ستعتمد على اطار العمل (اقصد Ado التقليدي) فيتوجب عليك العمل , كاشارة اولى 
اعمل على DataTable.select و استخدم  FilterExpression  يتاسب مع احتياجاتك بالتوازي مع ربطها بدوال ديناميكة حتى لا يصبح لديك الكود طويل جداً (مع ان هذه الفكرة ستغلبك كثيراً ولا احبذها)

كمثال على قوة Linq 

PHP كود :
Using svcContext As New ServiceContext(_serviceProxy)
 
Dim query_multiselect =
 
    svcContext.IncidentSet _
     
.Where(Function(iNot i.IncidentId.Value.Equals(_incidentId1)) _
     
.Select(Function(ii.incident_customer_accounts_
     
.Where(Function(aNot a.AccountId.Value.Equals(_accountId2)) _
     
.Select(Function(aa.account_primary_contact_
     
.OrderBy(Function(cc.FirstName).Select(Function(cc.ContactId)
 For 
Each c In query_multiselect
  Console
.WriteLine(c.GetValueOrDefault())
 
Next c
End Using 


السلام عليكم اخي الحبيب

شكرا علي الرد والمساعدة

بس انا مازلت مبتدا وكلام حضرتك مش واضح اوي بالنسبة لي Huh

فكيف اعكس هذا الكلام علي المشروع تبعي

فيا ليت لو وضعته في المرفقات

مع الشكر

و كل عام وانتم بخير
(28-05-17, 04:34 AM)khodor1985 كتب : [ -> ]السلام عليكم أخي العزيز ورحمة الله وبركاته
أفهم من كلامك أخي العزيز أنك تريد البحث أو جلب البيانات بناء لأكثر من الشرط وهذا ما يسمى بالبحث المتعدد المعايير Multi Criteria، أليس كذلك؟

تابع هذا المثال سيفيدك كثرا وأعتقد أنه سيفي بالغرض فهو يتناول فكرة البحث المتعدد
http://vb4arb.com/vb/showthread.php?tid=14402

مشكور اخي الحبيب علي الاهتمام والمساعدة

ساراجع المثال وان شاء الله يفي بالغرض

مع جزيل الاحترام والشكر