السلام عليكم ارغب بالتعديل على الكود التالي كما هو موضوخ بالصورة ادناه ... في حال تكرر ((( المنتج والسعر ))) يقول بالتعديل فقط على العناصر بالداتا جيرد وفي حال تكرر المنتج فقط يتم اضافته بصورة طبيعية
و جزاكم الله خير
DataGridView1.Rows.Add(Textbox1.Text, Textbox2.Text, Textbox3, Textbox2.Text*Textbox3)
بعد تعديل الكود يصبح هكذا
إذا تكرر المنتج والسعر: قم بتحديث الكمية (Textbox3) والإجمالي (Textbox2 * Textbox3) للصف الموجود في DataGridView.
إذا تكرر المنتج فقط: قم بإضافة الصف الجديد بشكل طبيعي.
إليك الكود المعدل لتحقيق ذلك:
PHP كود :
Private Sub AddOrUpdateRow()
Dim product As String = TextBox1.Text
Dim price As Decimal = Decimal.Parse(TextBox2.Text)
Dim quantity As Integer = Integer.Parse(TextBox3.Text)
Dim total As Decimal = price * quantity
Dim rowFound As Boolean = False
Dim priceMatched As Boolean = False
' البحث عن المنتج في DataGridView
For Each row As DataGridViewRow In DataGridView1.Rows
If row.Cells(0).Value IsNot Nothing AndAlso row.Cells(0).Value.ToString() = product Then
rowFound = True
' التحقق من السعر
If Decimal.Parse(row.Cells(1).Value.ToString()) = price Then
priceMatched = True
' تحديث الكمية والإجمالي
row.Cells(2).Value = quantity
row.Cells(3).Value = total
Exit For
End If
End If
Next
' إذا لم يتم العثور على المنتج أو لم يتطابق السعر، إضافة صف جديد
If Not rowFound OrElse Not priceMatched Then
DataGridView1.Rows.Add(product, price, quantity, total)
End If
' رسائل للتوضيح (يمكن إزالتها لاحقًا)
If rowFound AndAlso priceMatched Then
MessageBox.Show("تم تحديث الكمية والإجمالي للمنتج المكرر بنفس السعر.")
ElseIf rowFound Then
MessageBox.Show("تم إضافة المنتج المكرر بسعر مختلف.")
Else
MessageBox.Show("تم إضافة المنتج الجديد.")
End If
End Sub
شرح الكود:
جمع القيم من TextBoxes:
product: اسم المنتج.
price: سعر المنتج.
quantity: كمية المنتج.
total: الإجمالي المحسوب كـ (السعر × الكمية).
البحث في DataGridView:
يتم البحث في كل صف في DataGridView للتحقق من وجود المنتج.
إذا تم العثور على المنتج وتطابق السعر، يتم تحديث الكمية والإجمالي.
إذا تم العثور على المنتج ولكن السعر مختلف، يتم إضافة صف جديد.
إضافة الصف الجديد:
إذا لم يتم العثور على المنتج أو إذا كان السعر مختلفًا، يتم إضافة صف جديد.
رسائل توضيحية:
رسائل لتوضيح الإجراءات التي تم اتخاذها. يمكن إزالتها في الإنتاج.
تطبيق الكود:
ضع هذا الكود في حدث زر الإضافة (مثل زر "Add" في النموذج الخاص بك). مثلاً:
PHP كود :
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
AddOrUpdateRow()
End Sub
نقاط إضافية:
تأكد من أن DataGridView يحتوي على الأعمدة المناسبة (الاسم، السعر، الكمية، الإجمالي).
يمكنك تخصيص الرسائل أو إزالتها حسب الحاجة.
هذا الكود يجب أن يحقق السلوك المطلوب بشكل دقيق. إذا كانت هناك تفاصيل إضافية أو حالات خاصة تحتاج إلى التعامل معها، يمكنك تعديل الكود وفقًا لذلك.
جزاكم الله خيرا .. وبارك الله لكما