23-11-17, 04:15 AM
PHP كود :
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
dgv_data.AllowUserToAddRows = False
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress
Select Case e.KeyChar
Case ChrW(Keys.Enter)
Dim code = sender.Text.Trim
Dim qty As Integer = 1
Dim spP() As String = sender.Text.Trim.Split("+")
If spP.Count = 2 Then
code = spP(0)
qty = Val(spP(1))
End If
Dim spM() As String = sender.Text.Trim.Split("-")
If spM.Count = 2 Then
code = spM(0)
qty = -spM(1)
End If
Using dp As New OleDb.OleDbDataAdapter("SELECT * FROM [Items] WHERE [ItemCode] = @code", con)
dp.SelectCommand.Parameters.AddWithValue("@code", code)
Dim dt_itm As New DataTable
If dp.Fill(dt_itm) > 0 Then
Dim r As DataRow = dt_itm.Rows(0)
dgv_data.ClearSelection()
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value = r("ItemCode")).SingleOrDefault
If IsNothing(dgvRow) Then
If qty > 0 Then
Dim total As Double = (qty * Val(r("ItemPrice"))).ToString("0.00")
dgv_data.Rows.Add(r("ItemCode"), r("ItemName"), r("ItemPrice"), qty, total)
dgv_data.FirstDisplayedScrollingRowIndex = dgv_data.Rows.Count - 1
dgv_data.Rows(dgv_data.Rows.Count - 1).Selected = True
End If
Else
dgvRow.Cells(3).Value += qty
Dim total As Double = (Val(dgvRow.Cells(2).Value) * Val(dgvRow.Cells(3).Value)).ToString("0.00")
dgvRow.Cells(4).Value = total
dgv_data.FirstDisplayedScrollingRowIndex = dgvRow.Index
dgv_data.Rows(dgvRow.Index).Selected = True
If dgvRow.Cells(3).Value <= 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)
End If
sender.Clear()
sender.Select()
Else
MsgBox("Item not found")
End If
End Using
Case "+"
If sender.Text.Trim = "" Then
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
If Not IsNothing(dgvRow) Then
dgvRow.Cells(3).Value += 1
Dim total As Double = (Val(dgvRow.Cells(2).Value) * Val(dgvRow.Cells(3).Value)).ToString("0.00")
dgvRow.Cells(4).Value = total
End If
e.Handled = True
End If
Case "-"
If sender.Text.Trim = "" Then
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows).LastOrDefault
If Not IsNothing(dgvRow) Then
dgvRow.Cells(3).Value -= 1
Dim total As Double = (Val(dgvRow.Cells(2).Value) * Val(dgvRow.Cells(3).Value)).ToString("0.00")
dgvRow.Cells(4).Value = total
If dgvRow.Cells(3).Value = 0 Then Me.dgv_data.Rows.RemoveAt(dgvRow.Index)
End If
e.Handled = True
End If
End Select
End Sub
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs) Handles TextBox1.KeyUp
Dim dgvRow As DataGridViewRow = (From x In Me.dgv_data.Rows Where x.Cells(0).Value = Val(sender.Text)).SingleOrDefault
If Not IsNothing(dgvRow) Then
dgv_data.ClearSelection()
dgv_data.FirstDisplayedScrollingRowIndex = dgvRow.Index
dgv_data.Rows(dgvRow.Index).Selected = True
End If
If e.KeyCode = Keys.Delete Then
If Not IsNothing(dgvRow) Then
dgv_data.Rows.Remove(dgvRow)
dgv_data.ClearSelection()
sender.Clear()
End If
End If
End Sub