Няма описание
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

METOO專用PAGE導入.vb 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Public Class METOO專用PAGE導入
  4. Dim conn As New SqlConnection
  5. Dim da As New SqlDataAdapter
  6. Dim cmd As New SqlCommand
  7. 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
  8. Dim dr As SqlDataReader
  9. Dim file_name As String = "" : Dim 編號 As String : Dim 顏色編號 As String : Dim 雙數資料 As String : Dim 面料編號 As String
  10. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  11. Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  12. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  13. Dim N1 As Integer
  14. Dim 顏色數量 As Integer = 0 : Dim 顏色總數 As Integer = 0 : Dim 面料數量 As Integer = 0
  15. Private Sub Set_清單()
  16. DataGridView1.DataSource = Nothing : ds.Clear()
  17. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  18. DataGridView1.ColumnHeadersHeight = 25
  19. DataGridView1.AllowUserToAddRows = False
  20. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  21. SQL1 = "SELECT 流水號, 季節, 客戶, S_N, C_N, COLOR_NO, COLOR, LOTS, 檔案名稱
  22. FROM 樣品進度控制表METOO專用 WHERE 檔案名稱 LIKE N'" & file_name & "' ORDER BY COLOR_NO"
  23. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() : Set_grid()
  24. End Sub
  25. Private Sub Set_grid()
  26. DataGridView1.Columns(0).Width = 120 : DataGridView1.Columns(1).Width = 100 : DataGridView1.Columns(2).Width = 200 : DataGridView1.Columns(3).Width = 200
  27. DataGridView1.Columns(4).Width = 200 : DataGridView1.Columns(5).Width = 80 : DataGridView1.Columns(6).Width = 320 : DataGridView1.Columns(7).Width = 320
  28. DataGridView1.Columns(8).Width = 320
  29. DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
  30. End Sub
  31. Private Sub Set_清單1()
  32. DataGridView2.DataSource = Nothing : ds1.Clear()
  33. DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  34. DataGridView2.ColumnHeadersHeight = 25
  35. DataGridView2.AllowUserToAddRows = False
  36. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  37. SQL1 = "SELECT 樣品進度控制表METOO專用.流水號, 樣品進度控制表METOO專用.COLOR_NO, 樣品進度表UPPER資料METOO專用.UPPER_NO, 樣品進度表UPPER資料METOO專用.UPPER, 樣品進度表UPPER資料METOO專用.ARTIDE,
  38. 樣品進度表UPPER資料METOO專用.COLOR
  39. FROM 樣品進度控制表METOO專用 RIGHT OUTER JOIN 樣品進度表UPPER資料METOO專用 ON 樣品進度控制表METOO專用.流水號 = 樣品進度表UPPER資料METOO專用.流水號 AND
  40. 樣品進度控制表METOO專用.COLOR_NO = 樣品進度表UPPER資料METOO專用.COLOR_NO
  41. WHERE (樣品進度控制表METOO專用.檔案名稱 LIKE N'" & file_name & "')
  42. ORDER BY 樣品進度控制表METOO專用.COLOR_NO"
  43. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn.Close() : Set_grid1()
  44. End Sub
  45. Private Sub Set_grid1()
  46. DataGridView2.Columns(0).Width = 120 : DataGridView2.Columns(1).Width = 100 : DataGridView2.Columns(2).Width = 100 : DataGridView2.Columns(3).Width = 345
  47. DataGridView2.Columns(4).Width = 200 : DataGridView2.Columns(5).Width = 346
  48. DataGridView2.EditMode = DataGridViewEditMode.EditOnEnter
  49. End Sub
  50. Private Sub Set_清單2()
  51. DataGridView3.DataSource = Nothing : ds2.Clear()
  52. DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  53. DataGridView3.ColumnHeadersHeight = 25
  54. DataGridView3.AllowUserToAddRows = False
  55. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  56. SQL1 = "SELECT 樣品進度控制表METOO專用.流水號, 樣品進度控制表METOO專用.COLOR_NO, 樣品進度表其他部件資料METOO專用.Descriptin_N, 樣品進度表其他部件資料METOO專用.Description
  57. FROM 樣品進度控制表METOO專用 INNER JOIN 樣品進度表其他部件資料METOO專用 ON 樣品進度控制表METOO專用.流水號 = 樣品進度表其他部件資料METOO專用.流水號 AND
  58. 樣品進度控制表METOO專用.COLOR_NO = 樣品進度表其他部件資料METOO專用.COLOR_NO
  59. WHERE (樣品進度控制表METOO專用.檔案名稱 LIKE N'" & file_name & "')
  60. ORDER BY 樣品進度控制表METOO專用.COLOR_NO"
  61. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn.Close() : Set_grid2()
  62. End Sub
  63. Private Sub Set_grid2()
  64. DataGridView3.Columns(0).Width = 120 : DataGridView3.Columns(1).Width = 100 : DataGridView3.Columns(2).Width = 100 : DataGridView3.Columns(3).Width = 300
  65. DataGridView3.EditMode = DataGridViewEditMode.EditOnEnter
  66. End Sub
  67. Private Sub ComboBox7下拉表單資料載入()
  68. conn.Close()
  69. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  70. SQL1 = "SELECT SEASON FROM 季節清單 ORDER BY SEASON"
  71. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  72. ComboBox7.Items.Clear() : While (dr.Read()) : ComboBox7.Items.Add(dr("SEASON")) : End While : conn.Close()
  73. End Sub
  74. Private Sub ComboBox2下拉表單資料載入()
  75. conn.Close()
  76. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  77. SQL1 = "SELECT 客戶簡稱 FROM 客戶控制表 ORDER BY 客戶簡稱"
  78. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  79. ComboBox2.Items.Clear() : While (dr.Read()) : ComboBox2.Items.Add(dr("客戶簡稱")) : End While : conn.Close()
  80. End Sub
  81. Private Sub METOO專用PAGE導入_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  82. Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  83. ComboBox7下拉表單資料載入() : ComboBox2下拉表單資料載入()
  84. End Sub
  85. Private Sub DataGridView2_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles DataGridView2.RowPostPaint
  86. Dim linePen As New Pen(Color.Blue, 2)
  87. If e.RowIndex = DataGridView2.Rows.Count - 1 Then
  88. Exit Sub
  89. Else
  90. If DataGridView2(0, e.RowIndex).Value.ToString <> DataGridView2(0, e.RowIndex + 1).Value.ToString Then
  91. Dim startX As Integer = IIf(DataGridView2.RowHeadersVisible, DataGridView2.RowHeadersWidth, 0)
  92. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  93. Dim endX As Integer = startX + DataGridView2.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView2.HorizontalScrollingOffset
  94. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  95. Exit Sub
  96. End If
  97. End If
  98. End Sub
  99. Private Sub DataGridView3_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles DataGridView3.RowPostPaint
  100. Dim linePen As New Pen(Color.Blue, 2)
  101. If e.RowIndex = DataGridView3.Rows.Count - 1 Then
  102. Exit Sub
  103. Else
  104. If DataGridView3(0, e.RowIndex).Value.ToString <> DataGridView3(0, e.RowIndex + 1).Value.ToString Then
  105. Dim startX As Integer = IIf(DataGridView3.RowHeadersVisible, DataGridView3.RowHeadersWidth, 0)
  106. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  107. Dim endX As Integer = startX + DataGridView3.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView3.HorizontalScrollingOffset
  108. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  109. Exit Sub
  110. End If
  111. End If
  112. End Sub
  113. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  114. If ComboBox2.Text = "" Or ComboBox7.Text = "" Then
  115. MsgBox("季節與客戶不可空白")
  116. Else
  117. If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then : file_name = OpenFileDialog1.FileName : End If
  118. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  119. SQL1 = "SELECT TOP (1) 檔案名稱 FROM 樣品進度控制表METOO專用 WHERE 檔案名稱 LIKE N'" & file_name & "'"
  120. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  121. If dr.Read() Then : MsgBox("該檔案已入過系統") : conn.Close()
  122. Else
  123. conn.Close()
  124. xlApp = CreateObject("Excel.Application")
  125. xlApp.DisplayAlerts = False
  126. xlApp.Visible = True
  127. Dim xlBook As Object = xlApp.Workbooks.Open(file_name)
  128. N1 = xlBook.Sheets.Count
  129. For i As Integer = 1 To N1
  130. If Strings.Left(xlBook.Sheets(i).Name, 4) = "PAGE" Then
  131. xlSheet = xlApp.Worksheets(i)
  132. xlSheet.Activate()
  133. 顏色數量 = 0
  134. For ii As Integer = 3 To 10
  135. If xlSheet.Cells(29, ii).value <> "" Then
  136. 顏色數量 = 顏色數量 + 1 : 顏色總數 = 顏色總數 + 1
  137. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  138. SQL1 = "SELECT TOP (1) 流水號 FROM 樣品進度控制表METOO專用 ORDER BY 流水號 DESC"
  139. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  140. If dr.Read() Then : 編號 = dr("流水號").ToString : Else : 編號 = "PG00000000" : End If
  141. conn.Close()
  142. Dim NUM1 As Integer = Double.Parse(Strings.Right(編號, 8)) + 1
  143. If NUM1 < 10 Then : 編號 = "PG" & "0000000" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 編號 = "PG" & "000000" & NUM1
  144. ElseIf NUM1 > 99 And NUM1 < 1000 Then : 編號 = "PG" & "00000" & NUM1 : ElseIf NUM1 > 999 And NUM1 < 10000 Then : 編號 = "PG" & "0000" & NUM1
  145. ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 編號 = "PG" & "000" & NUM1 : ElseIf NUM1 > 99999 And NUM1 < 100000 Then : 編號 = "PG" & "00" & NUM1
  146. ElseIf NUM1 > 999999 And NUM1 < 1000000 Then : 編號 = "PG" & "0" & NUM1 : ElseIf NUM1 > 9999999 Then : 編號 = "PG" & NUM1 : End If
  147. If 顏色總數 < 10 Then : 顏色編號 = "C0" & 顏色總數 : Else : 顏色編號 = "C" & 顏色總數 : End If
  148. For iii As Integer = 29 To 999
  149. If Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "LOTS" Then : 雙數資料 = xlSheet.Cells(iii, ii).value : iii = 999 : End If
  150. Next
  151. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  152. SQL1 = "INSERT INTO 樣品進度控制表METOO專用 (流水號, 季節, 客戶, S_N, C_N, COLOR_NO, COLOR, LOTS, 檔案名稱) " &
  153. "VALUES ('" & 編號 & "',N'" & ComboBox7.Text & "',N'" & ComboBox2.Text & "',N'" & xlSheet.Cells(2, 3).value & "',N'" & xlSheet.Cells(3, 3).value &
  154. "',N'" & 顏色編號 & "',N'" & xlSheet.Cells(29, ii).value & "',N'" & 雙數資料 & "',N'" & file_name & "')"
  155. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  156. 面料數量 = 0
  157. For iii As Integer = 29 To 999
  158. If Strings.Left(xlSheet.Cells(iii, 2).value, 5) = "UPPER" Or Strings.Left(xlSheet.Cells(iii, 2).value, 5) = "Upper" Or
  159. Strings.Left(xlSheet.Cells(iii, 2).value, 5) = "upper" Then
  160. 面料數量 = 面料數量 + 1
  161. If 面料數量 < 10 Then : 面料編號 = "UP0" & 面料數量 : Else : 面料編號 = "UP" & 面料數量 : End If
  162. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  163. SQL1 = "INSERT INTO 樣品進度表UPPER資料METOO專用 (流水號, COLOR_NO, UPPER_NO, UPPER, ARTIDE, COLOR) " &
  164. "VALUES ('" & 編號 & "',N'" & 顏色編號 & "',N'" & 面料編號 &
  165. "',N'" & xlSheet.Cells(iii, ii).value & "',N'" & xlSheet.Cells(iii + 1, ii).value & "',N'" & xlSheet.Cells(iii + 2, ii).value & "')"
  166. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  167. ElseIf Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "LOTS" Then
  168. iii = 999
  169. End If
  170. Next
  171. For iii As Integer = 29 To 999
  172. If Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "" Then
  173. ElseIf Strings.Left(xlSheet.Cells(iii, 2).value, 4) = "LOTS" Then
  174. iii = 999
  175. ElseIf Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "UPPER" And Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "Upper" And
  176. Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "upper" And Strings.Left(xlSheet.Cells(iii, 2).value, 7) <> "Article" And
  177. Strings.Left(xlSheet.Cells(iii, 2).value, 5) <> "Color" And Strings.Left(xlSheet.Cells(iii, 2).value, 4) <> "LOTS" Then
  178. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  179. SQL1 = "INSERT INTO 樣品進度表其他部件資料METOO專用 (流水號, COLOR_NO, Descriptin_N, Description) " &
  180. "VALUES ('" & 編號 & "',N'" & 顏色編號 & "',N'" & xlSheet.Cells(iii, 2).value & "',N'" & xlSheet.Cells(iii, ii).value & "')"
  181. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  182. End If
  183. Next iii
  184. Else
  185. ii = 10
  186. End If
  187. Next
  188. End If
  189. Next
  190. Set_清單() : Set_清單1() : Set_清單2()
  191. xlApp.Visible = False
  192. End If
  193. MsgBox("導入顏色數量為 " & 顏色總數 & " 筆")
  194. N1 = 0 : 顏色數量 = 0 : 顏色總數 = 0 : 面料數量 = 0
  195. End If
  196. End Sub
  197. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  198. xlApp.Visible = True
  199. End Sub
  200. Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
  201. DataGridView1.DataSource = Nothing : ds.Clear()
  202. DataGridView2.DataSource = Nothing : ds1.Clear()
  203. DataGridView3.DataSource = Nothing : ds2.Clear()
  204. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  205. End Sub
  206. End Class