منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كميه مباعه اكبر من كميه مخزنه
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 
كيف اجعل برنامج لايفعل شي عندما تكون كميه مباعه اكبر من كميه موجود هدا كود قمت بكتابته في حدث keydown خاص بالكميه المباعه 
للعلم تظهر حتا في حالة ادخلت كميه اقل رساله خطا انه كميه غير متاحه ياريت الي يعرف يفيديني
كود :
Private Sub txtqty_KeyDown(sender As Object, e As KeyEventArgs) Handles txtqty.KeyDown
       'لو كميه تباع اكبر من كميه مخزنه
       Dim id_prod3, qty3 As Integer
       If e.KeyCode = Keys.Enter Then
           For a As Integer = 0 To DGV_PRODUCT.Rows.Count - 1
               id_prod3 = DGV_PRODUCT.Rows(a).Cells(0).Value
               qty3 = DGV_PRODUCT.Rows(a).Cells(2).Value

               cmd = New SqlCommand("select *from products where id_product=@id_prod3 and qty>=@qty3 ", Module1.con)
               cmd.Parameters.Add("@id_prod3", SqlDbType.Int).Value = id_prod3
               cmd.Parameters.Add("@qty3", SqlDbType.Int).Value = qty3

               Module1.con.Open()
               cmd.ExecuteNonQuery()
               Module1.con.Close()
           Next
           MessageBox.Show("كمية غير متاحه")
           Exit Sub
       End If
   End Sub
سؤال :
ماذا تعني (keydown) ؟؟
(01-10-22, 06:39 PM)Taha Okla كتب : [ -> ]سؤال :
ماذا تعني (keydown) ؟؟

يقع هذا الحدث عندما نضغط فوق أحد أزرار لوحة المفاتيح وقبل الإفلات، وهو يقدم وسيطين هما:

Keycode: وهو يمثل رقم المفتاح المضغوط، وهذا الرقم يشمل مفاتيح التحكم أيضاً.

Shift: ويستخدم لمعرفة إن كان أحد مفاتيح التحكم (Ctrl, Alt, Shift) مضغوطاً أثناء ضغط المفتاح، فهذا الوسيط يمكن أن يأخذ إحدى القيم التالية:

1 ويعني أن المفتاح Shift مضغوطاً أثناء ضغط المفتاح.

2 ويعني أن المفتاح Ctrl مضغوطاً أثناء ضغط المفتاح.

4 ويعني أن المفتاح Alt مضغوطاً أثناء ضغط المفتاح.
ما دام كنت تعرف أن هذا حدث يتعلق بأحداث الكيبورد،، 
فلماذا تظن بأن له علاقة بكمية المادة ؟؟؟

لو وضعت الكود في (keydown)  أو غيره ستظهر لك هذه الرسالة (الكمية غير متاحة)

--

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

الفيجول بيزك ليس باللغة القياسية التي تعطيك أنك أخطأت.. مقارنة باللغات الأخرى
فكثير من المشكلات يقع فيها المبرمج ولكن الفيجول بيزك يقوم بتحليل تلك المشكلة ويفسرها بطريقة يتجاوز فيها الخطأ
فإن فشل عن تصحيح الخطأ(برأي الفيجول بيزك) سيقوم وقتها بإخبارك بأنه وقع خطأ ..
فأحيانا قد يفسر كود المبرمج بشيء آخر غير الذي أراده المبرمج..
فينفذ شيء آخر غير الذي يريده.. دون أن يعرف المبرمج..
فقد يعمل برنامجك لعشرات الايام وهو ينفذ بين الحين والاخر أوامر خاطئة .. وفبماذا ستفسر للعميل سبب النتائج الخاطئة التي سيعطيها البرنامج ؟؟

الأساسيات مهمة جداً لكل مبرمج (مبتدئ أم محترف)..


--

في كودك : يجب أن يكون الشرط في كودك ليس الضغط على الزر ( If e.KeyCode = Keys.Enter Then)  هذا خطأ في المنطق وخطأ بكل المقاييس
بل يجب أن يكون الشرط أن يشيك على المادة التي تريد إدخالها بفاتورة(اخراجها من الكمية المتاحة)
ويشيك على كميتها بجدول الكميات .. 
وبعدها يقرر الكود ينفذ أو لااا ..

أيضاً لا يشيك البرنامج على الكميات بعد ادخالها في مربع النص ..
بل يشيك في كود الحفظ أو الترحيل إلى فاتورة أو تصدير .. لماذا ؟؟!! 
لأنه قد يكون لديه الكمية بل لم يكن لديه الوقت الكافي لإدخالها للبرنامج ..
فيعطي رسالة تنبيه لمدخل البيانات بأن الكمية غير متاحة .. فهل يريد الاستمرار 
فإن كان مدخل البيانات بأن لديه كمية كافية (في علمه) وهي لم تدخل للبرنامج حتى الان ( سيختار  استمرار لينفذ البرنامج ويسجل العملية سواء ببيع أو تصدير أو ترحيل كمية)  -- وبعد أن تتفرغ لجنة المشتريات من التشييك على البضاعة ستقوم بتسجيلها في البرنامج . (مع أنها خرجت بفاتروة مبيعات قبل أن تدخل).. وهذه عملية منطقية..
فلو جعلت شرط البيع وجود الكمية- سيقف برنامجك عن العمل من أول شهر له في السوق..
كثير من التجار يبيعون بفواتير كميات ليس موجودة عندهم .. لأنهم يوفرونها من محلات ومخازن تجار آخرين.. يبيعوها قبل أن يشتروها.
(01-10-22, 06:42 PM)ali_ahmed12 كتب : [ -> ]
(01-10-22, 06:39 PM)Taha Okla كتب : [ -> ]سؤال :
ماذا تعني (keydown) ؟؟

يقع هذا الحدث عندما نضغط فوق أحد أزرار لوحة المفاتيح وقبل الإفلات، وهو يقدم وسيطين هما:

Keycode: وهو يمثل رقم المفتاح المضغوط، وهذا الرقم يشمل مفاتيح التحكم أيضاً.

Shift: ويستخدم لمعرفة إن كان أحد مفاتيح التحكم (Ctrl, Alt, Shift) مضغوطاً أثناء ضغط المفتاح، فهذا الوسيط يمكن أن يأخذ إحدى القيم التالية:

1 ويعني أن المفتاح Shift مضغوطاً أثناء ضغط المفتاح.

2 ويعني أن المفتاح Ctrl مضغوطاً أثناء ضغط المفتاح.

4 ويعني أن المفتاح Alt مضغوطاً أثناء ضغط المفتاح.

رائع جدًا ،
ولكن زين لو تأتي بمثال بسيط لتوضيح كيفية اسخدام keydown مع كل وسيط 
ولك خالص الشكر .
(01-10-22, 07:10 PM)أبو خالد الشكري كتب : [ -> ]
(01-10-22, 06:42 PM)ali_ahmed12 كتب : [ -> ]
(01-10-22, 06:39 PM)Taha Okla كتب : [ -> ]سؤال :
ماذا تعني (keydown) ؟؟

يقع هذا الحدث عندما نضغط فوق أحد أزرار لوحة المفاتيح وقبل الإفلات، وهو يقدم وسيطين هما:

Keycode: وهو يمثل رقم المفتاح المضغوط، وهذا الرقم يشمل مفاتيح التحكم أيضاً.

Shift: ويستخدم لمعرفة إن كان أحد مفاتيح التحكم (Ctrl, Alt, Shift) مضغوطاً أثناء ضغط المفتاح، فهذا الوسيط يمكن أن يأخذ إحدى القيم التالية:

1 ويعني أن المفتاح Shift مضغوطاً أثناء ضغط المفتاح.

2 ويعني أن المفتاح Ctrl مضغوطاً أثناء ضغط المفتاح.

4 ويعني أن المفتاح Alt مضغوطاً أثناء ضغط المفتاح.

رائع جدًا ،
ولكن زين لو تأتي بمثال بسيط لتوضيح كيفية اسخدام keydown مع كل وسيط 
ولك خالص الشكر .
ادخل إلى الحدث KeyDown الخاص بالنافذة واكتب التالي

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

 If Shift = 1 And KeyCode = 27 Then End

End Sub

أي إذا تم ضغط Shift+Esc قم بإنهاء البرنامج.
شكرًا جزيلا لك 
ما قصرت