Nessuna descrizione
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 12KB

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