'Imports System.Data.OleDb 'Imports System.Reflection Imports System.ComponentModel Imports Excel = Microsoft.Office.Interop.Excel ''Imports Microsoft.Office.Interop Public Class frmMySqlTest Private Enum data_set packcode pack_date set_serial bag_type etc_name pro_fa_serial pro_ey_serial pro_bo_serial lux_fa_serial lux_ey_serial lux_bo_serial MAXIMUM_serial Alpha_Serial Alpha_fa_Serial Alpha_ey_Serial Alpha_bo_Serial Alto_Serial Effect_Serial ordercode order_name phone ship_date invoice max End Enum Private data_select(data_set.max) As String Private Enum data_count set_cnt mask5_cnt mask10_cnt hair_cnt gel_cnt minigel_cnt amp_cnt cre_cnt umb_cnt fen_cnt char_cnt cab_cnt toner_cnt case_cnt dustbag_cnt bag_cnt etc_cnt pro_fa_cnt pro_ey_cnt pro_bo_cnt lux_fa_cnt lux_ey_cnt lux_bo_cnt MAXIMUM_cnt Alpha_cnt Alpha_fa_cnt Alpha_ey_cnt Alpha_bo_cnt Alto_cnt Effect_cnt max End Enum Private data_cnt(data_count.max) 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 order_db As String = order_table Private sales_db As String = sales_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.Set_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.CaseCnt,'0') , IFNULL(sale.DustBagCnt,'0'), IFNULL(sale.BagCnt,'0'), IFNULL(sale.BagType,'0'),IFNULL(sale.EtcCnt,'0'),IFNULL(sale.etcName,'NULL'),IFNULL(sale.Pro_Face_Serial,'NULL'),IFNULL(sale.Pro_CT_FaceCnt,'0'),IFNULL(sale.Pro_Eye_Serial,'NULL'),IFNULL(sale.Pro_CT_EYE_Cnt,'0'),IFNULL(sale.Pro_Body_Serial,'NULL'),IFNULL(sale.Pro_CT_BodyCnt,'0'),IFNULL(sale.Lux_Face_Serial,'NULL'),IFNULL(sale.Lux_CT_FaceCnt,'0'),IFNULL(sale.Lux_Eye_Serial,'NULL'),IFNULL(sale.Lux_CT_EYE_Cnt,'0'),IFNULL(sale.Lux_Body_Serial,'NULL'),IFNULL(sale.Lux_CT_BodyCnt,'0'),IFNULL(sale.MAXIMUM_SN,'NULL'),IFNULL(sale.MAXIMUM_Cnt,'0'), IFNULL(sale.Alpha_Set_Serial,'NULL'),IFNULL(sale.Alpha_Set_cnt,'0'),IFNULL(sale.Alpha_Face_Serial,'NULL'),IFNULL(sale.Alpha_Face_cnt,'0'),IFNULL(sale.Alpha_Eye_Serial,'NULL'),IFNULL(sale.Alpha_Eye_cnt,'0'),IFNULL(sale.Alpha_Body_Serial,'NULL'),IFNULL(sale.Alpha_Body_cnt,'0'),IFNULL(sale.Alto_Serial,'NULL'),IFNULL(sale.Alto_cnt,'0'),IFNULL(sale.Effect_Serial,'NULL'),IFNULL(sale.Effect_cnt,'0'),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') 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 data_select(data_set.packcode) = sqlDataQuery(0) data_select(data_set.pack_date) = sqlDataQuery(1) data_select(data_set.set_serial) = sqlDataQuery(2) data_cnt(data_count.set_cnt) = sqlDataQuery(3) data_cnt(data_count.mask5_cnt) = sqlDataQuery(4) data_cnt(data_count.mask10_cnt) = sqlDataQuery(5) data_cnt(data_count.hair_cnt) = sqlDataQuery(6) data_cnt(data_count.gel_cnt) = sqlDataQuery(7) data_cnt(data_count.minigel_cnt) = sqlDataQuery(8) data_cnt(data_count.amp_cnt) = sqlDataQuery(9) data_cnt(data_count.cre_cnt) = sqlDataQuery(10) data_cnt(data_count.umb_cnt) = sqlDataQuery(11) data_cnt(data_count.fen_cnt) = sqlDataQuery(12) data_cnt(data_count.char_cnt) = sqlDataQuery(13) data_cnt(data_count.cab_cnt) = sqlDataQuery(14) data_cnt(data_count.toner_cnt) = sqlDataQuery(15) data_cnt(data_count.case_cnt) = sqlDataQuery(16) data_cnt(data_count.dustbag_cnt) = sqlDataQuery(17) data_cnt(data_count.bag_cnt) = sqlDataQuery(18) data_select(data_set.bag_type) = sqlDataQuery(19) data_cnt(data_count.etc_cnt) = sqlDataQuery(20) data_select(data_set.etc_name) = sqlDataQuery(21) data_select(data_set.pro_fa_serial) = sqlDataQuery(22) data_cnt(data_count.pro_fa_cnt) = sqlDataQuery(23) data_select(data_set.pro_ey_serial) = sqlDataQuery(24) data_cnt(data_count.pro_ey_cnt) = sqlDataQuery(25) data_select(data_set.pro_bo_serial) = sqlDataQuery(26) data_cnt(data_count.pro_bo_cnt) = sqlDataQuery(27) data_select(data_set.lux_fa_serial) = sqlDataQuery(28) data_cnt(data_count.lux_fa_cnt) = sqlDataQuery(29) data_select(data_set.lux_ey_serial) = sqlDataQuery(30) data_cnt(data_count.lux_ey_cnt) = sqlDataQuery(31) data_select(data_set.lux_bo_serial) = sqlDataQuery(32) data_cnt(data_count.lux_bo_cnt) = sqlDataQuery(33) data_select(data_set.MAXIMUM_serial) = sqlDataQuery(34) data_cnt(data_count.MAXIMUM_cnt) = sqlDataQuery(35) data_select(data_set.Alpha_Serial) = sqlDataQuery(36) data_cnt(data_count.Alpha_cnt) = sqlDataQuery(37) data_select(data_set.Alpha_fa_Serial) = sqlDataQuery(38) data_cnt(data_count.Alpha_fa_cnt) = sqlDataQuery(39) data_select(data_set.Alpha_ey_Serial) = sqlDataQuery(40) data_cnt(data_count.Alpha_ey_cnt) = sqlDataQuery(41) data_select(data_set.Alpha_bo_Serial) = sqlDataQuery(42) data_cnt(data_count.Alpha_bo_cnt) = sqlDataQuery(43) data_select(data_set.Alto_Serial) = sqlDataQuery(44) data_cnt(data_count.Alto_cnt) = sqlDataQuery(45) data_cnt(data_count.Effect_cnt) = sqlDataQuery(46) data_select(data_set.Effect_Serial) = sqlDataQuery(47) data_select(data_set.ordercode) = sqlDataQuery(48) data_select(data_set.order_name) = sqlDataQuery(49) data_select(data_set.phone) = sqlDataQuery(50) data_select(data_set.ship_date) = sqlDataQuery(51) data_select(data_set.invoice) = sqlDataQuery(52) Return True Else data_select(data_set.packcode) = "NULL" data_select(data_set.pack_date) = "NULL" data_select(data_set.set_serial) = "NULL" data_cnt(data_count.set_cnt) = "0" data_cnt(data_count.mask5_cnt) = "0" data_cnt(data_count.mask10_cnt) = "0" data_cnt(data_count.hair_cnt) = "0" data_cnt(data_count.gel_cnt) = "0" data_cnt(data_count.minigel_cnt) = "0" data_cnt(data_count.amp_cnt) = "0" data_cnt(data_count.cre_cnt) = "0" data_cnt(data_count.umb_cnt) = "0" data_cnt(data_count.fen_cnt) = "0" data_cnt(data_count.char_cnt) = "0" data_cnt(data_count.cab_cnt) = "0" data_cnt(data_count.toner_cnt) = "0" data_cnt(data_count.case_cnt) = "0" data_cnt(data_count.dustbag_cnt) = "0" data_cnt(data_count.bag_cnt) = "0" data_select(data_set.bag_type) = "NULL" data_cnt(data_count.etc_cnt) = "0" data_select(data_set.etc_name) = "NULL" data_select(data_set.pro_fa_serial) = "NULL" data_cnt(data_count.pro_fa_cnt) = "0" data_select(data_set.pro_ey_serial) = "NULL" data_cnt(data_count.pro_ey_cnt) = "0" data_select(data_set.pro_bo_serial) = "NULL" data_cnt(data_count.pro_bo_cnt) = "0" data_select(data_set.lux_fa_serial) = "NULL" data_cnt(data_count.lux_fa_cnt) = "0" data_select(data_set.lux_ey_serial) = "NULL" data_cnt(data_count.lux_ey_cnt) = "0" data_select(data_set.lux_bo_serial) = "NULL" data_cnt(data_count.lux_bo_cnt) = "0" data_select(data_set.MAXIMUM_serial) = "NULL" data_cnt(data_count.MAXIMUM_cnt) = "0" data_select(data_set.Alpha_Serial) = "NULL" data_cnt(data_count.Alpha_cnt) = "0" data_select(data_set.Alpha_fa_Serial) = "NULL" data_cnt(data_count.Alpha_fa_cnt) = "0" data_select(data_set.Alpha_ey_Serial) = "NULL" data_cnt(data_count.Alpha_ey_cnt) = "0" data_select(data_set.Alpha_bo_Serial) = "NULL" data_cnt(data_count.Alpha_bo_cnt) = "0" data_select(data_set.Alto_Serial) = "NULL" data_cnt(data_count.Alto_cnt) = "0" data_select(data_set.Effect_Serial) = "NULL" data_cnt(data_count.Effect_cnt) = "0" data_select(data_set.ordercode) = "NULL" data_select(data_set.order_name) = "NULL" data_select(data_set.phone) = "NULL" data_select(data_set.ship_date) = "NULL" data_select(data_set.invoice) = "NULL" 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 dgv_switch = False item_name = Nothing item_serial = Nothing If data_cnt(data_count.max - i) > 0 Then Select Case data_count.max - i Case 0 If Mid(data_select(data_set.max), 1, 2) = "10" Then item_name = "DUALSONIC Pro 1Set (KR)" item_serial = data_select(data_set.max) dgv_switch = True Else item_name = "DUALSONIC Lux 1Set (KR)" item_serial = data_select(data_set.max) dgv_switch = True End If Case 1 item_name = "DUALSONIC Elixir MASK 5EA" dgv_switch = True Case 2 item_name = "DUALSONIC Elixir MASK 10EA" dgv_switch = True Case 3 item_name = "[사은품] 벨크로헤어밴드" dgv_switch = True Case 4 item_name = "DUALSONIC Blooming Moisture Gel" dgv_switch = True Case 5 item_name = "DUALSONIC Blooming Moisture Gel(30ml * 5EA)" dgv_switch = True Case 6 item_name = "DUALSONIC Skin Cell Elixir Ampoule" dgv_switch = True Case 7 item_name = "DUALSONIC Skin Cell Elixir Cream" dgv_switch = True Case 8 item_name = "[사은품] 우산" dgv_switch = True Case 9 item_name = "[사은품] 손풍기" dgv_switch = True Case 10 item_name = "충전기 Assy" dgv_switch = True Case 11 item_name = "마이크로 충전 케이블" dgv_switch = True Case 12 item_name = "DUALSONIC Skin Elixir Toner" dgv_switch = True Case 13 item_name = "DUALSONIC 가죽 케이스 세트" dgv_switch = True Case 14 item_name = "DUALSONIC DUST BAG 1BOX" dgv_switch = True Case 15 item_name = data_select(data_set.bag_type) dgv_switch = True Case 16 item_name = data_select(data_set.etc_name) dgv_switch = True Case 17 item_name = "DUALSONIC Pro FACE CARTRIDGE" item_serial = data_select(data_set.pro_fa_serial) dgv_switch = True Case 18 item_name = "DUALSONIC Pro Eye CARTRIDGE" item_serial = data_select(data_set.pro_ey_serial) dgv_switch = True Case 19 item_name = "DUALSONIC Pro Body Cartridge 1Set Rev.0 (KR)" item_serial = data_select(data_set.pro_bo_serial) dgv_switch = True Case 20 item_name = "DUALSONIC Lux FACE CARTRIDGE" item_serial = data_select(data_set.lux_fa_serial) dgv_switch = True Case 21 item_name = "DUALSONIC Lux Eye CARTRIDGE" item_serial = data_select(data_set.lux_ey_serial) dgv_switch = True Case 22 item_name = "DUALSONIC Lux Body Cartridge 1Set Rev.0 (KR)" item_serial = data_select(data_set.lux_bo_serial) dgv_switch = True Case 23 item_name = "MAXIMUM FULL PACK (KR)" item_serial = data_select(data_set.MAXIMUM_serial) dgv_switch = True Case 24 item_name = "Alpha Set (KR)" item_serial = data_select(data_set.Alpha_Serial) dgv_switch = True Case 25 item_name = "Alpha FACE CARTRIDGE" item_serial = data_select(data_set.Alpha_fa_Serial) dgv_switch = True Case 26 item_name = "Alpha Eye CARTRIDGE" item_serial = data_select(data_set.Alpha_ey_Serial) dgv_switch = True Case 27 item_name = "Alpha Body CARTRIDGE" item_serial = data_select(data_set.Alpha_bo_Serial) dgv_switch = True Case 28 item_name = "Alto PACK (KR)" item_serial = data_select(data_set.Alto_Serial) dgv_switch = True Case 29 item_name = "Effect PACK (KR)" item_serial = data_select(data_set.Effect_Serial) dgv_switch = True End Select End If If dgv_switch = True Then dgv_pack_item.Rows.Add(item_name, data_cnt(data_count.max - 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 , 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