ขอคำปรึกษาเกี่ยวกับการเขียน Visual Basic 2010 หน่อยครับ
Posted: Fri Sep 28, 2012 6:05 pm
ไม่ได้แวะเข้ามานานเลย อาจารย์สบายดีน่ะครับ วันนี้ผมมีเรื่องจะขอคำปรึกษาหน่อยครับ
ตอนนี้ผมทำโปรเจคเกี่ยวกับการคัดแยก Product ที่ไม่ได้มี Plan ผลิตในวันนั้นด้วยวิธีการสแกนบาร์โค้ดข้างกล่องที่วิ่งอยู่บน conveyer ครับถ้าหาก Product ตัวไหนที่ไม่ได้เป็น Plan ผลิตของวันนั้นให้ส่งค่าไปให้ Microcontrollor เพื่อจะผลัก Product ตัวนั้นออกและทำการแสดง Model พร้อมกับจำนวนที่นับได้แบบ Real time ใน Tab Monitor ครับ
ขั้นตอนการทำงานของโปรแกรมคือ ป้อน Plan ผลิตของวันลงไปโดยการเลือกรุ่น Model แล้วใส่จำนวนลงไป จากนั้นกด Submit ทำซ้ำจนครบตาม Plan ของวันหลังจากเลือกครบทุกรุ่นแล้ว กด System Start เพื่อให้ระบบเริ่มทำงาน
ปัญหาของผมคือ ผมไม่รู้จะเขียนยังไงให้นำค่าที่ผมป้อนเข้าไป ใน Tab Insert นำไปแสดงใน Tab Monitor โดยค่าที่แสดงคือ ชื่อ Model กับจำนวนที่ผลิต โดยเมื่อมีการอ่านค่าจาก สแกนเนอร์แล้วให้ทำการนับจำนวนของ Model ที่อ่านได้ไปเรื่อยๆครับ
ตอนนี้ผมทำโปรเจคเกี่ยวกับการคัดแยก Product ที่ไม่ได้มี Plan ผลิตในวันนั้นด้วยวิธีการสแกนบาร์โค้ดข้างกล่องที่วิ่งอยู่บน conveyer ครับถ้าหาก Product ตัวไหนที่ไม่ได้เป็น Plan ผลิตของวันนั้นให้ส่งค่าไปให้ Microcontrollor เพื่อจะผลัก Product ตัวนั้นออกและทำการแสดง Model พร้อมกับจำนวนที่นับได้แบบ Real time ใน Tab Monitor ครับ
ขั้นตอนการทำงานของโปรแกรมคือ ป้อน Plan ผลิตของวันลงไปโดยการเลือกรุ่น Model แล้วใส่จำนวนลงไป จากนั้นกด Submit ทำซ้ำจนครบตาม Plan ของวันหลังจากเลือกครบทุกรุ่นแล้ว กด System Start เพื่อให้ระบบเริ่มทำงาน
ปัญหาของผมคือ ผมไม่รู้จะเขียนยังไงให้นำค่าที่ผมป้อนเข้าไป ใน Tab Insert นำไปแสดงใน Tab Monitor โดยค่าที่แสดงคือ ชื่อ Model กับจำนวนที่ผลิต โดยเมื่อมีการอ่านค่าจาก สแกนเนอร์แล้วให้ทำการนับจำนวนของ Model ที่อ่านได้ไปเรื่อยๆครับ
Code: Select all
Imports System
Imports System.ComponentModel
Imports System.Threading
Imports System.IO.Ports
Public Class Form1
Delegate Sub SetTextCallback(ByVal [text] As String)
Dim code As String = ""
Dim counter As Integer = 0
Dim SetAIR As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.Open()
NumberAIR.Enabled = False
Submit.Enabled = False
AQ_Box.Enabled = False
AQV_Box.Enabled = False
AS_Box.Enabled = False
ASV_Box.Enabled = False
ARX_Box.Enabled = False
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
Dim msgresult As DialogResult
msgresult = MessageBox.Show(" Would you like to close this program ?", "Confirm to close program..", MessageBoxButtons.OKCancel)
If msgresult = DialogResult.Cancel Then
e.Cancel = False
End If
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
code = SerialPort1.ReadExisting
MessageBox.Show(code)
End Sub
Private Sub AQ_Check_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AQ_Check.CheckedChanged
AQ_Box.Enabled = True
AQV_Box.Enabled = False
AS_Box.Enabled = False
ASV_Box.Enabled = False
ARX_Box.Enabled = False
AQV_Box.SelectedIndex = -1
AS_Box.SelectedIndex = -1
ASV_Box.SelectedIndex = -1
ARX_Box.SelectedIndex = -1
NumberAIR.Enabled = True
Submit.Enabled = True
End Sub
Private Sub AQV_Check_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AQV_Check.CheckedChanged
AQ_Box.Enabled = False
AQV_Box.Enabled = True
AS_Box.Enabled = False
ASV_Box.Enabled = False
ARX_Box.Enabled = False
AQ_Box.SelectedIndex = -1
AS_Box.SelectedIndex = -1
ASV_Box.SelectedIndex = -1
ARX_Box.SelectedIndex = -1
NumberAIR.Enabled = True
Submit.Enabled = True
End Sub
Private Sub AS_Check_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AS_Check.CheckedChanged
AQ_Box.Enabled = False
AQV_Box.Enabled = False
AS_Box.Enabled = True
ASV_Box.Enabled = False
ARX_Box.Enabled = False
AQ_Box.SelectedIndex = -1
AQV_Box.SelectedIndex = -1
ASV_Box.SelectedIndex = -1
ARX_Box.SelectedIndex = -1
NumberAIR.Enabled = True
Submit.Enabled = True
End Sub
Private Sub ASV_Check_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ASV_Check.CheckedChanged
AQ_Box.Enabled = False
AQV_Box.Enabled = False
AS_Box.Enabled = False
ASV_Box.Enabled = True
ARX_Box.Enabled = False
AQ_Box.SelectedIndex = -1
AQV_Box.SelectedIndex = -1
AS_Box.SelectedIndex = -1
ARX_Box.SelectedIndex = -1
NumberAIR.Enabled = True
Submit.Enabled = True
End Sub
Private Sub ARX_Check_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ARX_Check.CheckedChanged
AQ_Box.Enabled = False
AQV_Box.Enabled = False
AS_Box.Enabled = False
ASV_Box.Enabled = False
ARX_Box.Enabled = True
AQ_Box.SelectedIndex = -1
AQV_Box.SelectedIndex = -1
AS_Box.SelectedIndex = -1
ASV_Box.SelectedIndex = -1
NumberAIR.Enabled = True
Submit.Enabled = True
End Sub
Private Sub NumberAIR_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumberAIR.TextChanged
If NumberAIR.Text = "" Then
SetAIR = 0
Exit Sub
End If
If Not IsNumeric(NumberAIR.Text) Then
MessageBox.Show("กรุณาใส่ค่าเฉพาะตัวเลขครับ...")
NumberAIR.Text = ""
End If
If IsNumeric(NumberAIR.Text) Then
SetAIR = NumberAIR.Text
End If
End Sub
Private Sub Submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit.Click
Dim AQ_model As String = AQ_Box.SelectedItem
Dim AQV_model As String = AQV_Box.SelectedItem
Dim AS_model As String = AS_Box.SelectedItem
Dim ASV_model As String = ASV_Box.SelectedItem
Dim ARX_model As String = ARX_Box.SelectedItem
If (SetAIR <> 0) And (AQ_Box.SelectedIndex <> -1) Then
ListAIR.Items.Add(" Model : " + AQ_model + " Amount : " + CStr(SetAIR))
ElseIf (SetAIR <> 0) And (AQV_Box.SelectedIndex <> -1) Then
ListAIR.Items.Add(" Model : " + AQV_model + " Amount : " + CStr(SetAIR))
ElseIf (SetAIR <> 0) And (AS_Box.SelectedIndex <> -1) Then
ListAIR.Items.Add(" Model : " + AS_model + " Amount : " + CStr(SetAIR))
ElseIf (SetAIR <> 0) And (ASV_Box.SelectedIndex <> -1) Then
ListAIR.Items.Add(" Model : " + ASV_model + " Amount : " + CStr(SetAIR))
ElseIf (SetAIR <> 0) And (ARX_Box.SelectedIndex <> -1) Then
ListAIR.Items.Add(" Model : " + ARX_model + " Amount : " + CStr(SetAIR))
End If
End Sub
Private Sub ListAIR_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListAIR.MouseDoubleClick
ListAIR.Items.Remove(ListAIR.SelectedItem)
End Sub
Private Sub Reset_List_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Reset_List.Click
ListAIR.Items.Clear()
End Sub
End Class