Imports System Imports System.Data Imports System.Data.SqlClient Imports System.IO Imports System.Text Public Class PPReceiveForm Private cnstr = mainForm.cnstr Private conn As New SqlConnection(cnstr) Private myQuery As String = String.Empty Private myCommand As SqlCommand Private adapter As SqlDataAdapter = New SqlDataAdapter() Private ds As New DataSet("Machines") Private i, limit As Integer Private oldMchCode As String = String.Empty Private addMode, editMode As Integer Private row As Integer Private Sub PPReceiveForm_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated txtStart.Focus() End Sub Private Sub machineForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.MdiParent = mainForm Control.CheckForIllegalCrossThreadCalls = False Me.Top = 0 Me.Left = 0 dtNow.Value = DateTime.Now txtOperator.Text = loginForm.username Timer1.Enabled = True txtStart.Focus() initializeDG_inventory() End Sub Private Sub ts_close_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Close() End Sub Private Sub clear() txtPartNo.Text = String.Empty txtPartDesc.Text = String.Empty txtQuantity.Text = String.Empty txtLotNum.Text = String.Empty txtInvoiceNum.Text = String.Empty txtStart.Text = String.Empty End Sub Private Sub initializeDG_inventory() Dim partno As New DataGridViewTextBoxColumn Dim quantity As New DataGridViewTextBoxColumn Dim lotNumber As New DataGridViewTextBoxColumn Dim invNumber As New DataGridViewTextBoxColumn Dim inputDate As New DataGridViewTextBoxColumn Dim user As New DataGridViewTextBoxColumn partno.HeaderText = "Part Number" quantity.HeaderText = "Quantity" lotNumber.HeaderText = "Lot Number" invNumber.HeaderText = "Invoice" inputDate.HeaderText = "Input Date" user.HeaderText = "User" dg_inventory.Columns.Add(partno) dg_inventory.Columns.Add(quantity) dg_inventory.Columns.Add(lotNumber) dg_inventory.Columns.Add(invNumber) dg_inventory.Columns.Add(inputDate) dg_inventory.Columns.Add(user) dg_inventory.Columns(0).ReadOnly = True dg_inventory.Columns(1).ReadOnly = True dg_inventory.Columns(2).ReadOnly = True dg_inventory.Columns(3).ReadOnly = True dg_inventory.Columns(4).ReadOnly = True dg_inventory.Columns(5).ReadOnly = True dg_inventory.Columns(0).Width = 150 dg_inventory.Columns(1).Width = 100 dg_inventory.Columns(2).Width = 120 dg_inventory.Columns(3).Width = 120 dg_inventory.Columns(4).Width = 120 dg_inventory.Columns(5).Width = 120 dg_inventory.SelectionMode = DataGridViewSelectionMode.FullRowSelect dg_inventory.Columns(0).SortMode = DataGridViewColumnSortMode.Programmatic dg_inventory.Columns(1).SortMode = DataGridViewColumnSortMode.Programmatic dg_inventory.Columns(2).SortMode = DataGridViewColumnSortMode.Programmatic dg_inventory.Columns(3).SortMode = DataGridViewColumnSortMode.Programmatic dg_inventory.Columns(4).SortMode = DataGridViewColumnSortMode.Programmatic dg_inventory.Columns(5).SortMode = DataGridViewColumnSortMode.Programmatic End Sub Private Sub fillDataSet_inventory(ByVal partNumber As String) Dim conn As New SqlConnection(cnstr) myQuery = "SELECT * FROM kparts_pp WHERE KMTPARTNO = '" & partNumber & "' " & _ "ORDER BY KMTDATE" myCommand = New SqlCommand(myQuery, conn) Try conn.Open() adapter.SelectCommand = myCommand ds.Clear() adapter.Fill(ds) Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Finally conn.Close() conn.Dispose() End Try End Sub Private Sub fillDataGridView_inventory() Dim i As Integer = 0 dg_inventory.Rows.Clear() For i = 0 To ds.Tables(0).Rows.Count - 1 row = dg_inventory.Rows.Add() dg_inventory.Rows(row).Cells(0).Value = ds.Tables(0).Rows(row).Item("KMTPARTNO") dg_inventory.Rows(row).Cells(1).Value = ds.Tables(0).Rows(row).Item("KMTQTY") dg_inventory.Rows(row).Cells(2).Value = ds.Tables(0).Rows(row).Item("KMTLOT") dg_inventory.Rows(row).Cells(3).Value = ds.Tables(0).Rows(row).Item("KMTINVOICE") dg_inventory.Rows(row).Cells(4).Value = ds.Tables(0).Rows(row).Item("KMTDATE") dg_inventory.Rows(row).Cells(5).Value = ds.Tables(0).Rows(row).Item("KMTOPERATOR") Next End Sub Private Function isComplete() As Boolean If txtPartNo.Text <> String.Empty And txtPartDesc.Text <> String.Empty And txtQuantity.Text <> String.Empty And txtLotNum.Text <> String.Empty And txtInvoiceNum.Text <> String.Empty Then Return True Else Return False End If End Function Private Function isAlmostComplete() As Boolean If txtPartNo.Text <> String.Empty And txtPartDesc.Text <> String.Empty And txtQuantity.Text <> String.Empty And txtLotNum.Text <> String.Empty Then Return True Else Return False End If End Function Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) 'If txtMulQty.Enabled = False Then 'txtMulQty.Enabled = True 'LinkLabel1.Text = "Done" 'Else 'txtMulQty.Enabled = False 'LinkLabel1.Text = "Change" 'End If End Sub Private Sub txtMulQty_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) 'txtMulQty.Enabled = False End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick dtNow.Value = DateTime.Now End Sub Private Sub txtStart_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtStart.KeyUp If e.KeyCode = Keys.Enter Then Dim fChar As String = String.Empty Dim entry As String = txtStart.Text fChar = Mid(entry, 1, 1) If IsNumeric(entry) Then txtQuantity.Text = entry txtStart.Text = String.Empty txtStart.Focus() ElseIf mountingForm.IsSerialNumber(entry, False, "") Then txtPartNo.Text = entry txtPartDesc.Text = mountingForm.getDesc(entry) txtStart.Text = String.Empty txtStart.Focus() fillDataSet_inventory(txtPartNo.Text) fillDataGridView_inventory() Else txtLotNum.Text = entry txtStart.Text = String.Empty txtStart.Focus() End If If isComplete() Then Dim pp As New PartsPrep pp.partNo = txtPartNo.Text pp.quantity = CDbl(txtQuantity.Text) pp.lotNumber = txtLotNum.Text pp.invoice = txtInvoiceNum.Text pp.mDate = dtNow.Value pp.mOperator = txtOperator.Text pp.add() fillDataSet_inventory(txtPartNo.Text) fillDataGridView_inventory() clear() txtInvoiceNum.Enabled = False txtStart.Focus() ElseIf isAlmostComplete() Then txtInvoiceNum.Enabled = True txtInvoiceNum.Focus() End If End If End Sub Private Sub txtInvoiceNum_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtInvoiceNum.KeyUp If e.KeyCode = Keys.Enter Then If isComplete() Then Dim pp As New PartsPrep pp.partNo = txtPartNo.Text pp.quantity = CDbl(txtQuantity.Text) pp.lotNumber = txtLotNum.Text pp.invoice = txtInvoiceNum.Text pp.mDate = dtNow.Value pp.mOperator = txtOperator.Text pp.add() fillDataSet_inventory(txtPartNo.Text) fillDataGridView_inventory() clear() txtInvoiceNum.Enabled = False txtStart.Focus() Else txtStart.Focus() End If End If End Sub End Class