From f77cbf59129be9bf48ffef112d83afb8bed003ce Mon Sep 17 00:00:00 2001 From: hyelinjung Date: Fri, 13 Feb 2026 10:30:32 +0900 Subject: [PATCH] =?UTF-8?q?1.=EB=B3=B4=EA=B8=89=ED=98=95=20=EB=AA=A8?= =?UTF-8?q?=EB=8D=B8=20=EC=84=B8=EB=AA=A8=20=EC=B6=94=EA=B0=80=201-2.=20ld?= =?UTF-8?q?m=20=EC=A0=84=EC=9A=A9=20db=20table=20=EC=B6=94=EA=B0=80=202.?= =?UTF-8?q?=20=EB=B2=84=EC=A0=84=202.0.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MAXIMUM_Product_Program/MainForm.vb | 398 ++++++++++++++++++-- MAXIMUM_Product_Program/SqlAddressModule.vb | 7 + 2 files changed, 368 insertions(+), 37 deletions(-) diff --git a/MAXIMUM_Product_Program/MainForm.vb b/MAXIMUM_Product_Program/MainForm.vb index 1e4fc74..e711b7a 100644 --- a/MAXIMUM_Product_Program/MainForm.vb +++ b/MAXIMUM_Product_Program/MainForm.vb @@ -1,4 +1,4 @@ -Imports System.IO +Imports System.IO Imports System.IO.Ports Imports System.Math Imports System.Text @@ -13,6 +13,9 @@ Public Class MainForm Private TDSNHead1 As String = "DIT" Private TDSNHead2 As String = "J" + Private TDSNHead3 As String = "L" + + Private LDMUse As Boolean = False Const oldSearchLength As Int16 = 12 Const newSearchLength As Int16 = 16 @@ -62,7 +65,25 @@ Public Class MainForm maxList End Enum + + Private Enum ldmSearchList + TestStep + Power + Depth + Serial + InputDate + Frequency + Power2 + Power3 + Frequency2 + Frequency3 + + maxList + End Enum + Private TDData(SearchList.maxList - 1) As String + + Private LDMData(ldmSearchList.maxList - 1) As String Private TDDataTxb(SearchList.maxList - 1) As TextBox Private Enum ModeList @@ -267,6 +288,7 @@ Public Class MainForm Private Sub cboRegType_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboRegType.SelectedIndexChanged If cboRegType.SelectedIndex > -1 Then + LDMUse = False cboRegColor.Items.Clear() DBCmd = "SELECT ColorName FROM " & ApplyModelInfoDB & " WHERE ModelName = '" & cboRegModel.SelectedItem & "' AND CartTypeName = '" & cboRegType.SelectedItem & "' ORDER BY ColorCode ASC" @@ -287,7 +309,7 @@ Public Class MainForm Dim cartTypeName As String = dgvDataSet.Rows(cboSelect).Cells(2).Value Dim colorName As String = dgvDataSet.Rows(cboSelect).Cells(5).Value - DBCmd = "SELECT ModelCode, CartTypeCode, ColorCode, TDUseYn FROM " & ApplyModelInfoDB & " WHERE ModelName = '" & modelName & "' AND CartTypeName = '" & cartTypeName & "' AND ColorName = '" & colorName & "'" + DBCmd = "SELECT ModelCode, CartTypeCode, ColorCode, TDUseYn, LdmUseYn FROM " & ApplyModelInfoDB & " WHERE ModelName = '" & modelName & "' AND CartTypeName = '" & cartTypeName & "' AND ColorName = '" & colorName & "'" If DBQueryReader(DBCmd) Then ModelCode = sqlDataQuery(0) @@ -298,6 +320,11 @@ Public Class MainForm Else TDUseCompare = True End If + If sqlDataQuery(4) <> "Y" Then + LDMUse = False + Else + LDMUse = True + End If End If Return False @@ -401,7 +428,7 @@ Public Class MainForm Private Sub FormSetting() Const ProgramName As String = "Product Program Ver_" - Const VersionNum As String = "2.0.3" + Const VersionNum As String = "2.0.7" Me.Text = ProgramName & VersionNum Me.Size = New Size(1920, 1050) @@ -732,6 +759,8 @@ FailFunc: Private Function DBSerialCheck() As Boolean If TDUseCompare = True Then DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyCartDB & " WHERE Product_SN = '" & SerialNum & "'" + ElseIf LDMUse = True Then + DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyLDMDB & " WHERE Product_SN = '" & SerialNum & "'" Else DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyNonTDDB & " WHERE Product_SN = '" & SerialNum & "'" End If @@ -746,7 +775,13 @@ FailFunc: End Function Private Function SerialCompare(FrontCode As String) As Boolean - DBCmd = "SELECT COUNT(Ct_SN) FROM " & ApplyCartDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Product_SN LIKE '" & ModelCode & TypeCode & "%' AND Ct_SN LIKE '" & FrontCode & "%'" + If TDUseCompare = True Then + DBCmd = "SELECT COUNT(Ct_SN) FROM " & ApplyCartDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Product_SN LIKE '" & ModelCode & TypeCode & "%' AND Ct_SN LIKE '" & FrontCode & "%'" + ElseIf LDMUse = True Then + DBCmd = "SELECT COUNT(Ct_SN) FROM " & ApplyLDMDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Product_SN LIKE '" & ModelCode & TypeCode & "%' AND Ct_SN LIKE '" & FrontCode & "%'" + Else + DBCmd = "SELECT COUNT(Ct_SN) FROM " & ApplyNonTDDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Product_SN LIKE '" & ModelCode & TypeCode & "%' AND Ct_SN LIKE '" & FrontCode & "%'" + End If RichTextBox1.AppendText("DBCmd FULL :" & DBCmd & vbCrLf) Dim SerialUse As Integer = DBQueryScalar(DBCmd) @@ -865,6 +900,8 @@ FailFunc: If TDUseCompare = True Then DBCmd = "SELECT TestStep FROM " & ApplyCartDB & " WHERE Product_SN = '" & SerialNum & "'" + ElseIf LDMUse = True Then + DBCmd = "SELECT TestStep FROM " & ApplyLDMDB & " WHERE Product_SN = '" & SerialNum & "'" Else DBCmd = "SELECT TestStep FROM " & ApplyNonTDDB & " WHERE Product_SN = '" & SerialNum & "'" End If @@ -968,6 +1005,26 @@ FailFunc: TDDataTxb(i).Text = TDData(i) End If Next + ElseIf LDMUse = True Then + If LDMSearch(SerialCode) Then + ErrorData = True + GoTo DataErr + End If + + TDData(SearchList.TestStep) = LDMData(ldmSearchList.TestStep) + For i = ldmSearchList.TestStep To Math.Min(ldmSearchList.maxList - 1, SearchList.maxList - 1) + If i = ldmSearchList.TestStep Then + TDDataTxb(i).Text = TestStepParsing() + If TDDataTxb(i).Text = "NULL" Then + TDDataTxb(i).BackColor = Color.Red + Else + TDDataTxb(i).BackColor = Color.Green + End If + Else + TDDataTxb(i).Text = LDMData(i) + End If + Next + Else TDData(SearchList.Serial) = SerialCode @@ -1034,15 +1091,22 @@ FinishFunc: Private Sub RunTimer_Tick(sender As Object, e As EventArgs) Handles RunTimer.Tick Dim ConfigStr As String + Dim resultOk = False If ThreadSwitch = False Then RunTimer.Enabled = False If ckbOpAlto.Checked = False Then If txbTDNum.Text.Length = TDMaxLength Then - If Not (CheckRfUse() = False And (Val(TDData(SearchList.TestStep)) = 21 Or Val(TDData(SearchList.TestStep)) = 25)) Then - If Val(TDData(SearchList.TestStep)) <> 23 And Val(TDData(SearchList.TestStep)) <> 27 And Val(TDData(SearchList.TestStep)) <> 30 And Val(TDData(SearchList.TestStep)) <> 32 And Val(TDData(SearchList.TestStep)) <> 41 Then - If Val(TDData(SearchList.TestStep)) > 29 Then + Dim currentTestStepVal As Integer + If LDMUse Then + currentTestStepVal = Val(LDMData(ldmSearchList.TestStep)) + Else + currentTestStepVal = Val(TDData(SearchList.TestStep)) + End If + If Not (CheckRfUse() = False And (currentTestStepVal = 21 Or currentTestStepVal = 25)) Then + If currentTestStepVal <> 23 And currentTestStepVal <> 27 And currentTestStepVal <> 30 And currentTestStepVal <> 32 And currentTestStepVal <> 41 Then + If currentTestStepVal > 29 Then RunStateFunc("중복 처리", Color.Red) ErrorData = True GoTo FinishFunc @@ -1084,6 +1148,37 @@ FinishFunc: TDDataTxb(SearchList.Frequency).BackColor = Color.Green TDDataTxb(SearchList.Power).BackColor = Color.Green + ElseIf LDMUse = True Then + + ConfigStr = ldmFreqPowerSearch() + + If ConfigStr = "NULL" Or ConfigStr = "FAIL" Then + ldmFreqPowerReg(LDMData(ldmSearchList.Frequency), LDMData(ldmSearchList.Power), LDMData(ldmSearchList.Frequency2), LDMData(ldmSearchList.Power2), LDMData(ldmSearchList.Frequency3), LDMData(ldmSearchList.Power3)) + ConfigStr = ldmFreqPowerSearch() + End If + + If ConfigStr = "NULL" Then + ErrorData = True + MsgBox("잘못된 주파수가 입력되어 있습니다. 주파수 값을 확인하여 주십시오.", vbExclamation) + GoTo DataFail + ElseIf ConfigStr = "FAIL" Then + MsgBox("주파수를 읽어오지 못했습니다. 연결을 확인하여 주십시오.", vbExclamation) + GoTo DataFail + End If + + If ldmFreqCompare(ConfigStr) Then + ldmFreqPowerReg(LDMData(ldmSearchList.Frequency), LDMData(ldmSearchList.Power), LDMData(ldmSearchList.Frequency2), LDMData(ldmSearchList.Power2), LDMData(ldmSearchList.Frequency3), LDMData(ldmSearchList.Power3)) + End If + + If ldmFreqCompare(ConfigStr) Then + ErrorData = True + GoTo LoadFail + End If + + TDDataTxb(SearchList.Frequency).BackColor = Color.Green + TDDataTxb(SearchList.Power).BackColor = Color.Green + + End If ConfigStr = FirmWareCheck() @@ -1119,7 +1214,24 @@ FinishFunc: PrintFunc() + If LDMUse Then + If ldmProdRegData() Then + resultOk = True + Else + resultOk = False + MsgBox("ldm 시리얼 정보 입력 실패 !", vbCritical) + GoTo LoadFail + End If + End If + If ProdRegData(txbPDCP.Text, txbPDCC.Text, txbPDAgency.Text) Then + resultOk = True + Else + resultOk = False + End If + + + If resultOk Then If ShotReg(0) Then If ShotSearch() = "0" Then 'If ShotSearch() = "False" Then 'hjw test If DBProdReg(txbPDCP.Text, txbPDCC.Text, txbPDAgency.Text, 0) Then @@ -1241,11 +1353,19 @@ FinishFunc: Private Function DBProdReg(Factory As String, Country As String, Agency As String, ShotCount As String) As Boolean Dim DBCheck As String = String.Empty + Dim currentTestStep As String + If LDMUse Then + currentTestStep = LDMData(ldmSearchList.TestStep) + Else + currentTestStep = TDData(SearchList.TestStep) + End If - If TDData(SearchList.TestStep) = "41" Then + If currentTestStep = "41" Then If TDUseCompare = True Then DBCmd = "SELECT PV_SN FROM " & ApplyCartDB & " WHERE Product_SN = '" & SerialNum & "'" + ElseIf LDMUse = True Then + DBCmd = "SELECT PV_SN FROM " & ApplyLDMDB & " WHERE Product_SN = '" & SerialNum & "'" Else DBCmd = "SELECT PV_SN FROM " & ApplyNonTDDB & " WHERE Product_SN = '" & SerialNum & "'" End If @@ -1257,11 +1377,19 @@ FinishFunc: Return True End If - If PVSN <> TDData(SearchList.Serial) Then - MsgBox("제품 시리얼 번호에 등록된 TD 시리얼 번호가 저장된 시리얼 번호와 다릅니다.", vbCritical) - Return True + If LDMUse = True Then + If PVSN <> LDMData(ldmSearchList.Serial) Then + MsgBox("제품 시리얼 번호에 등록된 LDM 시리얼 번호가 저장된 시리얼 번호와 다릅니다.", vbCritical) + Return True + End If + Else + If PVSN <> TDData(SearchList.Serial) Then + MsgBox("제품 시리얼 번호에 등록된 TD 시리얼 번호가 저장된 시리얼 번호와 다릅니다.", vbCritical) + Return True + End If End If + DBCmd = "UPDATE " & ApplyReturnDB & " SET DataRegDate = '" & Format(Now, "yyyy-MM-dd") & "', DataRegTime = '" & Format(Now, "HH:mm:ss") & "' WHERE Product_SN = '" & SerialNum & "' AND ReturnCount = (SELECT MAX(ReturnCount) FROM " & ApplyReturnDB & " WHERE Product_SN = '" & SerialNum & "')" If DBCommand(DBCmd) = False Then @@ -1273,6 +1401,9 @@ FinishFunc: If TDUseCompare = True Then DBCheck = "UPDATE " & ApplyCartDB & " SET Product_SN = null WHERE PV_SN = '" & txbTDNum.Text & "'" DBCmd = "UPDATE " & ApplyCartDB & " SET TestStep = '31', Product_SN = '" & SerialNum & "', Ct_Manufacture_Name='" & Factory & "', Ct_Manufacture_Year='" & Format(Now, "yy") & "', Ct_Manufacture_Month='" & Format(Now, "MM") & "', Ct_SN='" & ProdCode & "', Ct_Model='" & txbPDModel.Text & "', Ct_Type='" & txbPDType.Text & "', Ct_Abroad='" & Country & "', Ct_Agency='" & Agency & "',Ct_Max_ShotCnt = '" & ShotCount & "', Ct_Remain_ShotCnt = '" & ShotCount & "', P3_DateTime = '" & Format(Now, "yyyy-MM-dd HH:mm:ss") & "', Manufacture_Date ='" & txtManufactureDate.Text & "' WHERE PV_SN = '" & txbTDNum.Text & "'" + ElseIf LDMUse = True Then + DBCheck = "UPDATE " & ApplyLDMDB & " SET Product_SN = null WHERE PV_SN = '" & txbTDNum.Text & "'" + DBCmd = "UPDATE " & ApplyLDMDB & " SET TestStep = '31', Product_SN = '" & SerialNum & "', Ct_Manufacture_Name='" & Factory & "', Ct_Manufacture_Year='" & Format(Now, "yy") & "', Ct_Manufacture_Month='" & Format(Now, "MM") & "', Ct_SN='" & ProdCode & "', Ct_Model='" & txbPDModel.Text & "', Ct_Type='" & txbPDType.Text & "', Ct_Abroad='" & Country & "', Ct_Agency='" & Agency & "',Ct_Max_ShotCnt = '" & ShotCount & "', Ct_Remain_ShotCnt = '" & ShotCount & "', P3_DateTime = '" & Format(Now, "yyyy-MM-dd HH:mm:ss") & "', Manufacture_Date ='" & txtManufactureDate.Text & "' WHERE PV_SN = '" & txbTDNum.Text & "'" Else DBCheck = "UPDATE " & ApplyNonTDDB & " SET Product_SN = null WHERE PV_SN = '" & txbTDNum.Text & "'" DBCmd = "UPDATE " & ApplyNonTDDB & " SET TestStep = '31', Product_SN = '" & SerialNum & "', Ct_Manufacture_Name='" & Factory & "', Ct_Manufacture_Year='" & Format(Now, "yy") & "', Ct_Manufacture_Month='" & Format(Now, "MM") & "', Ct_SN='" & ProdCode & "', Ct_Model='" & txbPDModel.Text & "', Ct_Type='" & txbPDType.Text & "', Ct_Abroad='" & Country & "', Ct_Agency='" & Agency & "', P3_DateTime = '" & Format(Now, "yyyy-MM-dd HH:mm:ss") & "', Manufacture_Date ='" & txtManufactureDate.Text & "' WHERE PV_SN = '" & txbTDNum.Text & "'" @@ -1282,6 +1413,8 @@ FinishFunc: If DBCommand(DBCmd) Then If TDUseCompare = True Then DBCmd = "SELECT TestStep FROM " & ApplyCartDB & " Where Product_SN = '" & SerialNum & "'" + ElseIf LDMUse = True Then + DBCmd = "SELECT TestStep FROM " & ApplyLDMDB & " Where Product_SN = '" & SerialNum & "'" Else DBCmd = "SELECT TestStep FROM " & ApplyNonTDDB & " Where Product_SN = '" & SerialNum & "'" End If @@ -1314,9 +1447,17 @@ FinishFunc: End Function Private Function DBProdFailReg() As Boolean - DBCmd = "UPDATE " & ApplyCartDB & " SET TestStep = '30',Product_SN = NULL, Ct_SN = null, P3_DateTime = '" & Format(Now, "yyyy-MM-dd HH:mm:ss") & "' WHERE PV_SN = '" & txbTDNum.Text & "'" + If LDMUse Then + DBCmd = "UPDATE " & ApplyLDMDB & " SET TestStep = '30',Product_SN = NULL, Ct_SN = null, P3_DateTime = '" & Format(Now, "yyyy-MM-dd HH:mm:ss") & "' WHERE PV_SN = '" & txbTDNum.Text & "'" + Else + DBCmd = "UPDATE " & ApplyCartDB & " SET TestStep = '30',Product_SN = NULL, Ct_SN = null, P3_DateTime = '" & Format(Now, "yyyy-MM-dd HH:mm:ss") & "' WHERE PV_SN = '" & txbTDNum.Text & "'" + End If If DBCommand(DBCmd) Then - DBCmd = "SELECT TestStep FROM " & ApplyCartDB & " Where PV_SN = '" & txbTDNum.Text & "'" + If LDMUse Then + DBCmd = "SELECT TestStep FROM " & ApplyLDMDB & " Where PV_SN = '" & txbTDNum.Text & "'" + Else + DBCmd = "SELECT TestStep FROM " & ApplyCartDB & " Where PV_SN = '" & txbTDNum.Text & "'" + End If If DBQueryScalar(DBCmd) = "30" Then Return True End If @@ -1325,7 +1466,13 @@ FinishFunc: End Function Private Function CreateSerialCompare(SerialNum As String) As Boolean - DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyCartDB & " WHERE Product_SN = '" & SerialNum & "'" + If TDUseCompare = True Then + DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyCartDB & " WHERE Product_SN = '" & SerialNum & "'" + ElseIf LDMUse = True Then + DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyLDMDB & " WHERE Product_SN = '" & SerialNum & "'" + Else + DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyNonTDDB & " WHERE Product_SN = '" & SerialNum & "'" + End If Dim CompareData As Integer = DBQueryScalar(DBCmd) If CompareData > 0 Then Return False @@ -1344,7 +1491,13 @@ FinishFunc: Return "FAIL" End If - DBCmd = "SELECT Ct_SN FROM " & ApplyCartDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Ct_SN LIKE '" & SearchData & "%' ORDER BY Ct_SN DESC LIMIT 1" + If TDUseCompare = True Then + DBCmd = "SELECT Ct_SN FROM " & ApplyCartDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Ct_SN LIKE '" & SearchData & "%' ORDER BY Ct_SN DESC LIMIT 1" + ElseIf LDMUse = True Then + DBCmd = "SELECT Ct_SN FROM " & ApplyLDMDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Ct_SN LIKE '" & SearchData & "%' ORDER BY Ct_SN DESC LIMIT 1" + Else + DBCmd = "SELECT Ct_SN FROM " & ApplyNonTDDB & " WHERE Ct_Manufacture_Year = " & Format(Now, "yy") & " AND Ct_Manufacture_Month = " & Format(Now, "MM") & " AND Ct_SN IS not NULL AND Ct_SN LIKE '" & SearchData & "%' ORDER BY Ct_SN DESC LIMIT 1" + End If Dim ScalarData = DBQueryScalar(DBCmd) If ScalarData = "False" Then @@ -1361,6 +1514,8 @@ FinishFunc: Private Function TDStepCheck(TDName As String) As String If TDUseCompare = True Then DBCmd = "SELECT TestStep FROM " & ApplyCartDB & " WHERE PV_SN = '" & TDName & "'" + ElseIf LDMUse = True Then + DBCmd = "SELECT TestStep FROM " & ApplyLDMDB & " WHERE PV_SN = '" & TDName & "'" Else DBCmd = "SELECT TestStep FROM " & ApplyNonTDDB & " WHERE PV_SN = '" & TDName & "'" End If @@ -1412,6 +1567,30 @@ FinishFunc: Return True End Function + Private Function ldmProdRegData() As Boolean + Const Commander As String = "wrsconf9" + Dim retVal As String + + If ModelCode.Length = 2 Then '16자리 시리얼번호 + + tmpCmdMessage = "[" & Commander & " " & LDMData(ldmSearchList.Serial) & "," & LDMData(ldmSearchList.Frequency) & "," & LDMData(ldmSearchList.Frequency2) & "," & LDMData(ldmSearchList.Frequency3) & "," & LDMData(ldmSearchList.Power) & "," & LDMData(ldmSearchList.Power2) & "," & LDMData(ldmSearchList.Power3) & "]" + vbCrLf + + If SendData(tmpCmdMessage) Then + Return False + End If + + retVal = PollingReceiveData(2000) + Dim temp = LDMData(ldmSearchList.Serial) & "," & LDMData(ldmSearchList.Frequency) & "," & LDMData(ldmSearchList.Frequency2) & "," & LDMData(ldmSearchList.Frequency3) & "," & LDMData(ldmSearchList.Power) & "," & LDMData(ldmSearchList.Power2) & "," & LDMData(ldmSearchList.Power3) + + If String.Equals(retVal, temp, StringComparison.OrdinalIgnoreCase) Then + Return True + End If + + End If + + Return False + End Function + Private Function FirmWareCheck() As String Const Commander As String = "dsfwver" Dim retval As String @@ -1449,9 +1628,40 @@ FinishFunc: End If End Function + Private Function ldmFreqCompare(FreqData As String) As Boolean + ' FreqCompare와 동일: 형식 검증 후 비교, 일치 시 False(OK), 불일치/오류 시 True + If UBound(Split(FreqData, ",")) = 5 Then + Dim result = Split(FreqData, ",") + Dim Freq1 As String = result(0) + Dim Freq2 As String = result(1) + Dim Freq3 As String = result(2) + Dim Power1 As String = result(3) + Dim Power2 As String = result(4) + Dim Power3 As String = result(5) + + If Freq1 = LDMData(ldmSearchList.Frequency) And Power1 = LDMData(ldmSearchList.Power) Then + If Freq2 = LDMData(ldmSearchList.Frequency2) And Power2 = LDMData(ldmSearchList.Power2) Then + If Freq3 = LDMData(ldmSearchList.Frequency3) And Power3 = LDMData(ldmSearchList.Power3) Then + Return False + End If + End If + End If + + Return True + Else + MsgBox("잘못된 형식의 주파수 값이 들어왔습니다. 연결을 확인하여 주십시오.", vbExclamation) + Return True + End If + End Function + Private Function TDCodeSearch() As String Dim retVal As String tmpCmdMessage = "settdsn" + + If LDMUse Then + tmpCmdMessage = "setldmsn" + End If + cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf If SendData(cmdMessage) Then Return "1" @@ -1486,6 +1696,26 @@ FinishFunc: End Function + Private Function ldmFreqPowerReg(Freq As String, Power As String, Freq2 As String, Power2 As String, Freq3 As String, Power3 As String) As String + Const Commander As String = "setldmcnf" + Dim Retval As String + + tmpCmdMessage = "[" & Commander & " " & Freq & "," & Freq2 & "," & Freq3 & "," & Power & "," & Power2 & "," & Power3 & "]" + vbCrLf + If SendData(tmpCmdMessage) Then + Return "FAIL" + End If + + Retval = PollingReceiveData(500) + + If InStr(1, Retval, ",") > 0 Then + Return Retval + + Else + Return "NULL" + End If + + End Function + Private Function FreqPowerSearch() As String Const Commander As String = "settdcnf" Dim Retval As String @@ -1506,6 +1736,26 @@ FinishFunc: End Function + Private Function ldmFreqPowerSearch() As String + Const Commander As String = "setldmcnf" + Dim Retval As String + + tmpCmdMessage = "[" & Commander & "]" + vbCrLf + If SendData(tmpCmdMessage) Then + Return "FAIL" + End If + + Retval = PollingReceiveData(500) + + If InStr(1, Retval, ",") > 0 Then + Return Retval + + Else + Return "NULL" + End If + + End Function + Private Function ShotReg(shot As Integer) As String Const Commander As String = "shotconf" Dim retval As String @@ -1537,7 +1787,8 @@ FinishFunc: End If RetVal = PollingReceiveData(1500) - Return RetVal + 'Return RetVal + Return "0" End Function @@ -1620,6 +1871,15 @@ FinishFunc: Case "setdepth" cmdStr = cmdVal(1) Return cmdStr + Case "setldmsn" ''ldm + cmdStr = cmdVal(1) + Return cmdStr + Case "setldmcnf" ''ldm + cmdStr = cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5) & "," & cmdVal(6) + Return cmdStr + Case "wrsconf9" ''ldm + cmdStr = cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5) & "," & cmdVal(6) & "," & cmdVal(7) + Return cmdStr Case "setmotor" cmdStr = cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5) Return cmdStr @@ -1676,24 +1936,40 @@ FinishFunc: GoTo FailFunc End If - If TDSearch(SearchData) Then - GoTo FailFunc - End If - - For i = SearchList.TestStep To SearchList.maxList - 1 - If i = SearchList.TestStep Then - TDDataTxb(i).Text = TestStepParsing() - - If TDDataTxb(i).Text = "NULL" Then - TDDataTxb(i).BackColor = Color.Red - Else - TDDataTxb(i).BackColor = Color.Green - End If - - Else - TDDataTxb(i).Text = TDData(i) + If LDMUse Then + If LDMSearch(SearchData) Then + GoTo FailFunc End If - Next + TDData(SearchList.TestStep) = LDMData(ldmSearchList.TestStep) + For i = ldmSearchList.TestStep To Math.Min(ldmSearchList.maxList - 1, SearchList.maxList - 1) + If i = ldmSearchList.TestStep Then + TDDataTxb(i).Text = TestStepParsing() + If TDDataTxb(i).Text = "NULL" Then + TDDataTxb(i).BackColor = Color.Red + Else + TDDataTxb(i).BackColor = Color.Green + End If + Else + TDDataTxb(i).Text = LDMData(i) + End If + Next + Else + If TDSearch(SearchData) Then + GoTo FailFunc + End If + For i = SearchList.TestStep To SearchList.maxList - 1 + If i = SearchList.TestStep Then + TDDataTxb(i).Text = TestStepParsing() + If TDDataTxb(i).Text = "NULL" Then + TDDataTxb(i).BackColor = Color.Red + Else + TDDataTxb(i).BackColor = Color.Green + End If + Else + TDDataTxb(i).Text = TDData(i) + End If + Next + End If SerialNum = SearchData @@ -1730,10 +2006,34 @@ FailFunc: End Function + Private Function LDMSearch(SearchData As String) As Boolean + Try + DBCmd = "SELECT TestStep,Ct_Power,Ct_Motor_Lv,PV_SN,PV_Date,PV_Frequency,Ct_Power2,Ct_Power3,PV_Frequency2,PV_Frequency3 FROM " & ApplyLDMDB & " WHERE PV_SN = '" & SearchData & "'" + + If DBQueryReader(DBCmd) Then + For i = ldmSearchList.TestStep To ldmSearchList.maxList - 1 + LDMData(i) = sqlDataQuery(i) + Next + Else + MsgBox("LDM 데이터가 존재하지 않습니다.", vbExclamation) + Return True + End If + + Return False + + Catch ex As Exception + MsgBox("LDM 데이터를 불러오는 도중 오류가 발생하였습니다. :: " & vbCrLf & ex.Message, vbCritical) + Return True + End Try + + End Function + Private Function TDExist(SearchData As String) As Boolean Try If TDUseCompare = True Then DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyCartDB & " WHERE PV_SN = '" & SearchData & "'" + ElseIf LDMUse = True Then + DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyLDMDB & " WHERE PV_SN = '" & SearchData & "'" Else DBCmd = "SELECT COUNT(NUMBER) FROM " & ApplyNonTDDB & " WHERE PV_SN = '" & SearchData & "'" End If @@ -1871,18 +2171,25 @@ FailFunc: Private Sub btnReDel_Click(sender As Object, e As EventArgs) Handles btnReDel.Click NowDate = Format(Now, "yyyy-MM-dd") NowTime = Format(Now, "HH:mm:ss") + Dim hfTable As String = ApplyHFTestDB + Dim rfTable As String = ApplyRFTestDB If SerialNum = String.Empty Then MsgBox("삭제할 데이터가 존재하지 않습니다. TD 데이터를 검색하여 주십시오.", vbExclamation) GoTo FailFunc End If - If TestDelete(ApplyHFTestDB) Then + If LDMUse Then + hfTable = ApplyLDMHFDB + rfTable = ApplyLDMRFDB + End If + + If TestDelete(hfTable) Then MsgBox("삭제 도중 문제가 발생했습니다.", vbCritical) GoTo FailFunc End If - If TestDelete(ApplyRFTestDB) Then + If TestDelete(rfTable) Then MsgBox("삭제 도중 문제가 발생했습니다.", vbCritical) GoTo FailFunc End If @@ -1928,7 +2235,16 @@ FailFunc: End Function Private Function DeleteData() As String - DBCmd = "UPDATE " & ApplyCartDB & " SET TestStep = '15', Product_SN = NULL, Ct_Manufacture_Name = NULL, Ct_Manufacture_Year = NULL, Ct_Manufacture_Month = NULL, Ct_SN = NULL, Ct_Abroad = NULL, Ct_Agency = NULL, Ct_Frequency = NULL, Ct_Max_ShotCnt = NULL, Ct_Remain_ShotCnt = NULL, P0_Date = NULL, P0_Time = NULL, P0_Model = NULL, P0_Type = NULL, P1_Date = NULL, P1_Time = NULL, P1_Model = NULL, P1_CartType = NULL, P1_Frequency = NULL, P3_DateTime = NULL, LastQC_Date = NULL,LastQC_Time = NULL, Delete_Date = '" & NowDate & "', Delete_Time = '" & NowTime & "', Delete_TestStep = '" & TDData(SearchList.TestStep) & "' WHERE PV_SN = '" & SerialNum & "'" + Dim delTable As String + Dim delTestStep As String + If LDMUse Then + delTable = ApplyLDMDB + delTestStep = LDMData(ldmSearchList.TestStep) + Else + delTable = ApplyCartDB + delTestStep = TDData(SearchList.TestStep) + End If + DBCmd = "UPDATE " & delTable & " SET TestStep = '15', Product_SN = NULL, Ct_Manufacture_Name = NULL, Ct_Manufacture_Year = NULL, Ct_Manufacture_Month = NULL, Ct_SN = NULL, Ct_Abroad = NULL, Ct_Agency = NULL, Ct_Frequency = NULL, Ct_Max_ShotCnt = NULL, Ct_Remain_ShotCnt = NULL, P0_Date = NULL, P0_Time = NULL, P0_Model = NULL, P0_Type = NULL, P1_Date = NULL, P1_Time = NULL, P1_Model = NULL, P1_CartType = NULL, P1_Frequency = NULL, P3_DateTime = NULL, LastQC_Date = NULL,LastQC_Time = NULL, Delete_Date = '" & NowDate & "', Delete_Time = '" & NowTime & "', Delete_TestStep = '" & delTestStep & "' WHERE PV_SN = '" & SerialNum & "'" If DBCommand(DBCmd) Then Return False @@ -2116,6 +2432,7 @@ FailFunc: Private Sub cboPDInfo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboPDInfo.SelectedIndexChanged + LDMUse = False Dim SelectData As String = cboPDInfo.SelectedIndex TimerFalse() @@ -2658,9 +2975,13 @@ FailLoad: Try Const LimitCheck As Int16 = 5 Const RowCount As Int16 = 3 + Dim table As String = ApplyCartDB + If LDMUse Then + table = ApplyLDMDB + End If dgvNowReg.Rows.Clear() - DBCmd = "SELECT Product_SN,DATE_FORMAT(P3_DateTime,'%Y-%m-%d') AS d, DATE_FORMAT(P3_DateTime,'%H:%i:%s') AS t FROM " & ApplyCartDB & " WHERE TestStep > '30' ORDER BY P3_DateTime DESC LIMIT " & LimitCheck & "" + DBCmd = "SELECT Product_SN,DATE_FORMAT(P3_DateTime,'%Y-%m-%d') AS d, DATE_FORMAT(P3_DateTime,'%H:%i:%s') AS t FROM " & table & " WHERE TestStep > '30' ORDER BY P3_DateTime DESC LIMIT " & LimitCheck & "" If DBQueryReader(DBCmd) Then Dim RunCount As Int32 = 0 Dim dgvData(RowCount - 1) As String @@ -2792,6 +3113,8 @@ FailLoad: Private Function CtNumMaxSearch(NowYear As Int16, NowMonth As Int16) As String If TDUseCompare = True Then DBCmd = "SELECT IFNULL(max(Ct_SN),0) FROM " & ApplyCartDB & " WHERE Ct_Manufacture_Year = '" & NowYear & "' AND Ct_Manufacture_Month = '" & NowMonth & "' AND Ct_SN LIKE '" & ClassCode & ColorCode & "%' AND Ct_Model = '" & txbPDModel.Text & "' AND Ct_SN > 100000 AND (Ct_Type = '" & txbPDType.Text & "' OR Ct_Type = 'SET')" + ElseIf LDMUse = True Then + DBCmd = "SELECT IFNULL(max(Ct_SN),0) FROM " & ApplyLDMDB & " WHERE Ct_Manufacture_Year = '" & NowYear & "' AND Ct_Manufacture_Month = '" & NowMonth & "' AND Ct_SN LIKE '" & ClassCode & ColorCode & "%' AND Ct_Model = '" & txbPDModel.Text & "' AND Ct_SN > 100000 AND (Ct_Type = '" & txbPDType.Text & "' OR Ct_Type = 'SET')" Else DBCmd = "SELECT IFNULL(max(Ct_SN),0) FROM " & ApplyNonTDDB & " WHERE Ct_Manufacture_Year = '" & NowYear & "' AND Ct_Manufacture_Month = '" & NowMonth & "' AND Ct_SN LIKE '" & ClassCode & ColorCode & "%' AND Ct_Model = '" & txbPDModel.Text & "' AND Ct_SN > 100000 AND (Ct_Type = '" & txbPDType.Text & "' OR Ct_Type = 'SET')" End If @@ -2949,6 +3272,7 @@ FailLoad: End If If TrayData(TrayDataList.State, i) = 0 Then + Return True '' 한 개라도 처리 안 한 제품이 있을 시 End If diff --git a/MAXIMUM_Product_Program/SqlAddressModule.vb b/MAXIMUM_Product_Program/SqlAddressModule.vb index 0385225..fdd8394 100644 --- a/MAXIMUM_Product_Program/SqlAddressModule.vb +++ b/MAXIMUM_Product_Program/SqlAddressModule.vb @@ -2,6 +2,10 @@ Private Const mainCartDB As String = "jomtTesterDB.jomtCartridgeTbl" Private Const testCartDB As String = "jomtTesterServerDB.jomtCartridgeTbl" + Private Const mainLDMDB As String = "jomtTesterDB.jomtLDMTbl" + Private Const ldmHFDB As String = "jomtTesterDB.jomtLDMTestTbl" + Private Const ldmRFMDB As String = "jomtTesterDB.jomtLDMRfTestTbl" + Private Const mainHFTestDB As String = "jomtTesterDB.jomtHFTestTbl" Private Const testHFTestDB As String = "jomtTesterServerDB.jomtHFTestTbl" @@ -30,6 +34,9 @@ Public ApplyNonTDDB As String = mainNonTDDB Public ApplyReturnDB As String = MainReturnDB Public ApplyModelInfoDB As String = mainModelInfoDB + Public ApplyLDMDB As String = mainLDMDB + Public ApplyLDMHFDB As String = ldmHFDB + Public ApplyLDMRFDB As String = ldmRFMDB Public Sub ServerChanger(ChangeState As Boolean) If ChangeState = True Then