feat: #1 쓰기 기능 사용 시 DB 자동 반영 기능 추가 #3

Merged
Ghost merged 10 commits from feaure/add-database-update into main 2025-05-08 14:15:50 +09:00

View File

@ -5,6 +5,7 @@ Imports Microsoft
Imports System.Runtime.Remoting
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock
Imports Mysqlx
Imports Mysqlx.XDevAPI
Public Class MainForm
Public Const FormVersion As String = "2.0.0"
@ -462,8 +463,8 @@ End_Finish:
GoTo FAIL_Finish
End If
Dim ModelCode As Int16 = ModelSetting()
Dim TypeCode As Int16 = TypeSetting()
Dim ModelCode As ModelList = ModelSetting()
Dim TypeCode As TypeList = TypeSetting()
If ModelCode = ModelList.MAX_Model Or TypeCode = TypeList.MAXType Then
MsgBox("존재하지 않는 모델 및 타입 코드입니다. 체크된 내용을 확인하여 주십시오.", vbCritical, FormName)
@ -561,11 +562,10 @@ End_Finish:
GoTo FAIL_Finish
End If
SerialValue = ModelCode & TypeCode & nudIfYear.Text & MonthParsing & Mid(SerialValue, 4, 3) & Mid(SerialValue, 1, 3)
txbIfNumber.Text = SerialValue
txbIfNumber.Text = CInt(ModelCode) & CInt(TypeCode) & nudIfYear.Text & MonthParsing & Mid(SerialValue, 4, 3) & Mid(SerialValue, 1, 3)
tmpCmdMessage = "cartsn"
cmdMessage = "[sb" & tmpCmdMessage & " " & SerialValue & "]"
cmdMessage = "[sb" & tmpCmdMessage & " " & txbIfNumber.Text & "]"
If SendData(cmdMessage) Then
StageCnt = ErrorList.SendError
@ -579,6 +579,36 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
Dim DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Product_SN = '" & txbIfNumber.Text & "', " &
"Ct_Manufacture_Name = '" & txbIfCode.Text & "', " &
"Ct_Manufacture_Year = '" & nudIfYear.Value & "', " &
"Ct_Manufacture_Month = '" & nudIfMonth.Value & "', " &
"Ct_SN = '" & SerialValue & "', " &
"Ct_Model = '" & ModelCode.ToString & "', " &
"Ct_Type = '" & TypeCode.ToString & "', " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
If DataResult <> "success" Then
StageCnt = ErrorList.ResultError
GoTo FAIL_Finish
@ -654,12 +684,22 @@ End_Finish:
End If
txbIfNumber.Text = ModelCode & Mid(SerialValue, 1, 4) & Mid(SerialValue, 8, 3) & Mid(SerialValue, 5, 3)
Dim cartridgeSerial = Mid(SerialValue, 5, 3) & Mid(SerialValue, 8, 3)
'여기에 Update TD 번호 조건 걸어서 넣기'
' 변수 정리하고 어떤 칼럼인지 정리
Dim DBCmd = "UPDATE " & UseCartridgeTbl & "SET Product_SN = '" & txbIfNumber.Text & "', Ct_Manufacture_Name = '" & txbIfCode.Text & "', Ct_Manufacture_Year = '" & nudIfYear.Value & "', Ct_Manufacture_Month = '" & nudIfMonth.Value & "', Ct_SN = '" & cartridgeSerial & "', Ct_Model = 'MAXIMUM', Ct_Type = 'SET', Ct_Remain_ShotCnt = 0 WHERE PV_SN = '" & TDNameStr & "'"
If ckbDBUse.Checked = True Then
Dim cartridgeSerial = Mid(SerialValue, 5, 3) & Mid(SerialValue, 8, 3)
Dim DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Product_SN = '" & txbIfNumber.Text & "', " &
"Ct_Manufacture_Name = '" & txbIfCode.Text & "', " &
"Ct_Manufacture_Year = '" & nudIfYear.Value & "', " &
"Ct_Manufacture_Month = '" & nudIfMonth.Value & "', " &
"Ct_SN = '" & cartridgeSerial & "', " &
"Ct_Model = 'MAXIMUM', " &
"Ct_Type = 'SET' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbInfoBox.Text = "SUCCESS"
txbInfoBox.BackColor = Color.Green
@ -732,6 +772,23 @@ End_Finish:
txbIfNumber.Text = ModelCode & Mid(SerialValue, 1, 4) & Mid(SerialValue, 8, 3) & Mid(SerialValue, 5, 3)
If ckbDBUse.Checked = True Then
Dim cartridgeSerial = Mid(SerialValue, 5, 3) & Mid(SerialValue, 8, 3)
Dim DBCmd = "UPDATE " & NonCartridgeTbl & " SET " &
"Product_SN = '" & txbIfNumber.Text & "', " &
"Ct_Manufacture_Name = '" & txbIfCode.Text & "', " &
"Ct_Manufacture_Year = '" & nudIfYear.Value & "', " &
"Ct_Manufacture_Month = '" & nudIfMonth.Value & "', " &
"Ct_SN = '" & cartridgeSerial & "', " &
"Ct_Model = 'ALTO', " &
"Ct_Type = 'SET' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbInfoBox.Text = "SUCCESS"
txbInfoBox.BackColor = Color.Green
GoTo End_Finish
@ -803,6 +860,22 @@ End_Finish:
txbIfNumber.Text = ModelCode & Mid(SerialValue, 1, 4) & Mid(SerialValue, 8, 3) & Mid(SerialValue, 5, 3)
If ckbDBUse.Checked = True Then
Dim cartridgeSerial = Mid(SerialValue, 5, 3) & Mid(SerialValue, 8, 3)
Dim DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Product_SN = '" & txbIfNumber.Text & "', " &
"Ct_Manufacture_Name = '" & txbIfCode.Text & "', " &
"Ct_Manufacture_Year = '" & nudIfYear.Value & "', " &
"Ct_Manufacture_Month = '" & nudIfMonth.Value & "', " &
"Ct_SN = '" & cartridgeSerial & "', " &
"Ct_Model = 'EFFECT', " &
"Ct_Type = 'SET' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbInfoBox.Text = "SUCCESS"
txbInfoBox.BackColor = Color.Green
GoTo End_Finish
@ -1484,8 +1557,10 @@ End_Finish:
Select Case SelectModel
Case ModeList.DUALSONIC
DUALSONIC_AreaWriteFunc()
Case ModeList.MAXIMUM, ModeList.ALTO, ModeList.EFFECT
Case ModeList.MAXIMUM, ModeList.EFFECT
MAXIMUM_AreaWriteFunc()
Case ModeList.ALTO
ALTO_AreaWriteFunc()
Case Else
MsgBox("잘못된 경로입니다.", vbCritical, FormName)
End Select
@ -1548,6 +1623,31 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Ct_Abroad = '" & txbAbroad.Text.Trim() & "', " &
"Ct_Agency = '" & txbAgency.Text.Trim() & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbAreaBox.Text = "SUCCESS"
txbAreaBox.BackColor = Color.Green
GoTo End_Finish
@ -1566,6 +1666,7 @@ End_Finish:
Private Sub MAXIMUM_AreaWriteFunc()
Dim StageCnt As Int16 = ErrorList.NonError
Try
If AreaWriteStart() Then
StageCnt = ErrorList.DataError
@ -1574,6 +1675,7 @@ End_Finish:
Dim ResultData As String = ReadInfo()
If ResultData = Str(ErrorList.SendError) Or ResultData = Str(ErrorList.ReceiveError) Then
StageCnt = ResultData
GoTo FAIL_Finish
@ -1592,6 +1694,102 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Ct_Abroad = '" & txbAbroad.Text.Trim() & "', " &
"Ct_Agency = '" & txbAgency.Text.Trim() & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbAreaBox.Text = "SUCCESS"
txbAreaBox.BackColor = Color.Green
GoTo End_Finish
Catch ex As Exception
MsgBox("입력 진행 도중 에러 발생!" & vbCrLf & ex.Message, vbCritical, FormName)
GoTo FAIL_Finish
End Try
FAIL_Finish:
txbAreaBox.Text = "ERROR" + Str(StageCnt)
txbAreaBox.BackColor = Color.Red
End_Finish:
txbAreaBox.Refresh()
End Sub
Private Sub ALTO_AreaWriteFunc()
Dim StageCnt As Int16 = ErrorList.NonError
Try
If AreaWriteStart() Then
StageCnt = ErrorList.DataError
GoTo FAIL_Finish
End If
Dim ResultData As String = ReadInfo()
If ResultData = Str(ErrorList.SendError) Or ResultData = Str(ErrorList.ReceiveError) Then
StageCnt = ResultData
GoTo FAIL_Finish
End If
Dim Data1 As String = Mid(ResultData, 1, InStr(ResultData, ",") - 1)
ResultData = Mid(ResultData, InStr(ResultData, ",") + 1, ResultData.Length)
Dim Data2 As String = Mid(ResultData, 1, InStr(ResultData, ",") - 1)
ResultData = Mid(ResultData, InStr(ResultData, ",") + 1, ResultData.Length)
Dim Data3 As String = Mid(ResultData, 1, InStr(ResultData, ",") - 1)
ResultData = MAXInfoWrite(Data1, Data2, Data3, txbAbroad.Text, txbAgency.Text)
If ResultData = ErrorList.SendError Or ResultData = ErrorList.ReceiveError Then
StageCnt = ResultData
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = NonTDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & NonCartridgeTbl & " SET " &
"Ct_Abroad = '" & txbAbroad.Text.Trim() & "', " &
"Ct_Agency = '" & txbAgency.Text.Trim() & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbAreaBox.Text = "SUCCESS"
txbAreaBox.BackColor = Color.Green
GoTo End_Finish
@ -2012,6 +2210,30 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Ct_Frequency = '" & txbFreq.Text & "', " &
"Ct_Power = '" & CSng(txbPower.Text) & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbFPBox.Text = "SUCCESS"
txbFPBox.BackColor = Color.Green
@ -2042,6 +2264,31 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Ct_Frequency = '" & txbFreq.Text & "', " &
"Ct_Power = '" & CSng(txbPower.Text) & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbFPBox.Text = "SUCCESS"
txbFPBox.BackColor = Color.Green
GoTo End_Finish
@ -2259,6 +2506,30 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Ct_Motor_Lv = '" & txbMotor.Text & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbMtBox.Text = "SUCCESS"
txbMtBox.BackColor = Color.Green
GoTo End_Finish
@ -2508,6 +2779,31 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Ct_Remain_ShotCnt = '" & txbShot.Text & "' " &
"Ct_Max_ShotCnt = '" & txbMaxShot.Text & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbShotBox.Text = "SUCCESS"
txbShotBox.BackColor = Color.Green
GoTo End_Finish
@ -2537,6 +2833,30 @@ End_Finish:
GoTo FAIL_Finish
End If
If ckbDBUse.Checked = True Then
Dim TDNameStr = TDNameLoad()
If TDNameStr = Str(ErrorList.SendError) Or TDNameStr = Str(ErrorList.ReceiveError) Then
MsgBox("TD 시리얼 번호를 확인할 수 없습니다. 저장하고자 하는 Serial 번호를 먼저 입력하여 주십시오.", vbExclamation, FormName)
StageCnt = TDNameStr
GoTo FAIL_Finish
End If
Dim DBExist As Boolean = TDNameDBLoad(TDNameStr)
If DBExist = False Then
MsgBox("TD 시리얼 번호가 데이터베이스에 등록되어 있지 않습니다.", vbCritical, FormName)
StageCnt = ErrorList.ReceiveError
GoTo FAIL_Finish
End If
DBCmd = "UPDATE " & UseCartridgeTbl & " SET " &
"Ct_Remain_ShotCnt = '" & txbShot.Text & "' " &
"WHERE PV_SN = '" & TDNameStr & "'"
DBCommand(DBCmd)
End If
txbShotBox.Text = "SUCCESS"
txbShotBox.BackColor = Color.Green
GoTo End_Finish