365 lines
15 KiB
VB.net
365 lines
15 KiB
VB.net
Imports System.IO.Ports
|
|
Imports System.Data
|
|
Imports System.Data.SqlClient
|
|
Imports System.IO
|
|
|
|
|
|
|
|
Public Class sequential
|
|
Dim count1 As Integer = 0
|
|
Public count2 As Integer = 0
|
|
Dim complete As Boolean = False
|
|
Dim ComPort As String = ""
|
|
Private Sub sequential_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
|
|
Me.MdiParent = mainForm
|
|
Control.CheckForIllegalCrossThreadCalls = False
|
|
|
|
dgPN.Rows.Clear()
|
|
dgPN.DefaultCellStyle.Font = New Font("Arial", 18, FontStyle.Bold, GraphicsUnit.Point)
|
|
txtDID.Focus()
|
|
|
|
Dim style As DataGridViewCellStyle = New DataGridViewCellStyle()
|
|
style.Font = New Font("Arial", 18, FontStyle.Bold, GraphicsUnit.Point)
|
|
dgPN.Columns(0).HeaderCell.Style = style
|
|
dgPN.Columns(1).HeaderCell.Style = style
|
|
dgPN.Columns(2).HeaderCell.Style = style
|
|
|
|
|
|
Timer1.Start()
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub cmbLine_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbLine.SelectedIndexChanged
|
|
If cmbLine.Text <> Nothing Then
|
|
dgPN.Rows.Clear()
|
|
lblrev.Text = New Mounting().getSettings(cmbLine.SelectedItem.ToString)
|
|
getSeq.Text = New Mounting().getKseq(cmbLine.SelectedItem.ToString)
|
|
Dim arrayseq() = New Mounting().getSequencePN(cmbLine.SelectedItem.ToString)
|
|
Try
|
|
|
|
For x = 0 To arrayseq.Length - 1
|
|
If (arrayseq(x) <> "") Then
|
|
dgPN.Rows.Add(arrayseq(x), "", x)
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End If
|
|
|
|
Dim mycommand As SqlCommand
|
|
Dim cnstr = mainForm.cnstr
|
|
Dim conn As New SqlConnection(cnstr)
|
|
|
|
Try
|
|
conn.Open()
|
|
|
|
Dim myQuery As String = "SELECT * FROM [dbo].[RelayCom] WHERE LineId ='" & cmbLine.Text & "'"
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
Dim reader As SqlDataReader = mycommand.ExecuteReader()
|
|
reader.Close()
|
|
|
|
reader = mycommand.ExecuteReader()
|
|
If (reader.HasRows) Then
|
|
reader.Read()
|
|
ComPort = reader("ComPort")
|
|
ComTextBox.Text = ComPort
|
|
End If
|
|
|
|
reader.Close()
|
|
conn.Close()
|
|
Catch ex As Exception
|
|
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
|
conn.Close()
|
|
End Try
|
|
|
|
SerialPort1.Close()
|
|
SerialPort1.PortName = ComTextBox.Text
|
|
SerialPort1.BaudRate = 9600
|
|
SerialPort1.DataBits = 8
|
|
SerialPort1.Parity = Parity.None
|
|
SerialPort1.StopBits = StopBits.One
|
|
SerialPort1.Handshake = Handshake.None
|
|
SerialPort1.Encoding = System.Text.Encoding.Default
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
|
|
'Dim mydate As DateTime = Date.Now
|
|
'Dim hour As Integer = mydate.Hour
|
|
'Dim min As Integer = mydate.Minute
|
|
'Dim sec As Integer = mydate.Second
|
|
'Dim milisec As Integer = mydate.Millisecond
|
|
|
|
|
|
|
|
Dim cnstr = mainForm.cnstr
|
|
Dim conn As New SqlConnection(cnstr)
|
|
Dim stime As String = ""
|
|
Dim myQuery As String
|
|
myQuery = "SELECT GETDATE() AS SERVERTIME "
|
|
Dim mycommand As SqlCommand
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
|
|
|
|
Try
|
|
conn.Open()
|
|
Dim reader As SqlDataReader = mycommand.ExecuteReader()
|
|
If reader.HasRows Then
|
|
reader.Read()
|
|
stime = reader("SERVERTIME")
|
|
End If
|
|
conn.Close()
|
|
Catch ex As Exception
|
|
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
|
conn.Close()
|
|
End Try
|
|
|
|
Dim mydate As DateTime = stime
|
|
Dim hour As Integer = mydate.Hour
|
|
Dim min As Integer = mydate.Minute
|
|
Dim sec As Integer = mydate.Second
|
|
|
|
If (min = 0 And sec = 0) Then
|
|
|
|
If complete = True Then
|
|
Timer1.Stop()
|
|
mountingForm.Timer3.Start()
|
|
Else
|
|
UpdateComPort()
|
|
SerialPort1.Open()
|
|
SerialPort1.Write("B")
|
|
SerialPort1.Close()
|
|
failform.Show()
|
|
End If
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub txtDID_KeyPress(sender As System.Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtDID.KeyPress
|
|
|
|
If Asc(e.KeyChar) = 13 Then
|
|
If Not txtDID.Text.StartsWith("LA") Then
|
|
txtDID.Text = txtDID.Text.Substring(0, 10).ToUpper
|
|
End If
|
|
|
|
If (count1 = dgPN.Rows.Count - 1) Then
|
|
btnComplete.PerformClick()
|
|
complete = True
|
|
|
|
Else
|
|
|
|
Dim cnstr = mainForm.cnstr
|
|
Dim conn As New SqlConnection(cnstr)
|
|
Dim i As Integer = 0
|
|
Dim temp As String = ""
|
|
Dim did As String = ""
|
|
Dim myQuery As String
|
|
myQuery = "SELECT * FROM PartsLog WHERE MaterialID = '" & txtDID.Text.ToUpper & "'"
|
|
Dim mycommand As SqlCommand
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
|
|
'Try
|
|
conn.Open()
|
|
Dim reader As SqlDataReader = mycommand.ExecuteReader()
|
|
If (reader.HasRows) Then
|
|
reader.Read()
|
|
temp = reader("IonicsPN")
|
|
did = reader("MaterialID")
|
|
reader.Close()
|
|
End If
|
|
conn.Close()
|
|
|
|
|
|
|
|
For i = 0 To dgPN.Rows.Count - 1
|
|
If (dgPN.Rows(i).Cells(0).Value = temp) Then
|
|
If (dgPN.Rows(i).Cells(1).Value = "") Then
|
|
If (dgPN.Rows(i).Cells(2).Value = "0") Then
|
|
If dgPN.Rows(i).Cells(1).Value <> "" Then
|
|
' MsgBox("ERROR")
|
|
SerialPort1.Open()
|
|
SerialPort1.Write("B")
|
|
SerialPort1.Close()
|
|
reader.Close()
|
|
|
|
For y = 0 To dgPN.Rows.Count - 1
|
|
If dgPN.Rows(y).Cells(1).Value = "" Then
|
|
If (dgPN.Rows(y).Cells(2).Value = "0") Then
|
|
conn.Open()
|
|
myQuery = "INSERT INTO KSEQ_HISTORY(LineNum, ModelRev, MaterialID, IonicsPN, SequenceNo, Result, ScannedBy, DateScan) VALUES ('" & cmbLine.Text & "','" & lblrev.Text & "','" & txtDID.Text & "','" & dgPN.Rows(y).Cells(0).Value & "','" & dgPN.Rows(y).Cells(2).Value & "','" & "FAIL" & "','" & loginForm.username & "','" & Date.Now & "')"
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
mycommand.ExecuteNonQuery()
|
|
conn.Close()
|
|
|
|
Exit For
|
|
|
|
Else
|
|
conn.Open()
|
|
myQuery = "INSERT INTO KSEQ_HISTORY(LineNum, ModelRev, MaterialID, IonicsPN, SequenceNo, Result, ScannedBy, DateScan) VALUES ('" & cmbLine.Text & "','" & lblrev.Text & "','" & txtDID.Text & "','" & dgPN.Rows(y).Cells(0).Value & "','" & dgPN.Rows(y).Cells(2).Value & "','" & "FAIL" & "','" & loginForm.username & "','" & Date.Now & "')"
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
mycommand.ExecuteNonQuery()
|
|
conn.Close()
|
|
|
|
Exit For
|
|
|
|
End If
|
|
txtDID.Text = ""
|
|
End If
|
|
|
|
Next
|
|
|
|
NotificationForm.text = "WRONG SEQUENCE OF SCANNING!"
|
|
NotificationForm.ShowDialog()
|
|
failverification.Show()
|
|
|
|
|
|
|
|
Else
|
|
|
|
dgPN.Rows(i).Cells(1).Value = did
|
|
dgPN.Rows(i).Cells(0).Style.BackColor = Color.Green
|
|
dgPN.Rows(i).Cells(1).Style.BackColor = Color.Green
|
|
dgPN.Rows(i).Cells(2).Style.BackColor = Color.Green
|
|
|
|
|
|
|
|
count1 = count1 + 1
|
|
conn.Open()
|
|
myQuery = "INSERT INTO KSEQ_HISTORY(LineNum, ModelRev, MaterialID, IonicsPN, SequenceNo, Result, ScannedBy, DateScan) VALUES ('" & cmbLine.Text & "','" & lblrev.Text & "','" & txtDID.Text & "','" & dgPN.Rows(i).Cells(0).Value & "','" & dgPN.Rows(i).Cells(2).Value & "','" & "PASS" & "','" & loginForm.username & "','" & Date.Now & "')"
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
mycommand.ExecuteNonQuery()
|
|
conn.Close()
|
|
txtDID.Text = ""
|
|
Exit For
|
|
|
|
End If
|
|
Else
|
|
If (dgPN.Rows(i - 1).Cells(1).Value <> "") Then
|
|
dgPN.Rows(i).Cells(1).Value = did
|
|
dgPN.Rows(i).Cells(0).Style.BackColor = Color.Green
|
|
dgPN.Rows(i).Cells(1).Style.BackColor = Color.Green
|
|
dgPN.Rows(i).Cells(2).Style.BackColor = Color.Green
|
|
count1 = count1 + 1
|
|
conn.Open()
|
|
myQuery = "INSERT INTO KSEQ_HISTORY(LineNum, ModelRev, MaterialID, IonicsPN, SequenceNo, Result, ScannedBy, DateScan) VALUES ('" & cmbLine.Text & "','" & lblrev.Text & "','" & txtDID.Text & "','" & dgPN.Rows(i).Cells(0).Value & "','" & dgPN.Rows(i).Cells(2).Value & "','" & "PASS" & "','" & loginForm.username & "','" & Date.Now & "')"
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
mycommand.ExecuteNonQuery()
|
|
conn.Close()
|
|
txtDID.Text = ""
|
|
Exit For
|
|
|
|
Else
|
|
' MsgBox("ERROR")
|
|
SerialPort1.Open()
|
|
SerialPort1.Write("B")
|
|
SerialPort1.Close()
|
|
|
|
For y = 0 To dgPN.Rows.Count - 1
|
|
If dgPN.Rows(y).Cells(1).Value = "" Then
|
|
If (dgPN.Rows(y).Cells(2).Value = "0") Then
|
|
conn.Open()
|
|
myQuery = "INSERT INTO KSEQ_HISTORY(LineNum, ModelRev, MaterialID, IonicsPN, SequenceNo, Result, ScannedBy, DateScan) VALUES ('" & cmbLine.Text & "','" & lblrev.Text & "','" & txtDID.Text & "','" & dgPN.Rows(y).Cells(0).Value & "','" & dgPN.Rows(y).Cells(2).Value & "','" & "FAIL" & "','" & loginForm.username & "','" & Date.Now & "')"
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
mycommand.ExecuteNonQuery()
|
|
conn.Close()
|
|
Exit For
|
|
|
|
Else
|
|
conn.Open()
|
|
myQuery = "INSERT INTO KSEQ_HISTORY(LineNum, ModelRev, MaterialID, IonicsPN, SequenceNo, Result, ScannedBy, DateScan) VALUES ('" & cmbLine.Text & "','" & lblrev.Text & "','" & txtDID.Text & "','" & dgPN.Rows(y).Cells(0).Value & "','" & dgPN.Rows(y).Cells(2).Value & "','" & "FAIL" & "','" & loginForm.username & "','" & Date.Now & "')"
|
|
mycommand = New SqlCommand(myQuery, conn)
|
|
mycommand.ExecuteNonQuery()
|
|
conn.Close()
|
|
Exit For
|
|
|
|
End If
|
|
txtDID.Text = ""
|
|
End If
|
|
Next
|
|
|
|
NotificationForm.text = "WRONG SEQUENCE OF SCANNING!"
|
|
NotificationForm.ShowDialog()
|
|
failverification.Show()
|
|
|
|
|
|
End If
|
|
End If
|
|
Else
|
|
txtDID.Focus()
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
'End While
|
|
|
|
End If
|
|
|
|
' Catch ex As Exception
|
|
'MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
|
'End Try
|
|
' txtDID.Text = ""
|
|
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnReload_Click(sender As System.Object, e As System.EventArgs) Handles btnReload.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Sub btnComplete_Click(sender As System.Object, e As System.EventArgs) Handles btnComplete.Click
|
|
Dim msg As String = ""
|
|
Dim i As Integer = 0
|
|
Dim t As Integer = 0
|
|
Dim p As Integer = 0
|
|
Dim f As Integer = 0
|
|
|
|
If dgPN.Rows.Count > 0 Then
|
|
While i < dgPN.Rows.Count - 1
|
|
If dgPN.Rows(i).Cells(1).Value <> "" Then
|
|
p = p + 1
|
|
If dgPN.Rows(i).Cells(1).Value = "" Then
|
|
f = f + 1
|
|
End If
|
|
t = t + 1
|
|
End If
|
|
i = i + 1
|
|
End While
|
|
End If
|
|
|
|
msg = vbCrLf + "RESULT :" + vbCrLf + t.ToString + " of " + i.ToString + " checked" + vbCrLf + vbCrLf + "PASSED = " + p.ToString + vbCrLf + "FAILED = " + f.ToString
|
|
myMessageBox.Show(msg)
|
|
|
|
|
|
If p.ToString <> "0" Then
|
|
If p.ToString = i.ToString Then
|
|
completeform.Show()
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub dgPN_DoubleClick(sender As System.Object, e As System.EventArgs) Handles dgPN.DoubleClick
|
|
dgPN.ReadOnly = True
|
|
End Sub
|
|
|
|
Private Sub UpdateComPort()
|
|
SerialPort1.Close()
|
|
SerialPort1.PortName = ComTextBox.Text
|
|
'SerialPort1.PortName = "COM3"
|
|
SerialPort1.BaudRate = 9600
|
|
SerialPort1.DataBits = 8
|
|
SerialPort1.Parity = Parity.None
|
|
SerialPort1.StopBits = StopBits.One
|
|
SerialPort1.Handshake = Handshake.None
|
|
SerialPort1.Encoding = System.Text.Encoding.Default
|
|
End Sub
|
|
|
|
End Class |