Option Strict Off Public Class METOO專用PAGE導入 Private ReadOnly ds, ds1, ds2, ds4, ds5, ds6 As New DataSet Dim file_name, 編號, 顏色編號, 雙數資料, 面料編號 As String Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet Dim N1 As Integer Dim 顏色數量 As Integer = 0 : Dim 顏色總數 As Integer = 0 : Dim 面料數量 As Integer = 0 Private Sub Set_清單() 表單1_dgv.DataSource = Nothing : ds.Clear() 表單1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 表單1_dgv.ColumnHeadersHeight = 25 表單1_dgv.AllowUserToAddRows = False SQL_樣品進度控制表METOO專用1() da.Fill(ds) : 表單1_dgv.DataSource = ds.Tables(0) : conn.Close() 表單1_dgv.Columns(0).Width = 120 : 表單1_dgv.Columns(1).Width = 100 : 表單1_dgv.Columns(2).Width = 200 : 表單1_dgv.Columns(3).Width = 200 表單1_dgv.Columns(4).Width = 200 : 表單1_dgv.Columns(5).Width = 80 : 表單1_dgv.Columns(6).Width = 320 : 表單1_dgv.Columns(7).Width = 320 表單1_dgv.Columns(8).Width = 320 表單1_dgv.EditMode = DataGridViewEditMode.EditOnEnter End Sub Private Sub Set_清單1() 表單2_dgv.DataSource = Nothing : ds1.Clear() 表單2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 表單2_dgv.ColumnHeadersHeight = 25 表單2_dgv.AllowUserToAddRows = False SQL_樣品進度控制表METOO專用2() da.Fill(ds1) : 表單2_dgv.DataSource = ds1.Tables(0) : conn.Close() 表單2_dgv.Columns(0).Width = 120 : 表單2_dgv.Columns(1).Width = 100 : 表單2_dgv.Columns(2).Width = 100 : 表單2_dgv.Columns(3).Width = 345 表單2_dgv.Columns(4).Width = 200 : 表單2_dgv.Columns(5).Width = 346 表單2_dgv.EditMode = DataGridViewEditMode.EditOnEnter End Sub Private Sub Set_清單2() 表單3_dgv.DataSource = Nothing : ds2.Clear() 表單3_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 表單3_dgv.ColumnHeadersHeight = 25 表單3_dgv.AllowUserToAddRows = False SQL_樣品進度控制表METOO專用3() da.Fill(ds2) : 表單3_dgv.DataSource = ds2.Tables(0) : conn.Close() 表單3_dgv.Columns(0).Width = 120 : 表單3_dgv.Columns(1).Width = 100 : 表單3_dgv.Columns(2).Width = 100 : 表單3_dgv.Columns(3).Width = 300 表單3_dgv.EditMode = DataGridViewEditMode.EditOnEnter End Sub Private Sub ComboBox7下拉表單資料載入() SQL_季節清單() SEASON_cb.Items.Clear() : While (dr.Read()) : SEASON_cb.Items.Add(dr("SEASON")) : End While : conn.Close() End Sub Private Sub ComboBox2下拉表單資料載入() SQL_客戶簡稱() CUST_cb.Items.Clear() : While (dr.Read()) : CUST_cb.Items.Add(dr("客戶簡稱")) : End While : conn.Close() End Sub Private Sub METOO專用PAGE導入_Load(sender As Object, e As EventArgs) Handles MyBase.Load WINPROFIT_ERP_SYS.WindowState = 2 : Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True ComboBox7下拉表單資料載入() : ComboBox2下拉表單資料載入() End Sub Private Sub DataGridView2_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 表單2_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 表單2_dgv.Rows.Count - 1 Then Exit Sub Else If 表單2_dgv(0, e.RowIndex).Value.ToString <> 表單2_dgv(0, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(表單2_dgv.RowHeadersVisible, 表單2_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 表單2_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 表單2_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If End Sub Private Sub DataGridView3_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 表單3_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 表單3_dgv.Rows.Count - 1 Then Exit Sub Else If 表單3_dgv(0, e.RowIndex).Value.ToString <> 表單3_dgv(0, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(表單3_dgv.RowHeadersVisible, 表單3_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 表單3_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 表單3_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles EXCEL導入_bt.Click If CUST_cb.Text = "" Or SEASON_cb.Text = "" Then MsgBox("季節與客戶不可空白") Else If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then : file_name = OpenFileDialog1.FileName : End If SQL_一筆檔案名稱() If dr.Read() Then : MsgBox("該檔案已入過系統") : conn.Close() Else conn.Close() xlApp = CreateObject("Excel.Application") xlApp.DisplayAlerts = False xlApp.Visible = True Dim xlBook As Object = xlApp.Workbooks.Open(file_name) N1 = xlBook.Sheets.Count For i As Integer = 1 To N1 If Strings.Left(xlBook.Sheets(i).Name, 4) = "PAGE" Then xlSheet = xlApp.Worksheets(i) xlSheet.Activate() 顏色數量 = 0 For ii As Integer = 3 To 10 If xlSheet.Cells(29, ii).value <> "" Then 顏色數量 += 1 : 顏色總數 += 1 SQL_流水號() If dr.Read() Then : 編號 = dr("流水號").ToString : Else : 編號 = "PG00000000" : End If conn.Close() Dim NUM1 As Integer = Double.Parse(Strings.Right(編號, 8)) + 1 If NUM1 < 10 Then : 編號 = "PG" & "0000000" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 編號 = "PG" & "000000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then : 編號 = "PG" & "00000" & NUM1 : ElseIf NUM1 > 999 And NUM1 < 10000 Then : 編號 = "PG" & "0000" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 編號 = "PG" & "000" & NUM1 : ElseIf NUM1 > 99999 And NUM1 < 100000 Then : 編號 = "PG" & "00" & NUM1 ElseIf NUM1 > 999999 And NUM1 < 1000000 Then : 編號 = "PG" & "0" & NUM1 : ElseIf NUM1 > 9999999 Then : 編號 = "PG" & NUM1 : End If If 顏色總數 < 10 Then : 顏色編號 = "C0" & 顏色總數 : Else : 顏色編號 = "C" & 顏色總數 : End If For iii As Integer = 29 To 999 If Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "LOTS" Then : 雙數資料 = xlSheet.Cells(iii, ii).value : iii = 999 : End If Next ConnOpen() SQL1 = "INSERT INTO 樣品進度控制表METOO專用 (流水號, 季節, 客戶, S_N, C_N, COLOR_NO, COLOR, LOTS, 檔案名稱) " & "VALUES ('" & 編號 & "',N'" & SEASON_cb.Text & "',N'" & CUST_cb.Text & "',N'" & xlSheet.Cells(2, 3).value & "',N'" & xlSheet.Cells(3, 3).value & "',N'" & 顏色編號 & "',N'" & xlSheet.Cells(29, ii).value & "',N'" & 雙數資料 & "',N'" & file_name & "')" cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() 面料數量 = 0 For iii As Integer = 29 To 999 If Strings.Left(xlSheet.Cells(iii, 2).value, 5) = "UPPER" Or Strings.Left(xlSheet.Cells(iii, 2).value, 5) = "Upper" Or Strings.Left(xlSheet.Cells(iii, 2).value, 5) = "upper" Then 面料數量 += 1 If 面料數量 < 10 Then : 面料編號 = "UP0" & 面料數量 : Else : 面料編號 = "UP" & 面料數量 : End If ConnOpen() SQL1 = "INSERT INTO 樣品進度表UPPER資料METOO專用 (流水號, COLOR_NO, UPPER_NO, UPPER, ARTIDE, COLOR) " & "VALUES ('" & 編號 & "',N'" & 顏色編號 & "',N'" & 面料編號 & "',N'" & xlSheet.Cells(iii, ii).value & "',N'" & xlSheet.Cells(iii + 1, ii).value & "',N'" & xlSheet.Cells(iii + 2, ii).value & "')" cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() ElseIf Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "LOTS" Then iii = 999 End If Next For iii As Integer = 29 To 999 If Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "" Then ElseIf Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "LOTS" Then iii = 999 ElseIf Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "UPPER" And Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "Upper" And Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "upper" And Strings.Left(xlSheet.Cells(iii, 2).value, 7) <> "Article" And Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "Color" And Strings.Left(xlSheet.Cells(iii, 2).value, 4) <> "LOTS" Then ConnOpen() SQL1 = "INSERT INTO 樣品進度表其他部件資料METOO專用 (流水號, COLOR_NO, Descriptin_N, Description) " & "VALUES ('" & 編號 & "',N'" & 顏色編號 & "',N'" & xlSheet.Cells(iii, 2).value & "',N'" & xlSheet.Cells(iii, ii).value & "')" cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() End If Next iii Else ii = 10 End If Next End If Next Set_清單() : Set_清單1() : Set_清單2() xlApp.Visible = False End If MsgBox("導入顏色數量為 " & 顏色總數 & " 筆") N1 = 0 : 顏色數量 = 0 : 顏色總數 = 0 : 面料數量 = 0 End If End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles EXCEL顯示_bt.Click xlApp.Visible = True End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click 表單1_dgv.DataSource = Nothing : ds.Clear() 表單2_dgv.DataSource = Nothing : ds1.Clear() 表單3_dgv.DataSource = Nothing : ds2.Clear() xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing End Sub End Class