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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : مساعده فى تعديل كود فاتورة مبيعات (/showthread.php?tid=21002)



مساعده فى تعديل كود فاتورة مبيعات - نبيل كونكت - 10-07-17

كود :
Private Sub btnsave_Click(sender As Object, e As EventArgs) Handles btnsave.Click
      Dim cmd As New OleDbCommand(String.Empty, con)
      Dim ss As String
      con.Open()
      For Each r As DataGridViewRow In dgvprodac.Rows
          Dim ad As Integer = Val(r.Cells(0).Value)
          Dim txt As Integer = Val(r.Cells(2).Value)
          cmd.CommandText = String.Format(" UPDATE [tab_pro] SET [qty] = qty -{0} WHERE [id] = {1} ", txt, ad)
          cmd.ExecuteNonQuery()
      Next
      Try
          ss = "INSERT INTO [tabolder] ([prosh], [sailman],[shirid]) VALUES (@date, @sailman, @ID)"
          Dim md As New OleDbCommand(ss, con)
          md.Parameters.AddWithValue("@date", dtolder.Value.Date)
          md.Parameters.AddWithValue("@sailman", TXTGNAME.Text)
          md.Parameters.AddWithValue("@ID", txtnamper.Text)
          'con.Open()
          md.ExecuteNonQuery()
          md.CommandText = "SELECT @@IDENTITY"
          md = New OleDb.OleDbCommand("select max(shirid) from tabolder", con)
          Dim dm As OleDb.OleDbDataReader = md.ExecuteReader
          dm.Read()
          Dim id_shirid As Integer = dm(0)
          dm.Close()
          Dim id_pro, qty As Integer
          Dim price, amount As Single
          'المشكله هنا
          ss = "insert into [prosh_older] ([itemid], [qtnitem], [unititem], [totitem], [idpro]) values (@itemid, @qtnitem, @unititem, @totitem, @idpro)"
          md = New OleDb.OleDbCommand(ss, con)
          For u As Integer = 0 To dgvprodac.RowCount - 2
              id_pro = dgvprodac.Rows(u).Cells(0).Value
              qty = dgvprodac.Rows(u).Cells(2).Value
              price = dgvprodac.Rows(u).Cells(3).Value
              amount = dgvprodac.Rows(u).Cells(4).Value
              md.Parameters.Add(New OleDb.OleDbParameter("@itemid", OleDb.OleDbType.Integer)).Value = id_pro
              md.Parameters.Add(New OleDb.OleDbParameter("@qtnitem", OleDb.OleDbType.Integer)).Value = qty
              md.Parameters.Add(New OleDb.OleDbParameter("@unititem", OleDb.OleDbType.Currency)).Value = price
              md.Parameters.Add(New OleDb.OleDbParameter("@totitem", OleDb.OleDbType.Currency)).Value = amount
              md.Parameters.Add(New OleDb.OleDbParameter("@idpro", OleDb.OleDbType.Integer)).Value = id_shirid
              md.ExecuteNonQuery()
          Next
      Catch ex As Exception
      End Try
      sqlstr = "select max (shirid) +1 from [tabolder] "
      cmd = New OleDbCommand(sqlstr, con)
      txtnamper.Text = cmd.ExecuteScalar()
      con.Close()
      MsgBox("تم حفظ الفاتوره")
      dt.Rows.Clear()
      txttotal.Clear()
      Label15.Text = "..."
  End Sub
ده الكود والمشكله فى الجزء ده من الكود على ما اظن
كود :
ss = "insert into [prosh_older] ([itemid], [qtnitem], [unititem], [totitem], [idpro]) values (@itemid, @qtnitem, @unititem, @totitem, @idpro)"
          md = New OleDb.OleDbCommand(ss, con)
          For u As Integer = 0 To dgvprodac.RowCount - 2
              id_pro = dgvprodac.Rows(u).Cells(0).Value
              qty = dgvprodac.Rows(u).Cells(2).Value
              price = dgvprodac.Rows(u).Cells(3).Value
              amount = dgvprodac.Rows(u).Cells(4).Value
              md.Parameters.Add(New OleDb.OleDbParameter("@itemid", OleDb.OleDbType.Integer)).Value = id_pro
              md.Parameters.Add(New OleDb.OleDbParameter("@qtnitem", OleDb.OleDbType.Integer)).Value = qty
              md.Parameters.Add(New OleDb.OleDbParameter("@unititem", OleDb.OleDbType.Currency)).Value = price
              md.Parameters.Add(New OleDb.OleDbParameter("@totitem", OleDb.OleDbType.Currency)).Value = amount
              md.Parameters.Add(New OleDb.OleDbParameter("@idpro", OleDb.OleDbType.Integer)).Value = id_shirid
              md.ExecuteNonQuery()

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


RE: مساعده فى تعديل كود فاتورة مبيعات - 23656 - 10-07-17

كود :
   Private Sub btnsave_Click(sender As Object, e As EventArgs) Handles btnsave.Click

       If con.State <> ConnectionState.Open Then con.Open()

       Dim id_shirid As Integer

       Using cmd As New OleDb.OleDbCommand("UPDATE [tab_pro] SET [qty]=[qty]-@qty WHERE [id]=@id ", con)
           For Each r As DataGridViewRow In dgvprodac.Rows
               cmd.Parameters.Clear()
               cmd.Parameters.AddWithValue("@qty", Val(r.Cells(0).Value))
               cmd.Parameters.AddWithValue("@id", Val(r.Cells(2).Value))
               cmd.ExecuteNonQuery()
           Next
       End Using

       Using cmd As New OleDb.OleDbCommand("INSERT INTO [tabolder] ([prosh], [sailman],[shirid]) VALUES (@date, @sailman, @ID)", con)
           cmd.Parameters.AddWithValue("@date", dtolder.Value.Date)
           cmd.Parameters.AddWithValue("@sailman", TXTGNAME.Text)
           cmd.Parameters.AddWithValue("@ID", txtnamper.Text)
           cmd.ExecuteNonQuery()
           cmd.CommandText = "SELECT @@IDENTITY"
           id_shirid = cmd.ExecuteScalar
       End Using

       Using cmd As New OleDb.OleDbCommand("INSERT INTO [prosh_older] ([itemid], [qtnitem], [unititem], [totitem], [idpro]) VALUES (@itemid, @qtnitem, @unititem, @totitem, @idpro)", con)
           For Each r As DataGridViewRow In dgvprodac.Rows
               cmd.Parameters.Clear()
               cmd.Parameters.AddWithValue("@itemid", r.Cells(0).Value)
               cmd.Parameters.AddWithValue("@qtnitem", r.Cells(2).Value)
               cmd.Parameters.AddWithValue("@unititem", r.Cells(3).Value)
               cmd.Parameters.AddWithValue("@totitem", r.Cells(4).Value)
               cmd.Parameters.AddWithValue("@idpro", id_shirid)
               cmd.ExecuteNonQuery()
           Next
       End Using

       Using cmd As New OleDb.OleDbCommand("SELECT MAX(shirid)+1 FROM [tabolder]", con)
           txtnamper.Text = cmd.ExecuteScalar()
       End Using

       con.Close()

       MsgBox("تم حفظ الفاتوره")
       txttotal.Clear()
       Label15.Text = "..."

   End Sub



RE: مساعده فى تعديل كود فاتورة مبيعات - نبيل كونكت - 10-07-17

برنس
الف شكر يا بشمهندس


RE: مساعده فى تعديل كود فاتورة مبيعات - نبيل كونكت - 10-07-17

(10-07-17, 02:51 PM)نبيل كونكت كتب :
كود :
Private Sub btnsave_Click(sender As Object, e As EventArgs) Handles btnsave.Click
      Dim cmd As New OleDbCommand(String.Empty, con)
      Dim ss As String
      con.Open()
      For Each r As DataGridViewRow In dgvprodac.Rows
          Dim ad As Integer = Val(r.Cells(0).Value)
          Dim txt As Integer = Val(r.Cells(2).Value)
          cmd.CommandText = String.Format(" UPDATE [tab_pro] SET [qty] = qty -{0} WHERE [id] = {1} ", txt, ad)
          cmd.ExecuteNonQuery()
      Next
      Try
          ss = "INSERT INTO [tabolder] ([prosh], [sailman],[shirid]) VALUES (@date, @sailman, @ID)"
          Dim md As New OleDbCommand(ss, con)
          md.Parameters.AddWithValue("@date", dtolder.Value.Date)
          md.Parameters.AddWithValue("@sailman", TXTGNAME.Text)
          md.Parameters.AddWithValue("@ID", txtnamper.Text)
          'con.Open()
          md.ExecuteNonQuery()
          md.CommandText = "SELECT @@IDENTITY"
          md = New OleDb.OleDbCommand("select max(shirid) from tabolder", con)
          Dim dm As OleDb.OleDbDataReader = md.ExecuteReader
          dm.Read()
          Dim id_shirid As Integer = dm(0)
          dm.Close()
          Dim id_pro, qty As Integer
          Dim price, amount As Single
          'المشكله هنا
          ss = "insert into [prosh_older] ([itemid], [qtnitem], [unititem], [totitem], [idpro]) values (@itemid, @qtnitem, @unititem, @totitem, @idpro)"
          md = New OleDb.OleDbCommand(ss, con)
          For u As Integer = 0 To dgvprodac.RowCount - 2
              id_pro = dgvprodac.Rows(u).Cells(0).Value
              qty = dgvprodac.Rows(u).Cells(2).Value
              price = dgvprodac.Rows(u).Cells(3).Value
              amount = dgvprodac.Rows(u).Cells(4).Value
              md.Parameters.Add(New OleDb.OleDbParameter("@itemid", OleDb.OleDbType.Integer)).Value = id_pro
              md.Parameters.Add(New OleDb.OleDbParameter("@qtnitem", OleDb.OleDbType.Integer)).Value = qty
              md.Parameters.Add(New OleDb.OleDbParameter("@unititem", OleDb.OleDbType.Currency)).Value = price
              md.Parameters.Add(New OleDb.OleDbParameter("@totitem", OleDb.OleDbType.Currency)).Value = amount
              md.Parameters.Add(New OleDb.OleDbParameter("@idpro", OleDb.OleDbType.Integer)).Value = id_shirid
              md.ExecuteNonQuery()
          Next
      Catch ex As Exception
      End Try
      sqlstr = "select max (shirid) +1 from [tabolder] "
      cmd = New OleDbCommand(sqlstr, con)
      txtnamper.Text = cmd.ExecuteScalar()
      con.Close()
      MsgBox("تم حفظ الفاتوره")
      dt.Rows.Clear()
      txttotal.Clear()
      Label15.Text = "..."
  End Sub
ده الكود والمشكله فى الجزء ده من الكود على ما اظن
كود :
ss = "insert into [prosh_older] ([itemid], [qtnitem], [unititem], [totitem], [idpro]) values (@itemid, @qtnitem, @unititem, @totitem, @idpro)"
          md = New OleDb.OleDbCommand(ss, con)
          For u As Integer = 0 To dgvprodac.RowCount - 2
              id_pro = dgvprodac.Rows(u).Cells(0).Value
              qty = dgvprodac.Rows(u).Cells(2).Value
              price = dgvprodac.Rows(u).Cells(3).Value
              amount = dgvprodac.Rows(u).Cells(4).Value
              md.Parameters.Add(New OleDb.OleDbParameter("@itemid", OleDb.OleDbType.Integer)).Value = id_pro
              md.Parameters.Add(New OleDb.OleDbParameter("@qtnitem", OleDb.OleDbType.Integer)).Value = qty
              md.Parameters.Add(New OleDb.OleDbParameter("@unititem", OleDb.OleDbType.Currency)).Value = price
              md.Parameters.Add(New OleDb.OleDbParameter("@totitem", OleDb.OleDbType.Currency)).Value = amount
              md.Parameters.Add(New OleDb.OleDbParameter("@idpro", OleDb.OleDbType.Integer)).Value = id_shirid
              md.ExecuteNonQuery()

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

قيمة idpro فى prosh_older ةاخده قيمه غلط مش هى shirid فى tabolder


RE: مساعده فى تعديل كود فاتورة مبيعات - نبيل كونكت - 10-07-17

بس اتحلت الحمد لله
غيرت دى id_shirid = cmd.ExecuteScalar
لــــ دى id_shirid = txtnamper.Text