هذا التعديل :
كود :
If e.KeyCode = Keys.Enter Then
If qte_vente.Text = "" Or qte_vente.Text = "0" Then
MsgBox("أدخل الكمية المطلوبة")
Else
For i As Integer = 0 To DGVBill.Rows.Count - 1
If DGVBill.Rows(i).Cells(1).Value = codebare_vente.Text Then
DGVBill.Rows(i).Cells(5).Value = Val(DGVBill.Rows(i).Cells(5).Value + Val(qte_vente.Text))
calcul()
Exit Sub
End If
Next i
Dim row As DataRow = dt.NewRow
row(0) = gid()
row(1) = codebare_vente.Text
row(2) = designation_vente.Text
row(3) = unite_vente.Text
row(4) = pd_vente.Text
row(5) = qte_vente.Text
row(6) = ptotal_vente.Text
dt.Rows.Add(row)
DGVBill.DataSource = dt
calcul()
End If
End If
(01-08-22, 05:51 AM)بالفعل أخي Taha Okla هذا هو الكود المطلوب، لك مني جزيل الشكر ، إن احتجت للديزاين فلا تتردد في السؤال أبدا. كتب : [ -> ]
كود :
If e.KeyCode = Keys.Enter Then
If qte_vente.Text = "" Or qte_vente.Text = "0" Then
MsgBox("أدخل الكمية المطلوبة")
Else
For i As Integer = 0 To DGVBill.Rows.Count - 1
If DGVBill.Rows(i).Cells(1).Value = codebare_vente.Text Then
DGVBill.Rows(i).Cells(5).Value = Val(DGVBill.Rows(i).Cells(5).Value + Val(qte_vente.Text))
calcul()
Exit Sub
End If
Next i
Dim row As DataRow = dt.NewRow
row(0) = gid()
row(1) = codebare_vente.Text
row(2) = designation_vente.Text
row(3) = unite_vente.Text
row(4) = pd_vente.Text
row(5) = qte_vente.Text
row(6) = ptotal_vente.Text
dt.Rows.Add(row)
DGVBill.DataSource = dt
calcul()
End If
End If
تنويه: الكود الآن يقوم بادخال البيانات DT الى DGV وفي حال وجد بأن العنصر موجود مسبقا ، يقوم بتعديل الكمية فقط و إضافة الكمية الجديدة الموجودة في خانة التاكست بوكس الخاص بالكمية ، في جميع الصفوف وليس في الصف الأول فقط كما حدث معي سالفا.
لم أعرف ما قصدك بالديزاين !!!
==
لكن بالنبسة لهذا الكود وأي كود تقوم بكتابته
عليك أن تحلله بشكل منطقي قبل كتابته - لتعرف أين الخطأ في حال وقع معك خطأ ما.
يعني تمشي مع الكود خطوة بخطوة وتتصور بأنك أنت من سيقوم بعرض النتيجة وليس الشاشة..
فما عملته على الكود هو اعادة تنسيق للكود ولم أقم بإضافة أي شيء على الكود سوى عبارة الخروج من الحدث وانهاءه في حال كان السجل قد سبق إدراجه ضمن الجدول..
جعلنا حلقة For تقوم بقراءة كل اسطر الجدول وتقارنها بالعنصر الجديد :
- إن وجد سطر ما يشابه العنصر الجديد عدل بياناته وقام بانهاء الحدث(متجاوزاً بذلك كود الاضافة الذي يلي حلقة For).
- وإن انتهى من مطابقة كل السجلات ولم يجد العنصر انهى عمل حلقة For نتيجة (قراءة كل ارقامها) وانتقل للكود الذي يلي الحلقة وهو حقل الاضافة فيضيف السجل الجديد.
(01-08-22, 06:04 PM)Taha Okla كتب : [ -> ]لم أعرف ما قصدك بالديزاين !!!
==
لكن بالنبسة لهذا الكود وأي كود تقوم بكتابته
عليك أن تحلله بشكل منطقي قبل كتابته - لتعرف أين الخطأ في حال وقع معك خطأ ما.
يعني تمشي مع الكود خطوة بخطوة وتتصور بأنك أنت من سيقوم بعرض النتيجة وليس الشاشة..
فما عملته على الكود هو اعادة تنسيق للكود ولم أقم بإضافة أي شيء على الكود سوى عبارة الخروج من الحدث وانهاءه في حال كان السجل قد سبق إدراجه ضمن الجدول..
جعلنا حلقة For تقوم بقراءة كل اسطر الجدول وتقارنها بالعنصر الجديد :
- إن وجد سطر ما يشابه العنصر الجديد عدل بياناته وقام بانهاء الحدث(متجاوزاً بذلك كود الاضافة الذي يلي حلقة For).
- وإن انتهى من مطابقة كل السجلات ولم يجد العنصر انهى عمل حلقة For نتيجة (قراءة كل ارقامها) وانتقل للكود الذي يلي الحلقة وهو حقل الاضافة فيضيف السجل الجديد.
قصدي بالديزاين هو تصميم واجهات حديثة للبرامج ، بألوان متقاربة و سهلة للعين ، و بخصائص غير مألوفة في البرامج الأخرى، بـ مكتبات Dll أو بدونها، أنا لا أحب التقليد بل أحب الجديد الذي يميز العمل عن غيره من الأعمال الأخرى.
تعلمت من مايكروسوفت أن البرنامج كلما كان بسيطاً بالأدوات وسهل الوصول لأي غرض فيه كان أفضل -
فليس العبرة بالشكل وجمالية البرنامج بينما البرنامج
يجب أن يكون سريعاً وخفيفاً على الجهاز الذي سيعمل عليه حتى لو كان بسيط المنظر.
مثلاً : لاحظت أن برامج الحسابات للمقاهي والكفتيريات والجمعيات للشركات البرمجية (الذين يعتنون بالمظهر وجمالية البرنامج) يحتاج من الوقت لاظهار التقرير الشهري أكثر من ثلاث دقائق وأغلبها برامج مبرمجة بلغة الجافا(وهي أسرع من VB في البيانات النصية).
بينما توصلت برامجي لخمسة عشر ثانية لعرض التقرير السنوي (وأقل من ثانية للتقرير اليومي) هذا في اصدارات برامج (VB6.0) فما بالك بإصدارات الـ .Net
من كامل البيانات وليس من مختصرها وملخصها..
===========================
وآخيراً لا أنسى أن أقدم لك شكري على أهتمامك ومبادرتك القيمة والتي تنم عن جمال خلقك وذوقك ..
..
(01-08-22, 07:59 PM)Taha Okla كتب : [ -> ]تعلمت من مايكروسوفت أن البرنامج كلما كان بسيطاً بالأدوات وسهل الوصول لأي غرض فيه كان أفضل -
فليس العبرة بالشكل وجمالية البرنامج بينما البرنامج
يجب أن يكون سريعاً وخفيفاً على الجهاز الذي سيعمل عليه حتى لو كان بسيط المنظر.
مثلاً : لاحظت أن برامج الحسابات للمقاهي والكفتيريات والجمعيات للشركات البرمجية (الذين يعتنون بالمظهر وجمالية البرنامج) يحتاج من الوقت لاظهار التقرير الشهري أكثر من ثلاث دقائق وأغلبها برامج مبرمجة بلغة الجافا(وهي أسرع من VB في البيانات النصية).
بينما توصلت برامجي لخمسة عشر ثانية لعرض التقرير السنوي (وأقل من ثانية للتقرير اليومي) هذا في اصدارات برامج (VB6.0) فما بالك بإصدارات الـ .Net
من كامل البيانات وليس من مختصرها وملخصها..
===========================
وآخيراً لا أنسى أن أقدم لك شكري على أهتمامك ومبادرتك القيمة والتي تنم عن جمال خلقك وذوقك ..
..
معك حق في ذلك ، لكني أحاول دائما أن لا أدع "الجمال" يؤثر على سير "الأعمال"
لدي ملاحظة بسيطة :
عندما يجد الكود بأن العنصر موجود مسبقا في DGV يقوم بتعديل الكمية
لكن كيف نستطيع أن نجعل الخلية رقم 6 وهي خاصة بالسعر الكلي في DGV '' الكمية * سعر الوحدة"
كيف نجعلها تتغير مع تغير الكمية في DGV في أي حدث يمكنني القيام بذلك؟ و هل على إضافة For i أخرى للسعر الكلي ؟
عندما يجد الكود بأن العنصر موجود مسبقا في DGV يقوم بتعديل الكمية
لكن كيف نستطيع أن نجعل الخلية رقم 6 وهي خاصة بالسعر الكلي في DGV '' الكمية * سعر الوحدة"
كيف نجعلها تتغير مع تغير الكمية في DGV في أي حدث يمكنني القيام بذلك؟ و هل على إضافة For i أخرى للسعر الكلي ؟
(04-08-22, 01:15 PM)technomedia كتب : [ -> ]عندما يجد الكود بأن العنصر موجود مسبقا في DGV يقوم بتعديل الكمية
لكن كيف نستطيع أن نجعل الخلية رقم 6 وهي خاصة بالسعر الكلي في DGV '' الكمية * سعر الوحدة"
كيف نجعلها تتغير مع تغير الكمية في DGV في أي حدث يمكنني القيام بذلك؟ و هل على إضافة For i أخرى للسعر الكلي ؟
في نفس الكود بعد سطر تعديل الكمية - تقوم بقراءة الكمية الجديدة من الخلية رقم (5) وتضربها بسعر الوحدة في الخلية الذي فيها سعر الوحدة.
يوجد حدثان تكتب بهما الكود ...ظنيتك حملت المثال لاني اضفتها.
(04-08-22, 03:01 PM)سعود كتب : [ -> ]يوجد حدثان تكتب بهما الكود ...ظنيتك حملت المثال لاني اضفتها.
عفوا أخي سعود لم أنتبه كنت قد حملت المثال الأول فقط ولم أنتبه للتصحيح في المثال الثاني لكني حملته الآن
كل الشكر و التقدير لك وكل من ساهم برد في هذا المنتدى.