كيفية فلترة ليست فيو vb net Multiple Column Filter listview

تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كيفية فلترة ليست فيو vb net Multiple Column Filter listview
#1
السلام عليكم

اريد افكار او طرق او كود يعمل فلترة لعناصر ليست فيو فى اكتر من عمود

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

الاسم - السن - الوظيفة - المرتب

كيف يتم عمل فلترة فى الاسم والراتب معا ؟

انا اقدر اعملها بشروط if

ولكن ستكون عملية الفلترة بطيئة جدا وليست جيدة على ما اعتقد خصوصا ان المشروع كبير وايضا عناصر الليست فيو سوف تكون كثيرة

بانتظار ابداعتكم
الرد
تم الشكر بواسطة:
#2
للرفع للرفع للرفع للرفع
الرد
تم الشكر بواسطة:
#3
للرفع للرفع للرفع للرفع
الرد
تم الشكر بواسطة:
#4
السلام عليكم

يمكن استغلال البحث في مصدر البيانات الذي قمت بتعبئة الليست فيو منه، والبحث فيه بشكل أسرع من قراءة خلايا الليست فيو.

وعموما هذا طريقة البحث في الليست فيو ويعيد مصفوفة من مجموعة أسطر،
البحث في العمود الأول نصا (الاسم مثلا) والعمود الرابع رقما (الراتب مثلا)
كود :
Dim itms() As ListViewItem =
    Me.ListView1.Items.Cast(Of ListViewItem).
    Where(Function(i) i.SubItems(0).Text.Equals(TextBox1.Text) _
              And Val(i.SubItems(3).Text).Equals(Val(TextBox2.Text))).ToArray

وهذا الكود ليعيد سطر واحد فقط
كود :
Dim itm As ListViewItem =
    Me.ListView1.Items.Cast(Of ListViewItem).
    Where(Function(i) i.SubItems(0).Text.Equals(TextBox1.Text) _
              And Val(i.SubItems(3).Text).Equals(Val(TextBox2.Text))).FirstOrDefault
الرد
تم الشكر بواسطة:
#5
(23-01-17, 02:12 AM)مساعدة كتب : السلام عليكم

يمكن استغلال البحث في مصدر البيانات الذي قمت بتعبئة الليست فيو منه، والبحث فيه بشكل أسرع من قراءة خلايا الليست فيو.

وعموما هذا طريقة البحث في الليست فيو ويعيد مصفوفة من مجموعة أسطر،
البحث في العمود الأول نصا (الاسم مثلا) والعمود الرابع رقما (الراتب مثلا)
كود :
Dim itms() As ListViewItem =
   Me.ListView1.Items.Cast(Of ListViewItem).
   Where(Function(i) i.SubItems(0).Text.Equals(TextBox1.Text) _
             And Val(i.SubItems(3).Text).Equals(Val(TextBox2.Text))).ToArray

وهذا الكود ليعيد سطر واحد فقط
كود :
Dim itm As ListViewItem =
   Me.ListView1.Items.Cast(Of ListViewItem).
   Where(Function(i) i.SubItems(0).Text.Equals(TextBox1.Text) _
             And Val(i.SubItems(3).Text).Equals(Val(TextBox2.Text))).FirstOrDefault
شكرا لك اخى بارك الله فيك

ولكن كيف الاستخدام ليتم اظهار العناصر المطابقة للبحث فى الليست فيو واخفاء باقى العناصر

وكيف الغى هذا البحث لكى يظهر كل العناصر كما كانت؟
الرد
تم الشكر بواسطة:
#6
أخبرتك سابقاً أن إجراء البحث سيسهل العملية وكثيراً ويسرعها في حالة البيانات الكثيرة.

في الوضع السابق يجب الاحتفاظ بالاسطر قبل إجراء البحث، وستم البحث على الاسطر المحتفظ بها

هنا يتم إنشاء متغير للإحتفاط بالاسطر الأصلية
كود :
Private ListView1Items() As ListViewItem

هنا كيفية تعبئة المتغير السابق بالأسطر الأصلية
كود :
ListView1Items = Me.ListView1.Items.Cast(Of ListViewItem).Select(Function(x) x).ToArray

هنا عملية البحث كما ذكرتها في مشاركتي السابقة مع عدم ظهور باقي العناصر
كود :
Dim itms() As ListViewItem = ListView1Items.
    Where(Function(i) i.SubItems(0).Text.Equals(TextBox1.Text) _
              And Val(i.SubItems(3).Text).Equals(Val(TextBox2.Text))).ToArray

Me.ListView1.Items.Clear()
Me.ListView1.Items.AddRange(itms)

هنا إعادة العناصر الأصلية للأداة
كود :
Me.ListView1.Items.Clear()
Me.ListView1.Items.AddRange(ListView1Items)


والوضع مختلف وأسهل في حال التعامل مع مصدر البيانات التي تمت تعبئة أداة الليست فيو منه.


في حالة وجود سؤال آخر الرجاء وضع مشروعك ليتم إيجاد الحل المناسب.
الرد
تم الشكر بواسطة: الماجيك مسعد
#7
(23-01-17, 10:54 AM)مساعدة كتب : أخبرتك سابقاً أن إجراء البحث سيسهل العملية وكثيراً ويسرعها في حالة البيانات الكثيرة.

في الوضع السابق يجب الاحتفاظ بالاسطر قبل إجراء البحث، وستم البحث على الاسطر المحتفظ بها

هنا يتم إنشاء متغير للإحتفاط بالاسطر الأصلية
كود :
Private ListView1Items() As ListViewItem

هنا كيفية تعبئة المتغير السابق بالأسطر الأصلية
كود :
ListView1Items = Me.ListView1.Items.Cast(Of ListViewItem).Select(Function(x) x).ToArray

هنا عملية البحث كما ذكرتها في مشاركتي السابقة مع عدم ظهور باقي العناصر
كود :
Dim itms() As ListViewItem = ListView1Items.
   Where(Function(i) i.SubItems(0).Text.Equals(TextBox1.Text) _
             And Val(i.SubItems(3).Text).Equals(Val(TextBox2.Text))).ToArray

Me.ListView1.Items.Clear()
Me.ListView1.Items.AddRange(itms)

هنا إعادة العناصر الأصلية للأداة
كود :
Me.ListView1.Items.Clear()
Me.ListView1.Items.AddRange(ListView1Items)


والوضع مختلف وأسهل في حال التعامل مع مصدر البيانات التي تمت تعبئة أداة الليست فيو منه.


في حالة وجود سؤال آخر الرجاء وضع مشروعك ليتم إيجاد الحل المناسب.

اقسم بالله العظيم انك شخص مبدع

وتقريبا انت الشخص الوحيد الى فهمت ما اريد بالظبط

للعلم انى سئلت فى اكتر من منتدى اخر ولم يفهم قصدى اى شخص رغم انى وضحت لهم اكتر من هذا الموضوع ولكن دون جدوى

ولم يفهم قصدى سواك

+ انى ملاحظ مساعدتك البرئية فى كامل المنتدى ولكامل الاعضاء دون اى مقابل ولوجه الله فقط

اهنئك اخى على ذلك وربنا يذيدك من علمه

وباذن الله قريبا اشوفك من اداريين المنتدى


بارك الله فيك
الرد
تم الشكر بواسطة:
#8
بارك الله فيك، والحمد لله رب العالمين،
لا أريد أي شيء سواء من المنتدى أو الأعضاء،
فإني محتسب الأجر عند الله تعالى فقط صدقة عن والدي وعن نفسي.
الرد
تم الشكر بواسطة: الماجيك مسعد
#9
ايه افضل كود يتحقق ان العمود فيه قيمة وانه مش فاضى؟

مثلا فى عمود رقم 7

ازاى اتحقق ان الصف رقم 1 فى العمود رقم 7 فيه قيمة وليس فارغ؟
الرد
تم الشكر بواسطة:
#10
تفضل الكود
كود :
' Items الصف
' SubItems العمود
' الصف والعمود يبدأ بالرقم صفر
' يعني العمود الاول يكون العمود رقم صفر والعمود الثاني يكون العمود رقم واحد وهكذا في الصف

Dim hasValue As Boolean = ListView1.Items(1).SubItems(7).Text.Trim <> ""
هنا سيحتوي hasValue إما True وتعني فارغ أو False وتعني ليس فارغ
الرد
تم الشكر بواسطة: الماجيك مسعد


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال عن كيفية عمل شرط في الكريستال ريبورت ُEmam 10 210 13-08-18, 05:50 PM
آخر رد: ُEmam
  [سؤال] كيفية اضافة signalr للفيجوال 2010 alims 2 63 27-07-18, 02:21 PM
آخر رد: mero5000
  [VB.NET] كيفية جعل قيمة افتراضية من داخل كومبوبوكس موجود في داتا جريد فيو محمد صلاح ابراهيم 4 116 16-07-18, 02:31 PM
آخر رد: elgokr
  [VB.NET] مطلوب أداة أو كود لوضع Controlersداخل Listview b4getws 4 87 16-07-18, 06:47 AM
آخر رد: elgokr
  كود قتل عملية من ListView aldery 3 86 15-07-18, 04:28 AM
آخر رد: elgokr
  [سؤال] كيفية تحويل مشروع من c# الى vb.net alims 5 133 12-07-18, 10:53 PM
آخر رد: elgokr
  كيفية استرجاع جدول محدوف المتألق9 3 82 12-07-18, 05:24 AM
آخر رد: mero5000
  [VB.NET] كيفية حذف جزء معين من الصور او اخفائه الماجيك مسعد 7 333 10-07-18, 04:07 PM
آخر رد: الماجيك مسعد
  كيفية حفظ الصورة وعرضها على رمضان 1 81 07-07-18, 04:03 AM
آخر رد: elgokr
Thumbs Up كيفية تشغيل وإغلاق الادوات الذكية لويندوز 7 عن طريق الكود رمضان محمد 15 2,028 15-06-18, 07:28 AM
آخر رد: رمضان محمد

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم