تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جمع الكمية لصنف واحد داخل datagridview
#1
السلام عليكم اخوانى المحترمين 


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

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

جزاكم الله خيرا تحياتى للجميع
الرد }}}
#2
(01-12-18, 07:13 PM)atef_020 كتب : السلام عليكم اخوانى المحترمين 


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


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

جزاكم الله خيرا تحياتى للجميع

انت متصل بالاكسس.
المبرمج لا يفكر في المشكلة بل في الحل!!
الرد }}}
تم الشكر بواسطة:
#3
(01-12-18, 07:13 PM)atef_020 كتب : السلام عليكم اخوانى المحترمين 


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


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

جزاكم الله خيرا تحياتى للجميع

وعليكم السلام ورحمة الله وبركاته ،،،

القي نظرة
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم اريد عمل ازرار كما هومبين بالفيديو : https://www.youtube.com/watch?v=WnO8MIyIaw0   

مع العلم اني قمت بتحميل ملف ddl  
وجاتني رسالة "Your app has entered a break state, but there is no code to show because all threads were executing external code (typically system or framework code)
الرد }}}
تم الشكر بواسطة:
#5
(01-12-18, 11:26 PM)حريف برمجة كتب :
(01-12-18, 07:13 PM)atef_020 كتب : السلام عليكم اخوانى المحترمين 


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


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

جزاكم الله خيرا تحياتى للجميع

وعليكم السلام ورحمة الله وبركاته ،،،

القي نظرة
اخى المحترم حريف برمجة
 هذا مثال رائع وهذا ما اريدة ولكن لا استطيع التطبيق لوجود اخطاء عندى ارجو المساعدة 
ارسلت لك المشروع فى هذا الرابط
http://vb4arb.com/vb/private.php?action=read&pmid=57612

جزاك الله خيرا اخى الكريم 
الرد }}}
تم الشكر بواسطة:
#6
(01-12-18, 11:32 PM)anis كتب : السلام عليكم اريد عمل ازرار كما هومبين بالفيديو : https://www.youtube.com/watch?v=WnO8MIyIaw0   

مع العلم اني قمت بتحميل ملف ddl  
وجاتني رسالة "Your app has entered a break state, but there is no code to show because all threads were executing external code (typically system or framework code)

الأخ انيس ،، وعليكم السلام ورحمة الله وبركاته ،،

بسب اختلاف سؤالك عن سؤال صاحب الموضوع ،، قم بفتح موضوع جديد واشرح ما تريد وان امكن ضع مثال للمشكلة .

الأخ عاطف ،،

اعمل مثال صغير للشاشة التي بها مشكلة وارفقها وستجد الحل بشكل اسرع ،،
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة:
#7
(03-12-18, 04:56 PM)حريف برمجة كتب :
(01-12-18, 11:32 PM)anis كتب : السلام عليكم اريد عمل ازرار كما هومبين بالفيديو : https://www.youtube.com/watch?v=WnO8MIyIaw0   

مع العلم اني قمت بتحميل ملف ddl  
وجاتني رسالة "Your app has entered a break state, but there is no code to show because all threads were executing external code (typically system or framework code)

الأخ انيس ،، وعليكم السلام ورحمة الله وبركاته ،،

بسب اختلاف سؤالك عن سؤال صاحب الموضوع ،، قم بفتح موضوع جديد واشرح ما تريد وان امكن ضع مثال للمشكلة .

الأخ عاطف ،،

اعمل مثال صغير للشاشة التي بها مشكلة وارفقها وستجد الحل بشكل اسرع ،،

دا مثال الشاشة المطلوبة 

اريد التعديل كما فى المثال لديك  الذى تفضلت بة
.
اريد اذا كان الصنف موجود فى datagridview فيضيف الكمية المدخلة ولا يتم تكرار بيانات الصنف مرة اخرى 
اما اذا كانت الكمية عدد كبير مثلا 20 اريد ان يتم تحرير خلية الكمية لتعديل الكمية الى العدد المطلوب ...... تحياتى لك اخى الكريم 


.rar   test.rar (الحجم : 92.42 ك ب / التحميلات : 47)
الرد }}}
تم الشكر بواسطة:
#8
مرحبا ،،

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

انقر على الداتاقريدفيو واختار 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)
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة: atef_020
#9
PHP كود :
for as integer 0 to datagridview1.rows.count-1
if datagridview1.rows(i).cells(0).value dt.rows(0).items("item_code"then
datagridview1
.rows(i).cells(0).value=datagridview1.rows(i).cells(0).value+1
end 
if 
next 
الرد }}}
تم الشكر بواسطة:
#10
(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 قطعة

عند حفظ الفاتورة فية خطاء 
     
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 164 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  فلترة datagridview بدون قاعدة بيانات صالح عبدالله 3 295 02-02-24, 04:07 PM
آخر رد: صالح عبدالله
  [VB.NET] ظهور التاريخ غير مرتب بالأقدم في datagridview مبرمج صغير 1 4 304 26-01-24, 03:41 PM
آخر رد: atefkhalf2004
  [VB.NET] التاريخ في أداة أبو سامر لطباعة DataGridView مبرمج صغير 1 17 629 26-01-24, 01:52 AM
آخر رد: مبرمج صغير 1
  مشكلة في datagridview Adata 4 310 17-01-24, 03:00 PM
آخر رد: aljzazy
  اريد طباعة الباركود المحدد فقط مع الكمية new_programer 5 432 09-01-24, 08:40 PM
آخر رد: new_programer
  [سؤال] كيفية انشاء فورم داخل مشروعى عاصم النجار 2 305 05-01-24, 12:36 AM
آخر رد: HALIM ELEULMA
  حماية عمود داخل ورقة الاكسل العيدروس 3 190 05-01-24, 12:21 AM
آخر رد: HALIM ELEULMA
  كيف ارسل مجموع 3 تكست بوكس إلى واحد بالترتيب ؟ أبووسم 3 330 18-12-23, 05:17 PM
آخر رد: أبووسم
Lightbulb [VB.NET] إطهار الصورة بمقاس معين في DataGridView أبو خالد الشكري 2 323 14-12-23, 03:01 PM
آخر رد: أبو خالد الشكري

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


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