Imports System.Data Imports System.Data.SqlClient Imports System.IO Public Class mountingForm Public mountStart As Boolean = False Public status As Boolean = False Public mountAfter As Boolean = False Public reload As Boolean = False Private sequence As New Sequence() Private Sub mountingForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.MdiParent = mainForm Control.CheckForIllegalCrossThreadCalls = False getSequence() Timer1.Interval = 500 Timer1.Start() Timer1.Enabled = False End Sub Private Sub getSequence() Dim sequence As New Sequence Dim sequenceList As New List(Of String) Dim i As Integer = 0 sequenceList = sequence.getValidSequence cmbSeq.Items.Clear() While i < sequenceList.Count cmbSeq.Items.Add(sequenceList(i)) i = i + 1 End While End Sub Private Sub getRevisions() Dim rev As New Sequence Dim revList As New List(Of String) Dim i As Integer = 0 revList = rev.getRevisions(cmbSeq.SelectedItem) cmbRev.Items.Clear() While i < revList.Count cmbRev.Items.Add(revList(i)) i = i + 1 End While 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 Dim str() As String If mountAfter = True Then clear() mountAfter = False Timer1.Enabled = False lbl_Pass.Visible = False lbl_fail.Visible = False End If fChar = Mid(entry, 1, 1) If entry.Contains("*") Then txtFeeder.Text = entry.Replace("*", "") txtStart.Text = String.Empty txtStart.Focus() ElseIf fChar = "@" Then txtOperator.Text = Mid(entry, 2, Len(entry)) txtStart.Text = String.Empty txtStart.Focus() ElseIf IsNumeric(entry) Then txtQuantity.Text = entry txtStart.Text = String.Empty txtStart.Focus() ElseIf IsPartNumber(entry) Then txtPartNo.Text = entry txtPartDesc.Text = getDesc(entry) txtStart.Text = String.Empty txtStart.Focus() Else txtLotNum.Text = entry txtStart.Text = String.Empty txtStart.Focus() End If 'validate inputs If validateInput() Then str = Split(txtFeeder.Text, "-") Dim mounting As New Mounting mounting.mDate = DateTime.Now mounting.sequence = sequence.sequence mounting.revision = sequence.revision mounting.feeder = txtFeeder.Text mounting.partno = txtPartNo.Text mounting.quantity = CDbl(txtQuantity.Text) mounting.mOperator = txtOperator.Text mounting.threePL = 0 If sequence.verify(txtPartNo.Text, str(0), str(1)) = True Then lbl_Pass.Visible = True lbl_fail.Visible = False mounting.verify = 1 status = True mountAfter = True Timer1.Enabled = True Else lbl_Pass.Visible = False lbl_fail.Visible = True mounting.verify = 0 status = False mountAfter = True Timer1.Enabled = True End If If loginForm.userType = "Operator" Then mounting.add(reload) End If End If End If End Sub Public Shared Function IsNumeric(ByVal sText As String) As Boolean If Double.TryParse(sText, Globalization.NumberStyles.AllowDecimalPoint) Then Return True Else Return False End If End Function Public Shared Function IsPartNumber(ByVal sText As String) As Boolean Dim isPartNo As Boolean = False Dim cnstr = mainForm.cnstr Dim conn As New SqlConnection(cnstr) Dim myQuery As String myQuery = "SELECT * FROM KPARTS WHERE KPTPARTNUM = '" & sText & "'" Dim mycommand As SqlCommand mycommand = New SqlCommand(myQuery, conn) Try conn.Open() Dim reader As SqlDataReader = mycommand.ExecuteReader() If reader.HasRows Then isPartNo = True End If conn.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) conn.Close() End Try Return isPartNo End Function Private Function getDesc(ByVal partNum As String) As String Dim desc As String = String.Empty Dim cnstr = mainForm.cnstr Dim conn As New SqlConnection(cnstr) Dim myQuery As String myQuery = "SELECT * FROM KPARTS WHERE KPTPARTNUM = '" & partNum & "'" Dim mycommand As SqlCommand mycommand = New SqlCommand(myQuery, conn) Try conn.Open() Dim reader As SqlDataReader = mycommand.ExecuteReader() reader.Read() desc = reader("KPTDESCRIPTION") conn.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) conn.Close() End Try Return desc End Function Private Function validateInput() As Boolean Dim valid As Boolean = False If txtPartNo.Text <> "" And txtFeeder.Text <> "" And txtLotNum.Text <> "" And txtQuantity.Text <> "" And txtOperator.Text <> "" Then valid = True End If Return valid End Function Private Sub clear() txtFeeder.Text = String.Empty txtPartNo.Text = String.Empty txtPartDesc.Text = String.Empty txtQuantity.Text = String.Empty txtLotNum.Text = String.Empty txtOperator.Text = String.Empty txtStart.Text = String.Empty End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If Timer1.Enabled = True Then If Timer1.Tag = True Then If status = True Then lbl_Pass.Visible = True Else lbl_fail.Visible = True End If Timer1.Tag = False Else If status = True Then lbl_Pass.Visible = False Else lbl_fail.Visible = False End If Timer1.Tag = True End If End If End Sub Private Sub btn_setSequence_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_setSequence.Click If mountStart = False Then If cmbSeq.SelectedItem <> "" Then sequence.sequence = cmbSeq.SelectedItem sequence.revision = cmbRev.SelectedItem cmbSeq.Enabled = False cmbRev.Enabled = False btn_setSequence.Text = "Change Sequence" txtStart.Focus() mountStart = True Else MessageBox.Show("Please select the machine and revision to use.", "Set Machine", MessageBoxButtons.OK, MessageBoxIcon.Error) End If Else btn_setSequence.Text = "Set Sequence" cmbSeq.Enabled = True cmbRev.Enabled = True mountStart = False End If End Sub Private Sub cmbSeq_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSeq.SelectedIndexChanged getRevisions() End Sub Private Sub btn_reload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_reload.Click If reload = False Then btn_reload.Text = "Set Normal Mode" reload = True Else btn_reload.Text = "Set Reload Mode" reload = False End If End Sub End Class