مشكلة في التسلسل الرقمي ؟ - kafi2030 - 12-10-13
بسم الله الرحمن الرحيم
السلام عليكم
لدي ليست فيو، تقوم بعرض سجلات، قمت بوضع عامود على يمين تلك السجلات، من اجل اسناد رقم تصاعدي لتلك السجلات.
تم كتابة الكود التالي
كود :
Sub PopulateListView()
Dim i As Integer = 1
With ListView1
.Clear()
.View = View.Details
.Columns.Add("Beda_id", 0, HorizontalAlignment.Center)
.Columns.Add("م", 60, HorizontalAlignment.Left)
.Columns.Add("اســم المـــادة", 250, HorizontalAlignment.Left)
.Columns.Add("سعر الشــراء", 100, HorizontalAlignment.Left)
.Columns.Add("سعر المبيـع", 100, HorizontalAlignment.Left)
.Columns.Add("ربح المـادة", 100, HorizontalAlignment.Left)
.Columns.Add("ملاحظــــات", 280, HorizontalAlignment.Left)
.GridLines = False
.FullRowSelect = True
.Cursor = Cursors.Hand
.BackColor = Color.Beige
.ForeColor = Color.Black
Dim Lst As New ListViewItem
Dim List = From B In db.Fixed_Bedas Select B
For Each x In List
Lst = New ListViewItem(x.Beda_id)
Lst.SubItems.Add(i)
Lst.SubItems.Add(x.Beda_Name)
Lst.SubItems.Add(GetValue(x.Shra_Price))
Lst.SubItems.Add(GetValue(x.Mabee_Price))
Lst.SubItems.Add(GetValue(x.Mabee_Price - x.Shra_Price))
Lst.SubItems.Add(x.Beda_Note)
.Items.Add(Lst)
i += 1
Next
End With
For Each LVI As ListViewItem In ListView1.Items
LVI.SubItems.Item(3).Text = FormatNumber(LVI.SubItems.Item(3).Text, 2)
LVI.SubItems.Item(4).Text = FormatNumber(LVI.SubItems.Item(4).Text, 2)
LVI.SubItems.Item(5).Text = FormatNumber(LVI.SubItems.Item(5).Text, 2)
Next
End Sub
الا ان الرقم يكون متبوعا، باسم المادة، ويسبب ان الارقام لا تكون متسلسلة كما اريد
- تم اجراء محاولة للحل، عن طريق الغاء الخاصية sorting
وجعلها تاخذ القيمة None
الارقام اصبحت مرتبة تصاعدية كما اريد، ولكن المشكلة ان اسماء المواد اصبحت غير مرتبة
ارجو المساعدة في تحقيق
1- جعل الارقام التي على يمين اسم المادة ارقام تصاعدية
2- بنفس الوقت ان تكون اسماء المواد مفرزة ابجديا تصاعديا
ارجو المساعدة
والف شكر
RE: مشكلة في التسلسل الرقمي ؟ - sooriaty03 - 13-10-13
السلام عليكم ورحمة الله وبركاته
أخي الكريم تستطيع بعد عمل تعبئة البيانات في الليست فيو
أن تقوم بإعاداة توزيع الأرقام بهذه الطريقة
كود :
For i = 0 To ListView1.Items.Count - 1
ListView1.Items(i).Text = i + 1
Next
RE: مشكلة في التسلسل الرقمي ؟ - kafi2030 - 13-10-13
السلام عليكم
شكرا اخي sooriaty
على اجابتك
تم محاولة تعبئة العامود بالارقام، بعد ان تم تعبئة الليست فيو
الا ان النيجة كانت غير مرضية على الاطلاق
كود :
Dim Lst As New ListViewItem
Dim List = From B In db.Fixed_Bedas Select B
For Each x In List
Lst = New ListViewItem(x.Beda_id)
Lst.SubItems.Add("")
Lst.SubItems.Add(x.Beda_Name)
Lst.SubItems.Add(GetValue(x.Shra_Price))
Lst.SubItems.Add(GetValue(x.Mabee_Price))
Lst.SubItems.Add(GetValue(x.Mabee_Price - x.Shra_Price))
Lst.SubItems.Add(x.Beda_Note)
.Items.Add(Lst)
Next
For Each x In List
Lst = New ListViewItem(x.Beda_id)
Lst.SubItems.Add(i)
.Items.Add(Lst)
i += 1
Next
End With
ارجو المساعدة
والف شكر
RE: مشكلة في التسلسل الرقمي ؟ - kafi2030 - 14-10-13
السلام عليكم
الحمد لله توصلت للحل، وقد احببت ان اضع الحل، حتى يستفيد منه الاخوة
كود :
Sub PopulateListView()
Dim i As Integer = 1
Dim xx As Integer
With ListView1
.Clear()
.View = View.Details
.Columns.Add("Beda_id", 0, HorizontalAlignment.Center)
.Columns.Add("م", 60, HorizontalAlignment.Left)
.Columns.Add("اســم المـــادة", 250, HorizontalAlignment.Left)
.Columns.Add("سعر الشــراء", 100, HorizontalAlignment.Left)
.Columns.Add("سعر المبيـع", 100, HorizontalAlignment.Left)
.Columns.Add("ربح المـادة", 100, HorizontalAlignment.Left)
.Columns.Add("ملاحظــــات", 280, HorizontalAlignment.Left)
.GridLines = False
.FullRowSelect = True
.Cursor = Cursors.Hand
.BackColor = System.Drawing.ColorTranslator.FromHtml(My_back_Color_Listview)
.ForeColor = Color.Black
Dim Lst As New ListViewItem
Dim List = From B In db.Fixed_Bedas Select B
For Each x In List
Lst = New ListViewItem(x.Beda_id)
Lst.SubItems.Add("")
Lst.SubItems.Add(x.Beda_Name)
Lst.SubItems.Add(GetValue(x.Shra_Price))
Lst.SubItems.Add(GetValue(x.Mabee_Price))
Lst.SubItems.Add(GetValue(x.Mabee_Price - x.Shra_Price))
Lst.SubItems.Add(x.Beda_Note)
.Items.Add(Lst)
Next
End With
xx = ListView1.Items.Count
For i = 1 To xx
ListView1.Items.Item(i - 1).SubItems(1).Text = i
Next i
For Each LVI As ListViewItem In ListView1.Items
LVI.SubItems.Item(3).Text = FormatNumber(LVI.SubItems.Item(3).Text, 2)
LVI.SubItems.Item(4).Text = FormatNumber(LVI.SubItems.Item(4).Text, 2)
LVI.SubItems.Item(5).Text = FormatNumber(LVI.SubItems.Item(5).Text, 2)
Next
ListView1.Sorting = SortOrder.Ascending
ListView1.ListViewItemSorter = New ListViewItemComparer(2)
ListView1.Sort()
End Sub
|