تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مبيعات الاصناف بناء على الحجم
#6
لو كان الجدول (Product_Tbl) يعرض كل الأصناف الفرعية للمادة  نفسها بحسب (الحجم أو اللون أو السعر أو .. إلخ)..
فإن الكود المذكور حتى السطر التالي :
كود :
Dim cmd As New SqlCommand(" select * from Product_Tbl Where Product_ID Like '" & _ID & "%'", con)

حتى هذا السطر صحيح،
لكن نضيف بعده تعريف لـ (DataTable)  ونخزن فيها النتيجة (هو أكيد فيه نتيجة لأننا نبحث عن سجل تم اختياره من قائمة موجودة) بالكود التالي :

نعرف ثم نعبئ النتيجة بالجدول الافتراضي :
كود :
Dim dt As New DataTable

       dt.Load(cmd.ExecuteReader)

بعدها نحاول أن نعرف كم عدد السجلات المشابهة :
1- اذا كانت سجل واحد ، نطبق الكود الذي ذكرته أنت.
2- إذا كان أكثر من سجل، نعرض نافذة جديدة في (DataGridView1) يعرض كل النتائج .
   واختيار أي مادة منها يتم تعبئته كما فعلت أنت بكودك ولكن من خلال النافذة الجديدة والنقر أو الاختيار من(DataGridView1) 
وذلك من خلال الكود التالي :

كود :
If dt.Rows.Count = 1 Then

   Dim dr As SqlDataReader
   dr = cmd.ExecuteReader
   dr.Read()
   If dr.HasRows Then
       _Name = dr("ProductName").ToString
       _BuyPrice = dr("ProductBuy").ToString
       _SalePrice = dr("ProductSale").ToString
       _Barcode = dr("ProductCode").ToString
   End If
   dr.Close()
   con.Close()

   For i As Integer = 0 To Dgv.Rows.Count - 1
       If Dgv.Rows(i).Cells(0).Value = _ID Then
           Dgv.Rows(i).Cells(4).Value = Dgv.Rows(i).Cells(4).Value + 1
           Dgv.Rows(i).Cells(5).Value = Dgv.Rows(i).Cells(5).Value + _SalePrice
           InvoiceTotal()
           Exit Sub
       End If
   Next
   Dim x As Integer
   Dgv.Rows.Add()
   x = Dgv.Rows.Count - 1
   Dgv(0, x).Value = _ID
   Dgv(1, x).Value = _Barcode
   Dgv(2, x).Value = _Name
   Dgv(3, x).Value = _SalePrice
   Dgv(4, x).Value = 1
   Dgv(5, x).Value = Dgv(3, x).Value * 1
   Dgv(6, x).Value = _SalePrice - _BuyPrice
   InvoiceTotal()
ElseIf dt.Rows.Count > 1 Then
   '  هنا تضع كود فتح النافذة الجديدة التي عليها الداتاجريد وتعرض فيها كل المواد
End If

أما الكود الذي تضعه في حال أكثر من سجل :
هو عرض النافذة الجديدة وتعبئة البيانات في الداتا جريد من خلال الكود التالي بعد فتح النافذة الجديدة(FormX)  :

كود :
FormX.DataGridView1.DataSource = dt

أما طريقة عرض النافذة الجديدة ، فلن تعجز عنها، كذلك إضافة حدث النقر أو اختيار أي عنصر من الداتا جريد لإضافته للقائمة في التي تريد (بنفس كودك)


وفقك الله ..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: OLED , OLED , OLED , ahmed_king2023


الردود في هذا الموضوع
RE: مبيعات الاصناف بناء على الحجم - بواسطة Taha Okla - 04-01-23, 04:29 AM


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


يقوم بقرائة الموضوع: