'Imports System.Data.OleDb 'Imports System.Reflection Imports System.ComponentModel Imports Microsoft.Office.Core Imports Excel = Microsoft.Office.Interop.Excel ''Imports Microsoft.Office.Interop Public Class frmMySqlTest Private Enum data_set packcode pack_date set_serial pro_fa_serial lux_fa_serial pro_ey_serial lux_ey_serial pro_bo_serial lux_bo_serial MAXIMUM_serial Alpha_Serial Alpha_fa_Serial Alpha_ey_Serial Alpha_bo_Serial Alto_Serial Effect_Serial EffectV3_Serial MAXIMUM_ALPHA_Serial '신규제품추가 : 추가하는 품목의 변수 추가 ordercode order_name phone ship_date invoice End Enum Private data_set_max_index As Integer = [Enum].GetNames(GetType(data_set)).Length - 1 Private data_select(data_set_max_index) As String Private Enum data_count 'product dummy_0 set_cnt = 1 ' Pro_Set, Lux_Set dummy_2 proface_cnt = 3 luxface_cnt proeye_cnt luxeye_cnt probody_cnt luxbody_cnt maximum_cnt alphaSet_cnt alphaFace_cnt alphaEye_cnt alphaBody_cnt alto_cnt effect_cnt effectV3_cnt maximumAlpha_cnt '신규제품추가 : 추가하는 품목의 변수 추가 'component mask5 mask10 hairband gel minigel ample cream umb fen charger cable toner problack probeige prored propink maxblack maxapr maxmint maxbeige soothing car0 car1 car2 car3 car4 car5 car6 bag cosbag dustbag maxPurple proSnakeBlack kollagen kollagenset kollagen_P kollagenset_P cleansingWater tonerPad maxSaffianoBK hologram1 hologram3 hologram5 caseSaffianoPp maxYellow Kollagen_Pe1 Kollagen_Pe3 Kollagen_Pe5 ATCircleCase APSquareCase maxPeach massageSoothing maxSMint meshpouch firmingAmp hyaluronicAmp nightshot morningshot casemaxwoodi Elicolltoner Elicollamp Elicollcream Elihyaltoner Elihyalamp Elihyalcream Dayshot Beautyshopbag Gummy Stickjelly Newyearbag Emsbelt Beltbag Dayshot2 Elixir Elixirpremium Emsbeltcontrollset FabricBag Goldshopbag MorNigshotset CTBox ElesqLiftingToner ElesqLiftingCeam ElesqLiftingECream ElesqLiftingAmp ElesqAquaToner ElesqAquaCeam ElesqAquaECream ElesqAquaAmp car8 keyring DoenaLiftingToner DoenaLiftingAmp DoenaLiftingCream FirmingCollagenGel keyringSally beautykitHairband beautykitMirrorS beautykitMirrorL '신규구성품추가 : 추가하는 품목의 변수 추가 End Enum Private data_count_max_index As Integer = [Enum].GetNames(GetType(data_count)).Length - 1 Private data_cnt(data_count_max_index) As String Private cmd As String Private dbcmd As String Private order_table As String = "jomtOrderDB.jomtOrderTbl" Private sales_table As String = "jomtTesterDB.jomtSalesPackingTbl" Private order_test As String = "jomtOrderTestDB.jomtTesterOrderTbl" Private sales_test As String = "jomtTesterServerDB.jomtSalesPackingTbl" Private prod_table As String = "jomtTesterDB.jomtProdList" Private component_table As String = "jomtTesterDB.jomtComponentTbl" Private order_db As String = order_table Private sales_db As String = sales_table Private prod_db As String = prod_table Private component_db As String = component_table Private clear_switch As Boolean = False Public InputCnt As Long Public InputCntVal As Integer = 10 Private Sub SetInputCnt() InputCnt = InputCntVal timer_barcode.Enabled = True End Sub Private Sub timer_barcode_Tick(sender As Object, e As EventArgs) Handles timer_barcode.Tick If InputCnt Then InputCnt -= 1 Else timer_barcode.Enabled = False If ckb_barcode.Checked Then btnReadDB_Click(sender, e) Else txbPacking.Focus() txbPacking.Refresh() End If End If End Sub Private Sub txb_clear() If clear_switch = False Then txbPacking.Clear() End If clear_switch = False txb_pack_code.Clear() txb_pack_date.Clear() txb_state_code.Clear() txb_state_date.Clear() txb_state_name.Clear() txb_invoice.Clear() txbPacking.Refresh() txb_pack_code.Refresh() txb_pack_date.Refresh() txb_state_code.Refresh() txb_state_date.Refresh() txb_state_name.Refresh() txb_invoice.Refresh() End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load txb_clear() ' DataGridView를 선택하면 전체 한줄이 선택되게 됩니다. dgv_pack_item.SelectionMode = DataGridViewSelectionMode.FullRowSelect txbPacking.Focus() End Sub 'Private Sub size_est() ' Dim width, height As Integer ' Me.Hide() ' Me.WindowState = FormWindowState.Maximized ' width = Val(Me.Width) ' height = Val(Me.Height) ' Me.MaximumSize = New Size(width, height) ' Me.Width = width ' Me.Height = height ' Me.Show() ' Me.Refresh() 'End Sub Private Sub btnReadDB_Click(sender As Object, e As EventArgs) Handles btnReadDB.Click If txbPacking.Text = "" Then If ckb_state.Checked = True Then MsgBox("전표코드를 입력하여 주십시오.", vbExclamation) Else MsgBox("패킹코드를 입력하여 주십시오.", vbExclamation) End If Else dgv_pack_item.Rows.Clear() If db_select(txbPacking.Text) Then If item_out() Then txb_pack_code.Text = data_select(data_set.packcode) txb_pack_date.Text = data_select(data_set.pack_date) txb_state_code.Text = data_select(data_set.ordercode) txb_state_date.Text = data_select(data_set.ship_date) txb_state_name.Text = data_select(data_set.order_name) txb_invoice.Text = data_select(data_set.invoice) End If Else txbPacking.BackColor = Color.Red MsgBox("등록되지 않은 데이터 입니다. 패킹 코드를 확인하여 주십시오.", vbCritical) End If End If txbPacking.Focus() End Sub Private Function db_select(serial As String) As Boolean dbcmd = "SELECT IFNULL(sale.PackingCode,'NULL') , IFNULL(sale.`Data`,'NULL') , IFNULL(sale.Main_Product_SN,'NULL') , IFNULL(sale.Pro_Face_Serial,'NULL') , IFNULL(sale.Lux_Face_Serial,'NULL') , IFNULL(sale.Pro_Eye_Serial,'NULL') , IFNULL(sale.Lux_Eye_Serial,'NULL') , IFNULL(sale.Pro_Body_Serial,'NULL') , IFNULL(sale.Lux_Body_Serial,'NULL') , IFNULL(sale.MAXIMUM_SN,'NULL') , IFNULL(sale.Alpha_Set_Serial,'NULL') , IFNULL(sale.Alpha_Face_Serial,'NULL') , IFNULL(sale.Alpha_Eye_Serial,'NULL') , IFNULL(sale.Alpha_Body_Serial,'NULL') , IFNULL(sale.Alto_Serial,'NULL') , IFNULL(sale.Effect_Serial,'NULL') , IFNULL(sale.EffectV3_Serial,'NULL') , IFNULL(sale.MAXIMUM_ALPHA_SN,'NULL') , IFNULL(otb.Order_Code,'NULL') , IFNULL(otb.Orderer_Name,'NULL') , IFNULL(otb.Phone_Number,'NULL') , IFNULL(otb.Shipment_Date,'NULL') , IFNULL(otb.Invoice_Number,'NULL') , IFNULL(sale.Set_Cnt,'0') , '0' , IFNULL(sale.Pro_CT_FaceCnt,'0') , IFNULL(sale.Lux_CT_FaceCnt,'0') , IFNULL(sale.Pro_CT_EYE_Cnt,'0') , IFNULL(sale.Lux_CT_EYE_Cnt,'0') , IFNULL(sale.Pro_CT_BodyCnt,'0') , IFNULL(sale.Lux_CT_BodyCnt,'0') , IFNULL(sale.MAXIMUM_Cnt,'0') , IFNULL(sale.Alpha_Set_Cnt,'0') , IFNULL(sale.Alpha_Face_Cnt,'0') , IFNULL(sale.Alpha_Eye_Cnt,'0') , IFNULL(sale.Alpha_Body_Cnt,'0') , IFNULL(sale.Alto_Cnt,'0') , IFNULL(sale.Effect_Cnt,'0') , IFNULL(sale.EffectV3_Cnt,'0') , IFNULL(sale.MAXIMUM_ALPHA_Cnt,'0') , IFNULL(sale.Mask5Cnt,'0') , IFNULL(sale.Mask10Cnt,'0') , IFNULL(sale.HairBandCnt,'0') , IFNULL(sale.GelCnt,'0') , IFNULL(sale.MiniGelCnt,'0') , IFNULL(sale.AmpleCnt,'0') , IFNULL(sale.CreamCnt,'0') , IFNULL(sale.UmbrellaCnt,'0') , IFNULL(sale.FenCnt,'0') , IFNULL(sale.ChargerCnt,'0') , IFNULL(sale.CableCnt,'0') , IFNULL(sale.TonerCnt,'0') , IFNULL(sale.Case_PRO_Black,'0') , IFNULL(sale.Case_PRO_Beige,'0') , IFNULL(sale.Case_PRO_Red,'0') , IFNULL(sale.Case_PRO_Pink,'0') , IFNULL(sale.Case_MAX_Black,'0') , IFNULL(sale.Case_MAX_Apr,'0') , IFNULL(sale.Case_MAX_Mint,'0') , IFNULL(sale.Case_MAX_Beige,'0') , IFNULL(sale.SoothingGelCnt,'0') , IFNULL(sale.Carton0_Cnt,'0') , IFNULL(sale.Carton1_Cnt,'0') , IFNULL(sale.Carton2_Cnt,'0') , IFNULL(sale.Carton3_Cnt,'0') , IFNULL(sale.Carton4_Cnt,'0') , IFNULL(sale.Carton5_Cnt,'0') , IFNULL(sale.Carton6_Cnt,'0') , IFNULL(sale.Shopbag_Cnt,'0') , IFNULL(sale.CosShopbag_Cnt,'0') , IFNULL(sale.DustBagCnt,'0') , IFNULL(sale.Case_MAX_Purple,'0') , IFNULL(sale.Case_PRO_SnakeBlakc,'0') , IFNULL(sale.KollagenCnt,'0') , IFNULL(sale.KollagenSetCnt,'0') , IFNULL(sale.Kollagen_PCnt,'0') , IFNULL(sale.KollagenSet_PCnt,'0') , IFNULL(sale.CleansingWaterCnt,'0') , IFNULL(sale.TonerPadCnt,'0') , IFNULL(sale.Case_MAX_SafBK_Cnt,'0') , IFNULL(sale.Hologram_1Cnt,'0') , IFNULL(sale.Hologram_3Cnt,'0') , IFNULL(sale.Hologram_5Cnt,'0') , IFNULL(sale.Case_MAX_SafPp_Cnt,'0') , IFNULL(sale.Case_MAX_Yellow,'0') , IFNULL(sale.Kollagen_Pe1Cnt,'0') , IFNULL(sale.Kollagen_Pe3Cnt,'0') , IFNULL(sale.Kollagen_Pe5Cnt,'0') , IFNULL(sale.ATCircleCaseCnt,'0') , IFNULL(sale.APSquareCaseCnt,'0') , IFNULL(sale.Case_MAX_Peach,'0') , IFNULL(sale.MasSoothingCnt,'0') , IFNULL(sale.Case_MAX_SMintCnt,'0') , IFNULL(sale.MeshPouchCnt,'0') , IFNULL(sale.FirmingAmpCnt,'0') , IFNULL(sale.HyaluronicAmpCnt,'0') , IFNULL(sale.nightshotcnt,'0') , IFNULL(sale.morningshotcnt,'0') , IFNULL(sale.casemaxwoodicnt,'0') , IFNULL(sale.Elicolltonercnt,'0') , IFNULL(sale.Elicollampcnt,'0') , IFNULL(sale.Elicollcreamcnt,'0') , IFNULL(sale.Elihyaltonercnt,'0') , IFNULL(sale.Elihyalampcnt,'0') , IFNULL(sale.Elihyalcreamcnt,'0') , IFNULL(sale.Dayshotcnt,'0') , IFNULL(sale.Beautyshopbagcnt,'0') , IFNULL(sale.Gummycnt,'0') , IFNULL(sale.stickjellycnt,'0') , IFNULL(sale.Newyearbagcnt,'0') , IFNULL(sale.Emsbeltcnt,'0') , IFNULL(sale.Beltbagcnt,'0') , IFNULL(sale.Dayshot2cnt,'0') , IFNULL(sale.Elixircnt,'0') , IFNULL(sale.Elixirpremiumcnt,'0') , IFNULL(sale.Emsbeltcontrollsetcnt,'0') , IFNULL(sale.FabricBagcnt,'0') , IFNULL(sale.Goldshopbagcnt,'0') , IFNULL(sale.MorNigshotsetcnt,'0') , IFNULL(sale.CTBoxcnt,'0') , IFNULL(sale.ElesqLiftingTonercnt,'0') , IFNULL(sale.ElesqLiftingCeamcnt,'0') , IFNULL(sale.ElesqLiftingECreamcnt,'0') , IFNULL(sale.ElesqLiftingAmpcnt,'0') , IFNULL(sale.ElesqAquaTonercnt,'0') , IFNULL(sale.ElesqAquaCeamcnt,'0') , IFNULL(sale.ElesqAquaECreamcnt,'0') , IFNULL(sale.ElesqAquaAmpcnt,'0') , IFNULL(sale.Carton8_Cnt,'0') , IFNULL(sale.KeyringCnt,'0') , IFNULL(sale.DoenaLiftingTonercnt,'0') , IFNULL(sale.DoenaLiftingAmpcnt,'0') , IFNULL(sale.DoenaLiftingCreamcnt,'0') , IFNULL(sale.FirmingCollagenGelcnt,'0') , IFNULL(sale.KeyringSallyCnt,'0') , IFNULL(sale.BeautykitHairbandCnt,'0') , IFNULL(sale.BeautykitMirrorSCnt,'0') , IFNULL(sale.BeautykitMirrorLCnt,'0') FROM " & sales_db & " AS sale LEFT JOIN " & order_db & " AS otb ON sale.PackingCode = otb.Packing_Code WHERE sale.PackingCode = '" & serial & "' GROUP BY sale.PackingCode" '신규제품추가/신규구성품추가 : 추가하는 품목의 시리얼, 개수 조회 추가 If DBQueryReader(dbcmd) Then For i = 0 To data_set_max_index data_select(i) = sqlDataQuery(i) Next For i = 1 To data_count_max_index data_cnt(i) = sqlDataQuery(data_set_max_index + i) Next Return True Else For i = 0 To data_set_max_index data_select(i) = "NULL" Next For i = 0 To data_count_max_index data_cnt(i) = "0" Next Return False End If End Function Private Function item_out() As Boolean Dim item_name, item_serial As String Dim dgv_switch As Boolean Try For i = 0 To data_count_max_index dgv_switch = False item_name = Nothing item_serial = Nothing If data_cnt(i) > 0 Then If i = data_count.set_cnt Then 'Pro_Set, Lux_Set If Mid(data_select(data_set.set_serial), 1, 2) = "10" Then item_name = "DUALSONIC Pro 1Set (KR)" Else item_name = "DUALSONIC Lux 1Set (KR)" End If item_serial = data_select(data_set.set_serial) ElseIf i < data_count.mask5 Then dbcmd = "SELECT ItemName FROM " & prod_db & " WHERE ProdCode = '" & i & "' AND ItemName NOT LIKE '%체험%' LIMIT 1" If DBQueryReader(dbcmd) Then item_name = sqlDataQuery(0) End If item_serial = data_select(i) Else dbcmd = "SELECT ItemName FROM " & component_db & " WHERE ProdCode = '" & (i - data_count.mask5) & "' LIMIT 1" If DBQueryReader(dbcmd) Then item_name = sqlDataQuery(0) End If End If dgv_switch = True End If If dgv_switch = True Then dgv_pack_item.Rows.Add(item_name, data_cnt(i), item_serial) End If Next Return True Catch ex As Exception MsgBox(Err.Description, vbCritical) Return False End Try End Function Private Sub txbPacking_Click(sender As Object, e As EventArgs) Handles txbPacking.Click txbPacking.Text = "" txbPacking.BackColor = Color.White End Sub ' Private Sub txbPacking_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txbPacking.KeyDown 'If e.KeyCode = Keys.KeyCode.Return Then ' btnReadDB_Click(sender, e) ' End If ' End Sub Private Sub txbPacking_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txbPacking.KeyDown If e.KeyCode = Keys.Return Then btnReadDB_Click(sender, EventArgs.Empty) End If End Sub Private Sub btn_delete_Click(sender As Object, e As EventArgs) Handles btn_delete.Click Dim msg_cnt As Int16 Dim serial_data As String If dgv_pack_item.Rows.Count <> 1 Then If ckb_state.Checked = True Then msg_cnt = MsgBox("해당 패킹 번호의 전표 데이터만 삭제하시겠습니까?", vbExclamation + vbOKCancel) If msg_cnt = 1 Then serial_data = delete_sales() If txb_state_code.Text <> "NULL" Then If state_delete(serial_data) Then txbPacking.BackColor = Color.Green clear_switch = True txb_clear() dgv_pack_item.Rows.Clear() MsgBox("데이터 삭제가 완료되었습니다.", vbInformation) Else txbPacking.BackColor = Color.Red MsgBox("데이터베이스 안에 전표 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical) End If Else txbPacking.BackColor = Color.Red MsgBox("데이터베이스 안에 전표 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical) End If Else MsgBox("삭제가 취소되었습니다.", vbInformation) End If Else msg_cnt = MsgBox("해당 패킹 및 전표 데이터를 삭제하시겠습니까?", vbExclamation + vbOKCancel) If msg_cnt = 1 Then serial_data = delete_sales() If txb_pack_code.Text <> "NULL" Then If pack_delete(serial_data) Then If txb_state_code.Text <> "NULL" Then If state_delete(serial_data) Then txbPacking.BackColor = Color.Green clear_switch = True txb_clear() dgv_pack_item.Rows.Clear() MsgBox("데이터 삭제가 완료되었습니다.", vbInformation) Else txbPacking.BackColor = Color.Red MsgBox("데이터베이스 안에 전표 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical) End If Else txbPacking.BackColor = Color.Green clear_switch = True txb_clear() dgv_pack_item.Rows.Clear() MsgBox("데이터 삭제가 완료되었습니다.", vbInformation) End If Else txbPacking.BackColor = Color.Red MsgBox("데이터베이스 안에 패킹 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical) End If End If Else MsgBox("삭제가 취소되었습니다.", vbInformation) End If End If Else txbPacking.BackColor = Color.Red MsgBox("삭제할 데이터가 존재하지 않습니다.", vbExclamation) End If txbPacking.Focus() End Sub Private Function state_delete(serial As String) As Boolean If txb_invoice.Text <> "NULL" Then serial = txb_invoice.Text & "," & serial End If dbcmd = "UPDATE " & order_db & " SET Invoice_Number = NULL, Packing_Code = NULL, Serial_Number = NULL, Buy_Type = NULL, release_state = NULL, note = '" & serial & "' WHERE Order_Code = '" & txb_state_code.Text & "'" If DBCommand(dbcmd) Then Return True End If Return False End Function Private Function pack_delete(serial As String) As Boolean dbcmd = "UPDATE " & sales_db & " SET PackingCode = 'null_" & txb_pack_code.Text & "' , Main_Product_SN = NULL , Main_FACE_SN = NULL , Main_EYE_SN = NULL , Pro_Face_Serial = NULL , Pro_Eye_Serial = NULL , Pro_Body_Serial = NULL , Lux_Face_Serial = NULL , Lux_Eye_Serial = NULL , Lux_Body_Serial = NULL , MAXIMUM_SN = NULL , Alpha_Set_Serial = NULL , Alpha_Face_Serial = NULL , Alpha_Eye_Serial = NULL , Alpha_Body_Serial = NULL , Alto_Serial = NULL , Effect_Serial = NULL , EffectV3_Serial = NULL , MAXIMUM_ALPHA_SN = NULL , note = '" & serial & "' WHERE PackingCode = '" & txb_pack_code.Text & "'" '신규제품추가 : 추가하는 품목의 변수 추가 If DBCommand(dbcmd) Then Return True End If Return False End Function Private Function delete_sales() As String Dim serial_data As String = "" For i = 0 To dgv_pack_item.Rows.Count - 2 If dgv_pack_item.Rows(i).Cells(2).Value IsNot Nothing AndAlso dgv_pack_item.Rows(i).Cells(2).Value.ToString() <> "" Then If serial_data = "" Then serial_data = dgv_pack_item.Rows(i).Cells(2).Value Else serial_data = serial_data & "," & dgv_pack_item.Rows(i).Cells(2).Value End If End If Next Return serial_data End Function Private Sub txbPacking_TextChanged(sender As Object, e As EventArgs) Handles txbPacking.TextChanged Dim tmpStr As String If InputCnt = 0 And ckb_barcode.Checked = True Then tmpStr = txbPacking.Text If (Len(tmpStr) > 1) Then tmpStr = Mid(tmpStr, Len(tmpStr), 1) txbPacking.Clear() txbPacking.AppendText(tmpStr) End If SetInputCnt() End If End Sub Private Sub txb_pack_code_Click(sender As Object, e As EventArgs) Handles txb_pack_code.Click, txb_invoice.Click, txb_pack_date.Click, txb_state_code.Click, txb_state_date.Click, txb_state_name.Click, dgv_pack_item.Click, ckb_state.CheckedChanged, ckb_barcode.CheckedChanged txbPacking.Focus() End Sub End Class