المشاركات : 16
المواضيع 6
الإنتساب : Apr 2020
السمعة :
0
الشكر: 9
تم شكره 11 مرات في 10 مشاركات
السلام عليكم
انا عامل داتا جريد فيو بيها عمود فيه الكميات المتاحة و عمود اخر به الكمية المطلوبه و بيحفظ في قاعدة البيانات
المشكله ان ممكن تدخل الكمية المطلوبة اكبر من الكمية المتاحة و ده طبعا مينفعش
حاولت استخدم الكود ده في DataGridView1_CellEndEdit و مش شغال بيظهر الرساله و بيكمل عادي
كود : For q As Integer = 0 To DataGridView1.Rows.Count - 1
Dim IQty, SQty As Double
IQty = Val(DataGridView1(5, DataGridView1.CurrentRow.Index).Value)
SQty = Val(DataGridView1(6, DataGridView1.CurrentRow.Index).Value)
If SQty > IQty Then
MsgBox("الكمية المطلوبة أكبر من الكمية المتاحة")
Return
End If
'Next
ارجو المساعدة و شكرا لكم
المشاركات : 91
المواضيع 2
الإنتساب : Mar 2020
السمعة :
21
الشكر: 565
تم شكره 189 مرات في 86 مشاركات
(03-06-20, 01:06 AM)stiger كتب : السلام عليكم
انا عامل داتا جريد فيو بيها عمود فيه الكميات المتاحة و عمود اخر به الكمية المطلوبه و بيحفظ في قاعدة البيانات
المشكله ان ممكن تدخل الكمية المطلوبة اكبر من الكمية المتاحة و ده طبعا مينفعش
حاولت استخدم الكود ده في DataGridView1_CellEndEdit و مش شغال بيظهر الرساله و بيكمل عادي
كود : For q As Integer = 0 To DataGridView1.Rows.Count - 1
Dim IQty, SQty As Double
IQty = Val(DataGridView1(5, DataGridView1.CurrentRow.Index).Value)
SQty = Val(DataGridView1(6, DataGridView1.CurrentRow.Index).Value)
If SQty > IQty Then
MsgBox("الكمية المطلوبة أكبر من الكمية المتاحة")
Return
End If
'Next
ارجو المساعدة و شكرا لكم
و عليكم السلام و رحمة الله و بركاته
بدل كلمة Return
ضع كلمة Exit sub
المشاركات : 2,055
المواضيع 49
الإنتساب : Oct 2017
السمعة :
538
الشكر: 10589
تم شكره 5331 مرات في 2095 مشاركات
03-06-20, 05:52 AM
(آخر تعديل لهذه المشاركة : 03-06-20, 06:16 AM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته
اخي الكريم اليك هذا الكود سيتم التحقق من الكمية واذا كانت اكبر ستظهر رسالة وعند الضغط عليها
نفرغ الخلية ثم نعطي امرا باختيار الخلية عبر تفعيل مفاتيح الاسهم بالكود
كود : Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
' تعريف متغير رقمي يأخذ اندكس الصف الحالي
Dim dd As Integer = DataGridView1.CurrentRow.Index
For q As Integer = 0 To DataGridView1.Rows.Count - 1
Dim IQty, SQty As Double
IQty = DataGridView1.CurrentRow.Cells(2).Value
SQty = DataGridView1.CurrentRow.Cells(3).Value
If SQty > IQty Then
MsgBox("الكمية المطلوبة أكبر من الكمية المتاحة")
' تفريغ الخلية
DataGridView1.CurrentRow.Cells(3).Value = Nothing
' اختيار الخلية
DataGridView1.Rows(dd).Cells(3).Selected = True
'تحتاج الى تنفيذ السطر التالي مرة واحدة للرجوع الى السطر
SendKeys.Send("{UP}")
'تحتاج الى تنفيذ السطر التالي بعدد رقم الخلية
SendKeys.Send("{Right}")
SendKeys.Send("{Right}")
SendKeys.Send("{Right}")
' الخروج من الصب
Exit Sub
End If
Next
End Sub
ملاحظة: انا افترضت خلية المخزن اندكس 2 والكمية المطلوبة اندكس 3 يمكنك التعديل وفق اندكس الخلايا التي لديك
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
المشاركات : 16
المواضيع 6
الإنتساب : Apr 2020
السمعة :
0
الشكر: 9
تم شكره 11 مرات في 10 مشاركات
03-06-20, 01:33 PM
(آخر تعديل لهذه المشاركة : 03-06-20, 01:47 PM {2} بواسطة stiger.)
(03-06-20, 01:16 AM)WaeLx كتب : و عليكم السلام و رحمة الله و بركاته
بدل كلمة Return
ضع كلمة Exit sub
مشكور يا اخي
و لكن للاسف لا يعمل
(03-06-20, 05:52 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم اليك هذا الكود سيتم التحقق من الكمية واذا كانت اكبر ستظهر رسالة وعند الضغط عليها
نفرغ الخلية ثم نعطي امرا باختيار الخلية عبر تفعيل مفاتيح الاسهم بالكود
كود : Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
' تعريف متغير رقمي يأخذ اندكس الصف الحالي
Dim dd As Integer = DataGridView1.CurrentRow.Index
For q As Integer = 0 To DataGridView1.Rows.Count - 1
Dim IQty, SQty As Double
IQty = DataGridView1.CurrentRow.Cells(2).Value
SQty = DataGridView1.CurrentRow.Cells(3).Value
If SQty > IQty Then
MsgBox("الكمية المطلوبة أكبر من الكمية المتاحة")
' تفريغ الخلية
DataGridView1.CurrentRow.Cells(3).Value = Nothing
' اختيار الخلية
DataGridView1.Rows(dd).Cells(3).Selected = True
'تحتاج الى تنفيذ السطر التالي مرة واحدة للرجوع الى السطر
SendKeys.Send("{UP}")
'تحتاج الى تنفيذ السطر التالي بعدد رقم الخلية
SendKeys.Send("{Right}")
SendKeys.Send("{Right}")
SendKeys.Send("{Right}")
' الخروج من الصب
Exit Sub
End If
Next
End Sub
ملاحظة: انا افترضت خلية المخزن اندكس 2 والكمية المطلوبة اندكس 3 يمكنك التعديل وفق اندكس الخلايا التي لديك
تمت التجربة و لم يعمل ايضا و يظهر رسالة خطأ ان لا يمكن ان تكون قيمة السعر فارغة و كل القيمة موجودة و ظاهره اساسا
المشاركات : 2,325
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13937
تم شكره 5689 مرات في 2272 مشاركات
03-06-20, 01:48 PM
(آخر تعديل لهذه المشاركة : 03-06-20, 01:49 PM {2} بواسطة asemshahen5.)
PHP كود : Private Sub DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit If e.ColumnIndex = 3 Then Dim IQty, SQty As Double IQty = Val(DataGridView1(2, DataGridView1.CurrentRow.Index).Value) SQty = Val(DataGridView1(3, DataGridView1.CurrentRow.Index).Value) If SQty > IQty Then MsgBox("الكمية المطلوبة أكبر من الكمية المتاحة") Return End If End If End Sub
التعليمة اللي عايزها مش لازمها لوب .
المشاركات : 16
المواضيع 6
الإنتساب : Apr 2020
السمعة :
0
الشكر: 9
تم شكره 11 مرات في 10 مشاركات
(03-06-20, 01:48 PM)asemshahen5 كتب : PHP كود : Private Sub DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit If e.ColumnIndex = 3 Then Dim IQty, SQty As Double IQty = Val(DataGridView1(2, DataGridView1.CurrentRow.Index).Value) SQty = Val(DataGridView1(3, DataGridView1.CurrentRow.Index).Value) If SQty > IQty Then MsgBox("الكمية المطلوبة أكبر من الكمية المتاحة") Return End If End If End Sub
التعليمة اللي عايزها مش لازمها لوب . مشكور يا غالي علي الرد
جربت الكود و لا يعمل بيتم ادخال القيمة عادي و هيا اكبر من القيمة المتاحة
المشاركات : 2,055
المواضيع 49
الإنتساب : Oct 2017
السمعة :
538
الشكر: 10589
تم شكره 5331 مرات في 2095 مشاركات
03-06-20, 08:10 PM
(آخر تعديل لهذه المشاركة : 03-06-20, 08:13 PM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته
جزاك الله كل خير اخي عاصم انت محق لاداعي لجملة الفور
اخي الكريم اولا سؤالك عن التحقق من ان القيمة اكبر من المتاح اما موضوع السعر فهو شيء مفروغ منه طبعا يجب ادخال السعر ولو ان سؤالك متعلق بجزئية الكمية
من ناحية اخرى عندما تضع الكمية وتكتبها في الخلية طبيعي لن يحصل شيئ الا اذا انتقلت الى خلية اخرى اما بمفتاح تاب لانك تستخدم حذث cellEndEdit وليس حدث تغيير القيمة
ويجب الانتقال او الادخال حتر يتم كود التحقق
ناحية اخرى هل تتعامل في الكمية بالفاصلة حتى يكون نوع البيانات double
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
المشاركات : 16
المواضيع 6
الإنتساب : Apr 2020
السمعة :
0
الشكر: 9
تم شكره 11 مرات في 10 مشاركات
(03-06-20, 08:10 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
جزاك الله كل خير اخي عاصم انت محق لاداعي لجملة الفور
اخي الكريم اولا سؤالك عن التحقق من ان القيمة اكبر من المتاح اما موضوع السعر فهو شيء مفروغ منه طبعا يجب ادخال السعر ولو ان سؤالك متعلق بجزئية الكمية
من ناحية اخرى عندما تضع الكمية وتكتبها في الخلية طبيعي لن يحصل شيئ الا اذا انتقلت الى خلية اخرى اما بمفتاح تاب لانك تستخدم حذث cellEndEdit وليس حدث تغيير القيمة
ويجب الانتقال او الادخال حتر يتم كود التحقق
ناحية اخرى هل تتعامل في الكمية بالفاصلة حتى يكون نوع البيانات double
اللي اما محتاجة هوا التحقق التحقق من كمية ان تكون اقل من المتاحة فقط
كان اللي بيحصل قبل اضاقة الكود :: عند تعديل الكميه في الداتا جريد فيو يتم اضافة قيمة الكمية و اجمالي السعر في قاعده البيانات
اللي بيحصل معايا ان بكتب كمية اكبر او قل من الكمية المتاحة بيضيفها في الداتا جريد فيو و بيظهر رسالة التنبيه ف الحالتين
اتمني تكون الفكرة وصلت
و شكرا لكم
المشاركات : 2,055
المواضيع 49
الإنتساب : Oct 2017
السمعة :
538
الشكر: 10589
تم شكره 5331 مرات في 2095 مشاركات
السلام عليكم اخي الكريم
ضع مثال مصغر لماتريد ختى يمكن مساعدتك مني او من اي احد من اخوتك في المنتدى
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
المشاركات : 16
المواضيع 6
الإنتساب : Apr 2020
السمعة :
0
الشكر: 9
تم شكره 11 مرات في 10 مشاركات
(03-06-20, 09:32 PM)ابراهيم ايبو كتب : السلام عليكم اخي الكريم
ضع مثال مصغر لماتريد ختى يمكن مساعدتك مني او من اي احد من اخوتك في المنتدى
تسلم يا غالي
تم ارفاق مثال
WindowsApp1.zip (الحجم : 80.28 ك ب / التحميلات : 27)
المطلوب عند التعديل علي الكيمة المباعة اذا كانت اكبر من الكمية المتاحة ان لا يقوم بحفظها ف قاعدة البيانات و ان يظهر رساله تنبيه
و شكرا
|