تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جمع الكمية لصنف واحد داخل datagridview
#14
(04-12-18, 05:37 PM)atef_020 كتب :
(03-12-18, 08:30 PM)atef_020 كتب :
(03-12-18, 07:28 PM)حريف برمجة كتب : مرحبا ،،

أولا اتبع الصور :

انقر على الداتاقريدفيو واختار Add Column








ثانياً : امسح الكود تبعك وانسخ الكود والصقه في حدث CellEndEdit الخاص بالداتاقريدفيو :

كود :
dgv.Rows(e.RowIndex).Cells(0).Value = Format(Val(dgv.Rows(e.RowIndex).Cells(0).Value))

       'بداية جلب البيانات الموجودة في المتجر بشرط رقم الصنف
       Dim dp As New OleDbDataAdapter(sqlstr, con)
       dp.SelectCommand.Parameters.AddWithValue("@code", dgv.Rows(e.RowIndex).Cells(0).Value)
       Dim dt As New DataTable
       dp.Fill(dt)

       If dt.Rows.Count = 0 Then   'رقم الصنف غير موجود في الجدول

           'نمنع اضافة سطر جديد في القريد
           dgv.AllowUserToAddRows = False

           MsgBox("هذا الصنف غير معرف في بطاقة الصنف", MsgBoxStyle.MsgBoxRight + MsgBoxStyle.Critical, "خطأ ")

           dgv.CurrentCell = dgv.Rows(e.RowIndex).Cells(0)
           dgv.Rows(e.RowIndex).Cells(0).Value = ""          'نفرغ الخلية الأولى من رقم الصنف الغير موجود
           dgv.Rows(e.RowIndex).Cells(0).Selected = True     'نضع المؤشر في الخلية الأولى لإستقبال رقم الصنف

           Exit Sub      'نخرج من تكملة الكود
       End If
       'نهاية جلب البيانات الموجودة في المتجر بشرط رقم الصنف



       'هنا نعمل دوران على الداتاقريدفيو للتحقق في حالة وجود باركود الصنف
       For i = 0 To dgv.Rows.Count - 1

           'هنا إذا رقم الصنف موجود في الداتاقريدفيو نتأكد إذا الكمية المراد بيعها اكبر من الكمية الموجودة في المتجر نظهر رسالة والخروج من تكملة الكود
           If dgv.Rows(i).Cells(0).Value = dgv.CurrentCell.Value And dgv.Rows(i).Cells(1).Value <> "" Then

               'هنا رقم الصنف موجود في الداتاقريدفيو ولكن الكمية المراد بيعها اقل من الكمية الموجوده في المتجر
               'نزيد 1 في خلية الكمية
               dgv.Rows(i).Cells(2).Value = dgv.Rows(i).Cells(2).Value + 1

               'وضع قيمة المجموع في القريد بضرب السعر في الكمية الجديدة
               dgv.Rows(i).Cells(4).Value = (dgv.Rows(i).Cells(2).Value * dgv.Rows(i).Cells(3).Value)

               'نمنع اضافة سطر جديد في القريد
               dgv.AllowUserToAddRows = False

               'بعد اضافة 1 للكمية السابقة في القريد نفرغ القيمة المدخلة
               dgv.Rows(e.RowIndex).Cells(0).Value = ""

               'يبقى المؤشر في مكانه بعد اضافة 1 للكمية السابقة
               dgv.Rows(e.RowIndex).Cells(0).Selected = True

               Exit Sub

           End If
       Next      'نهاية الدوران والتأكد من رقم الصنف موجود في الداتاقريدفيو



       'هنا رقم الصنف غير موجود في الداتاقريدفيو لذلك سوف نقوم بإضافته
       dgv.Rows(e.RowIndex).Cells(0).Value = dt.Rows(0)(0).ToString
       dgv.Rows(e.RowIndex).Cells(1).Value = dt.Rows(0)(1).ToString
       dgv.Rows(e.RowIndex).Cells(3).Value = dt.Rows(0)(2).ToString

       'نضع 1 في خلية الكمية
       dgv.Rows(e.RowIndex).Cells(2).Value = 1

       'وضع قيمة المجموع في القريد بضرب السعر في الكمية
       dgv.Rows(dgv.CurrentRow.Index).Cells(4).Value = (dgv.Rows(dgv.CurrentRow.Index).Cells(2).Value * dgv.Rows(dgv.CurrentRow.Index).Cells(3).Value)

       'نسمح اضافة سطر جديد في القريد
       dgv.AllowUserToAddRows = True

       'نضع المؤشر في خلية الباركود في السطر الجديد
       dgv.CurrentCell = dgv.Rows(e.RowIndex + 1).Cells(0)


       'ترتيب الداتاقريدفيو بناء على رقم الصنف
       dgv.Sort(dgv.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
 ت
سلم ايدك اخى الكريم اشتغل تمام 
بس فية طلب لو عاوز اضيف كمية اكثر من الصنف وليكن 20 قطعة من السكر ممكن طريقة انى اضغط مثلا على f5 ليقوم بتحرير خلية الكمية لاقوم بالتعديل على الكمية من 1 الى 20 قطعة

عند حفظ الفاتورة فية خطاء 
 
تم حل مشكلة الخطاء عند الحفظ باضافة       val(   )
PHP كود :
cmd.Parameters.Add(New OleDb.OleDbParameter("@Total_2"OleDb.OleDbType.Currency)).Value Val(Tota1TextBox.Text

أرجو الحل 

بس فية طلب لو عاوز اضيف كمية اكثر من الصنف وليكن 20 قطعة من السكر ممكن طريقة انى اضغط مثلا على f5 ليقوم بتحرير خلية الكمية لاقوم بالتعديل على الكمية من 1 الى 20 قطعة

فى الانتظار اخى الكريم 


[quote pid='133499' dateline='1543930665']
أرجو الحل 

لو عاوز اضيف كمية اكثر من الصنف وليكن 20 قطعة من السكر ممكن طريقة انى اضغط مثلا على f5 ليقوم بتحرير خلية الكمية لاقوم بالتعديل على الكمية من 1 الى 20 قطعة
[/quote]
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: جمع الكمية لصنف واحد داخل datagridview - بواسطة atef_020 - 05-12-18, 12:56 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طريقة توسيط النص داخل اداة comboBox سمير1404 7 3,861 24-08-25, 01:01 PM
آخر رد: أبو خالد الشكري
  [VB.NET] محتاج اربط DataGridView بزر بحث bakrycold 1 556 28-02-25, 12:11 AM
آخر رد: bakrycold
  [VB.NET] استعراض بيانات في Datagridview واضافة جميع البيانات لجدول محدد sql skode 0 489 12-01-25, 12:50 AM
آخر رد: skode
Information [VB.NET] تنسيق أعمدة DataGridView أبو خالد الشكري 3 583 21-12-24, 02:40 PM
آخر رد: aljzazy
  استدعاء من جدولين داخل اداه FlowLayoutPanel برجاء الافادة للضرورة جداً modymody300894 7 640 15-11-24, 11:02 AM
آخر رد: modymody300894
  كتابه عدد معين من الارقام داخل تيكست بوكس modymody300894 3 559 07-11-24, 09:15 PM
آخر رد: modymody300894
  ترتيب شجره الحسابات داخل الجريد فيو modymody300894 2 410 31-10-24, 12:27 PM
آخر رد: modymody300894
Exclamation [VB.NET] ممكن عمل كود لحفظ المكتوب داخل اداة TextBox الورد الصناعي 9 809 17-10-24, 11:43 PM
آخر رد: salamandal
  [VB.NET] كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد mmaalmesry 6 483 15-10-24, 11:05 AM
آخر رد: Taha Okla
  ارجو المساعدة في كود مقارنة عامود داخل الداتا جريد فيو alachk 11 1,113 11-08-24, 11:44 AM
آخر رد: alachk

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


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