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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : خصم الكميات الموجوده باكتر من تاريخ (/showthread.php?tid=35715)

الصفحات: 1 2


RE: خصم الكميات الموجوده باكتر من تاريخ - NABILWARSAW - 20-07-20

شكرا يا بشمهندس بالفعل نفذت المطلوب


RE: خصم الكميات الموجوده باكتر من تاريخ - NABILWARSAW - 20-07-20

شكرا لكل الاساتذه المحترمين الى ردوا بس لو حد دخل علشان يستفاد بشكل اعمق يلاقى حل لمشكله بتواجه كتير مننا 
الى هى عنوان الموضوع 
الفكره الى عايز اطبقها هو بمجرد استعلام عن الصنف واخر تاريخ 
يبقى لو الكميه اكبر من الكمية المباعه يبقى يعمل ابديت لو مساويه يحذف لو اكبر  ياخد القيمه المتبقيه ويعيد الاستعلام تانى 
الرجاء المساعده فى الكود علشان نقفل الموضوع بحل فى الاخر يفيد اى حد يدخل يقرى الموضوع
انا كاتب جزء من الكود وهى فى حالة انه اقل من الكميه وطالع معايا خطا
كود :
  For Each r As DataGridViewRow In dgvprodac.Rows
           Dim ad As Integer = Val(r.Cells(0).Value)
           Dim txP As String = Val(r.Cells(1).Value)
           Dim xt As Single = Val(r.Cells(2).Value)
           Dim txC As Integer = Val(r.Cells(3).Value)
           Dim cmd As OleDbCommand = New OleDbCommand("SELECT date_ex, sanf_kem from store WHERE ID_sanf =@pass ORDER BY  date_ex", con)
           cmd.Parameters.Add(New OleDbParameter("@pass", ad))
           If con.State = ConnectionState.Open Then
               con.Close()
           End If
           con.Open()
           Dim dr As OleDbDataReader = cmd.ExecuteReader
           While dr.Read()
               DateTimePicker1.Value = dr(0)
               TextBox5.Text = dr(1)
               con.Close()
               dr.Close()
               Exit While
           End While
           If Val(TextBox5.Text) > xt Then
               md.CommandText = String.Format(" UPDATE [store] SET [sanf_kem] = sanf_kem -{0}  WHERE [ID_sanf] = {1} and [date_ex] ={2}", xt, ad, dr(0))
               con.Open()
               md.ExecuteNonQuery()
               con.Close()
           End If
       Next



RE: خصم الكميات الموجوده باكتر من تاريخ - WaeLx - 20-07-20

(20-07-20, 03:15 AM)NABILWARSAW كتب : شكرا لكل الاساتذه المحترمين الى ردوا بس لو حد دخل علشان يستفاد بشكل اعمق يلاقى حل لمشكله بتواجه كتير مننا 
الى هى عنوان الموضوع 
الفكره الى عايز اطبقها هو بمجرد استعلام عن الصنف واخر تاريخ 
يبقى لو الكميه اكبر من الكمية المباعه يبقى يعمل ابديت لو مساويه يحذف لو اكبر  ياخد القيمه المتبقيه ويعيد الاستعلام تانى 
الرجاء المساعده فى الكود علشان نقفل الموضوع بحل فى الاخر يفيد اى حد يدخل يقرى الموضوع
انا كاتب جزء من الكود وهى فى حالة انه اقل من الكميه وطالع معايا خطا
كود :
  For Each r As DataGridViewRow In dgvprodac.Rows
           Dim ad As Integer = Val(r.Cells(0).Value)
           Dim txP As String = Val(r.Cells(1).Value)
           Dim xt As Single = Val(r.Cells(2).Value)
           Dim txC As Integer = Val(r.Cells(3).Value)
           Dim cmd As OleDbCommand = New OleDbCommand("SELECT date_ex, sanf_kem from store WHERE ID_sanf =@pass ORDER BY  date_ex", con)
           cmd.Parameters.Add(New OleDbParameter("@pass", ad))
           If con.State = ConnectionState.Open Then
               con.Close()
           End If
           con.Open()
           Dim dr As OleDbDataReader = cmd.ExecuteReader
           While dr.Read()
               DateTimePicker1.Value = dr(0)
               TextBox5.Text = dr(1)
               con.Close()
               dr.Close()
               Exit While
           End While
           If Val(TextBox5.Text) > xt Then
               md.CommandText = String.Format(" UPDATE [store] SET [sanf_kem] = sanf_kem -{0}  WHERE [ID_sanf] = {1} and [date_ex] ={2}", xt, ad, dr(0))
               con.Open()
               md.ExecuteNonQuery()
               con.Close()
           End If
       Next

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

يفضل وضع رسالة الخطأ حتى تتسنى المساعدة

و ربما الخطأ في هذه الجزئية

كود :
[sanf_kem] = sanf_kem -{0}


أنت تحتاجها تساوي صفر، فلم لا تجعلها صفر مباشرة؟

كود :
[sanf_kem] = 0



RE: خصم الكميات الموجوده باكتر من تاريخ - NABILWARSAW - 20-07-20

ده باراميتر مش صفر


RE: خصم الكميات الموجوده باكتر من تاريخ - WaeLx - 20-07-20

(20-07-20, 06:50 PM)NABILWARSAW كتب : ده باراميتر مش صفر


عارف انه مش صفر و انه الباراميتر الاول (xt)

انا بتكلم على الكود نفسه انه في حالة الصنف المباع اكثر من الكمية بالتاريخ الاقدم فبيخليها صفر و ده الشرط اللي انت حاطه في الكود

كود :
If Val(TextBox5.Text) > xt