123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- Option Strict Off
- Imports System.Data.SqlClient
- Public Class METOO專用PAGE導入
- Dim conn As New SqlConnection
- Dim da As New SqlDataAdapter
- Dim cmd As New SqlCommand
- Dim ds As New DataSet : Dim ds1 As New DataSet : Dim ds2 As New DataSet : Dim ds4 As New DataSet : Dim ds5 As New DataSet : Dim ds6 As New DataSet
- Dim dr As SqlDataReader
- Dim file_name As String = "" : Dim 編號 As String : Dim 顏色編號 As String : Dim 雙數資料 As String : Dim 面料編號 As String
- Dim xlApp As Microsoft.Office.Interop.Excel.Application
- Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
- 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_清單()
- DataGridView1.DataSource = Nothing : ds.Clear()
- DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- DataGridView1.ColumnHeadersHeight = 25
- DataGridView1.AllowUserToAddRows = False
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "SELECT 流水號, 季節, 客戶, S_N, C_N, COLOR_NO, COLOR, LOTS, 檔案名稱
- FROM 樣品進度控制表METOO專用 WHERE 檔案名稱 LIKE N'" & file_name & "' ORDER BY COLOR_NO"
- cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() : Set_grid()
- End Sub
- Private Sub Set_grid()
- DataGridView1.Columns(0).Width = 120 : DataGridView1.Columns(1).Width = 100 : DataGridView1.Columns(2).Width = 200 : DataGridView1.Columns(3).Width = 200
- DataGridView1.Columns(4).Width = 200 : DataGridView1.Columns(5).Width = 80 : DataGridView1.Columns(6).Width = 320 : DataGridView1.Columns(7).Width = 320
- DataGridView1.Columns(8).Width = 320
- DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
- End Sub
- Private Sub Set_清單1()
- DataGridView2.DataSource = Nothing : ds1.Clear()
- DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- DataGridView2.ColumnHeadersHeight = 25
- DataGridView2.AllowUserToAddRows = False
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "SELECT 樣品進度控制表METOO專用.流水號, 樣品進度控制表METOO專用.COLOR_NO, 樣品進度表UPPER資料METOO專用.UPPER_NO, 樣品進度表UPPER資料METOO專用.UPPER, 樣品進度表UPPER資料METOO專用.ARTIDE,
- 樣品進度表UPPER資料METOO專用.COLOR
- FROM 樣品進度控制表METOO專用 RIGHT OUTER JOIN 樣品進度表UPPER資料METOO專用 ON 樣品進度控制表METOO專用.流水號 = 樣品進度表UPPER資料METOO專用.流水號 AND
- 樣品進度控制表METOO專用.COLOR_NO = 樣品進度表UPPER資料METOO專用.COLOR_NO
- WHERE (樣品進度控制表METOO專用.檔案名稱 LIKE N'" & file_name & "')
- ORDER BY 樣品進度控制表METOO專用.COLOR_NO"
- cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn.Close() : Set_grid1()
- End Sub
- Private Sub Set_grid1()
- DataGridView2.Columns(0).Width = 120 : DataGridView2.Columns(1).Width = 100 : DataGridView2.Columns(2).Width = 100 : DataGridView2.Columns(3).Width = 345
- DataGridView2.Columns(4).Width = 200 : DataGridView2.Columns(5).Width = 346
- DataGridView2.EditMode = DataGridViewEditMode.EditOnEnter
- End Sub
- Private Sub Set_清單2()
- DataGridView3.DataSource = Nothing : ds2.Clear()
- DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- DataGridView3.ColumnHeadersHeight = 25
- DataGridView3.AllowUserToAddRows = False
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "SELECT 樣品進度控制表METOO專用.流水號, 樣品進度控制表METOO專用.COLOR_NO, 樣品進度表其他部件資料METOO專用.Descriptin_N, 樣品進度表其他部件資料METOO專用.Description
- FROM 樣品進度控制表METOO專用 INNER JOIN 樣品進度表其他部件資料METOO專用 ON 樣品進度控制表METOO專用.流水號 = 樣品進度表其他部件資料METOO專用.流水號 AND
- 樣品進度控制表METOO專用.COLOR_NO = 樣品進度表其他部件資料METOO專用.COLOR_NO
- WHERE (樣品進度控制表METOO專用.檔案名稱 LIKE N'" & file_name & "')
- ORDER BY 樣品進度控制表METOO專用.COLOR_NO"
- cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn.Close() : Set_grid2()
- End Sub
- Private Sub Set_grid2()
- DataGridView3.Columns(0).Width = 120 : DataGridView3.Columns(1).Width = 100 : DataGridView3.Columns(2).Width = 100 : DataGridView3.Columns(3).Width = 300
- DataGridView3.EditMode = DataGridViewEditMode.EditOnEnter
- End Sub
- Private Sub ComboBox7下拉表單資料載入()
- conn.Close()
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "SELECT SEASON FROM 季節清單 ORDER BY SEASON"
- cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
- ComboBox7.Items.Clear() : While (dr.Read()) : ComboBox7.Items.Add(dr("SEASON")) : End While : conn.Close()
- End Sub
- Private Sub ComboBox2下拉表單資料載入()
- conn.Close()
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "SELECT 客戶簡稱 FROM 客戶控制表 ORDER BY 客戶簡稱"
- cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
- ComboBox2.Items.Clear() : While (dr.Read()) : ComboBox2.Items.Add(dr("客戶簡稱")) : End While : conn.Close()
- End Sub
- Private Sub METOO專用PAGE導入_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 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 DataGridView2.RowPostPaint
- Dim linePen As New Pen(Color.Blue, 2)
- If e.RowIndex = DataGridView2.Rows.Count - 1 Then
- Exit Sub
- Else
- If DataGridView2(0, e.RowIndex).Value.ToString <> DataGridView2(0, e.RowIndex + 1).Value.ToString Then
- Dim startX As Integer = IIf(DataGridView2.RowHeadersVisible, DataGridView2.RowHeadersWidth, 0)
- Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
- Dim endX As Integer = startX + DataGridView2.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView2.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 DataGridView3.RowPostPaint
- Dim linePen As New Pen(Color.Blue, 2)
- If e.RowIndex = DataGridView3.Rows.Count - 1 Then
- Exit Sub
- Else
- If DataGridView3(0, e.RowIndex).Value.ToString <> DataGridView3(0, e.RowIndex + 1).Value.ToString Then
- Dim startX As Integer = IIf(DataGridView3.RowHeadersVisible, DataGridView3.RowHeadersWidth, 0)
- Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
- Dim endX As Integer = startX + DataGridView3.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView3.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 Button1.Click
- If ComboBox2.Text = "" Or ComboBox7.Text = "" Then
- MsgBox("季節與客戶不可空白")
- Else
- If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then : file_name = OpenFileDialog1.FileName : End If
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "SELECT TOP (1) 檔案名稱 FROM 樣品進度控制表METOO專用 WHERE 檔案名稱 LIKE N'" & file_name & "'"
- cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
- 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
-
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "SELECT TOP (1) 流水號 FROM 樣品進度控制表METOO專用 ORDER BY 流水號 DESC"
- cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
- 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
-
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- SQL1 = "INSERT INTO 樣品進度控制表METOO專用 (流水號, 季節, 客戶, S_N, C_N, COLOR_NO, COLOR, LOTS, 檔案名稱) " &
- "VALUES ('" & 編號 & "',N'" & ComboBox7.Text & "',N'" & ComboBox2.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
-
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- 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
- If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
- 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 Button5.Click
- xlApp.Visible = True
- End Sub
- Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
- DataGridView1.DataSource = Nothing : ds.Clear()
- DataGridView2.DataSource = Nothing : ds1.Clear()
- DataGridView3.DataSource = Nothing : ds2.Clear()
- xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
- End Sub
- End Class
|