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.

量產生產進度表.vb 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. Option Strict Off
  2. Imports System.IO
  3. Public Class 量產生產進度表
  4. Private ReadOnly ds As New DataSet
  5. Dim xlApp As Microsoft.Office.Interop.Excel.Application
  6. Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  7. Private ReadOnly BB(3) As Boolean
  8. Dim 已超出 As Boolean
  9. Private Sub Set_訂單清單()
  10. 主表單_dgv.DataSource = Nothing : ds.Clear()
  11. 主表單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  12. 主表單_dgv.ColumnHeadersHeight = 40
  13. 主表單_dgv.AllowUserToAddRows = False
  14. SQL_量產生產進度表清單()
  15. da.Fill(ds) : 主表單_dgv.DataSource = ds.Tables(0) : conn.Close()
  16. End Sub
  17. Private Sub Set_grid()
  18. 主表單_dgv.Columns(0).FillWeight = 80 : 主表單_dgv.Columns(1).FillWeight = 120 : 主表單_dgv.Columns(2).FillWeight = 85 : 主表單_dgv.Columns(3).FillWeight = 105
  19. 主表單_dgv.Columns(4).FillWeight = 100 : 主表單_dgv.Columns(5).FillWeight = 90 : 主表單_dgv.Columns(6).FillWeight = 50 : 主表單_dgv.Columns(7).FillWeight = 80
  20. 主表單_dgv.Columns(8).FillWeight = 70 : 主表單_dgv.Columns(9).FillWeight = 80 : 主表單_dgv.Columns(10).FillWeight = 120 : 主表單_dgv.Columns(11).FillWeight = 60
  21. 主表單_dgv.Columns(12).FillWeight = 626 : 主表單_dgv.Columns(13).FillWeight = 100 : 主表單_dgv.Columns(14).FillWeight = 100 : 主表單_dgv.Columns(15).FillWeight = 127
  22. 主表單_dgv.Columns(16).FillWeight = 127 : 主表單_dgv.Columns(17).FillWeight = 127 : 主表單_dgv.Columns(18).FillWeight = 127 : 主表單_dgv.Columns(19).FillWeight = 126
  23. 主表單_dgv.Columns(20).FillWeight = 126 : 主表單_dgv.Columns(21).FillWeight = 126 : 主表單_dgv.Columns(22).FillWeight = 120 : 主表單_dgv.Columns(23).FillWeight = 120
  24. 主表單_dgv.Columns(24).FillWeight = 120 : 主表單_dgv.Columns(25).FillWeight = 120 : 主表單_dgv.Columns(26).FillWeight = 120 : 主表單_dgv.Columns(27).FillWeight = 286
  25. 主表單_dgv.Columns(28).Visible = False : 主表單_dgv.Columns(29).Visible = False
  26. 主表單_dgv.Columns(8).DefaultCellStyle.Format = "#,##0"
  27. 主表單_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  28. 主表單_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  29. '886
  30. If BB(0) = True And BB(1) = True And BB(2) = True And BB(3) = True Then
  31. 主表單_dgv.Columns(11).Visible = True : 主表單_dgv.Columns(12).Visible = True : 主表單_dgv.Columns(13).Visible = True : 主表單_dgv.Columns(14).Visible = True
  32. 主表單_dgv.Columns(15).Visible = False : 主表單_dgv.Columns(16).Visible = False : 主表單_dgv.Columns(17).Visible = False : 主表單_dgv.Columns(18).Visible = False
  33. 主表單_dgv.Columns(19).Visible = False : 主表單_dgv.Columns(20).Visible = False : 主表單_dgv.Columns(21).Visible = False : 主表單_dgv.Columns(22).Visible = False
  34. 主表單_dgv.Columns(23).Visible = False : 主表單_dgv.Columns(24).Visible = False : 主表單_dgv.Columns(25).Visible = False : 主表單_dgv.Columns(26).Visible = False
  35. 主表單_dgv.Columns(27).Visible = False
  36. ElseIf BB(0) = False And BB(1) = True And BB(2) = True And BB(3) = True Then
  37. 主表單_dgv.Columns(11).Visible = False : 主表單_dgv.Columns(12).Visible = False : 主表單_dgv.Columns(13).Visible = False : 主表單_dgv.Columns(14).Visible = False
  38. 主表單_dgv.Columns(15).Visible = True : 主表單_dgv.Columns(16).Visible = True : 主表單_dgv.Columns(17).Visible = True : 主表單_dgv.Columns(18).Visible = True
  39. 主表單_dgv.Columns(19).Visible = True : 主表單_dgv.Columns(20).Visible = True : 主表單_dgv.Columns(21).Visible = True
  40. 主表單_dgv.Columns(22).Visible = False : 主表單_dgv.Columns(23).Visible = False : 主表單_dgv.Columns(24).Visible = False : 主表單_dgv.Columns(25).Visible = False
  41. 主表單_dgv.Columns(26).Visible = False : 主表單_dgv.Columns(27).Visible = False
  42. ElseIf BB(0) = True And BB(1) = False And BB(2) = True And BB(3) = True Then
  43. 主表單_dgv.Columns(11).Visible = False : 主表單_dgv.Columns(12).Visible = False : 主表單_dgv.Columns(13).Visible = False : 主表單_dgv.Columns(14).Visible = False
  44. 主表單_dgv.Columns(15).Visible = False : 主表單_dgv.Columns(16).Visible = False : 主表單_dgv.Columns(17).Visible = False : 主表單_dgv.Columns(18).Visible = False
  45. 主表單_dgv.Columns(19).Visible = False : 主表單_dgv.Columns(20).Visible = False : 主表單_dgv.Columns(21).Visible = False
  46. 主表單_dgv.Columns(22).Visible = True : 主表單_dgv.Columns(23).Visible = True : 主表單_dgv.Columns(24).Visible = True : 主表單_dgv.Columns(25).Visible = True
  47. 主表單_dgv.Columns(26).Visible = True : 主表單_dgv.Columns(27).Visible = True
  48. End If
  49. End Sub
  50. Private Sub 量產生產進度表_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. BB(0) = True : BB(1) = True : BB(2) = True : BB(3) = True
  53. 第一頁_bt.Enabled = False
  54. Set_訂單清單() : Set_grid()
  55. 清除條件_bt.PerformClick()
  56. End Sub
  57. Private Sub 主表單_dgv_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 主表單_dgv.CellClick
  58. If e.RowIndex = -1 Then : Else : PA = 主表單_dgv.Rows(e.RowIndex).Cells("型體號碼").Value
  59. PictureBox1.Image = Nothing : SQL_鞋型圖片資料庫一張圖片()
  60. If dr.Read() Then : PictureBox1.Image = Nothing : SQL_鞋型圖片資料庫一張圖片()
  61. While dr.Read() = True
  62. Dim unused As Byte() = New Byte(-1) {} : Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte())
  63. Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  64. End While : conn.Close()
  65. Else : PictureBox1.Image = Nothing : SQL_鞋型圖片資料庫一張圖片()
  66. If dr.Read() Then : PictureBox1.Image = Nothing : SQL_鞋型圖片資料庫一張圖片()
  67. While dr.Read() = True
  68. Dim unused1 As Byte() = New Byte(-1) {} : Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte())
  69. Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  70. End While : conn.Close()
  71. Else : PictureBox1.Image = Nothing : SQL_圖片1()
  72. If dr.Read() Then : PictureBox1.Image = Nothing : SQL_圖片1()
  73. While dr.Read() = True
  74. Dim unused2 As Byte() = New Byte(-1) {} : Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte())
  75. Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  76. End While : conn.Close()
  77. Else : conn.Close() : End If
  78. End If
  79. End If : PictureBox1.SizeMode = 4
  80. If 主表單_dgv.Rows(e.RowIndex).Cells("驗報圖庫").Value.ToString <> "" Then
  81. PA1 = 主表單_dgv.Rows(e.RowIndex).Cells("驗報圖庫").Value.ToString : PA2 = 主表單_dgv.Rows(e.RowIndex).Cells("驗貨報告圖片").Value.ToString
  82. SQL_驗貨報告() : PictureBox2.Image = Nothing
  83. While dr.Read() = True
  84. Dim unused3 As Byte() = New Byte(-1) {} : Dim bytes As Byte() = DirectCast(dr.Item("驗貨報告"), Byte())
  85. Dim oStream As New MemoryStream(bytes) : PictureBox2.Image = Bitmap.FromStream(oStream)
  86. End While
  87. conn.Close() : PictureBox2.SizeMode = 4
  88. 驗貨報告 = 主表單_dgv.Rows(e.RowIndex).Cells("驗貨報告圖片").Value.ToString : 圖片庫 = 主表單_dgv.Rows(e.RowIndex).Cells("驗報圖庫").Value.ToString
  89. Else
  90. PictureBox2.Image = Nothing
  91. End If
  92. End If
  93. End Sub
  94. Private Sub 主表單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 主表單_dgv.RowPostPaint
  95. Dim linePen As New Pen(Color.Blue, 2)
  96. If e.RowIndex = 主表單_dgv.Rows.Count - 1 Then : Exit Sub : Else
  97. If 主表單_dgv(2, e.RowIndex).Value.ToString <> 主表單_dgv(2, e.RowIndex + 1).Value.ToString Then
  98. Dim startX As Integer = IIf(主表單_dgv.RowHeadersVisible, 主表單_dgv.RowHeadersWidth, 0)
  99. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  100. Dim endX As Integer = startX + 主表單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表單_dgv.HorizontalScrollingOffset
  101. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  102. Exit Sub
  103. End If
  104. End If
  105. End Sub
  106. Private Sub 清除條件_bt_Click(sender As Object, e As EventArgs) Handles 清除條件_bt.Click
  107. PA33 = ""
  108. SQL_客戶簡稱() : 客戶_cb.Items.Clear() : While (dr.Read()) : 客戶_cb.Items.Add(dr("客戶簡稱")) : End While : conn.Close()
  109. SQL_季節清單() : 季節_cb.Items.Clear() : While (dr.Read()) : 季節_cb.Items.Add(dr("SEASON")) : End While : conn.Close()
  110. SQL_工廠控制表1() : 工廠_cb.Items.Clear() : While (dr.Read()) : 工廠_cb.Items.Add(dr("工廠")) : End While : conn.Close()
  111. PA33 = 客戶_cb.Text : SQL_型體號碼() : 型體號碼_cb.Items.Clear() : While (dr.Read()) : 型體號碼_cb.Items.Add(dr("型體號碼")) : End While : conn.Close()
  112. PA33 = 型體號碼_cb.Text : SQL_型體控制表2() : 型體名稱_cb.Items.Clear() : While (dr.Read()) : 型體名稱_cb.Items.Add(dr("型體名稱")) : End While : conn.Close()
  113. Set_訂單清單() : Set_grid()
  114. End Sub
  115. Private Sub 客戶_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 客戶_cb.SelectedIndexChanged
  116. PA33 = 客戶_cb.Text : SQL_型體號碼() : 型體號碼_cb.Items.Clear()
  117. While (dr.Read()) : 型體號碼_cb.Items.Add(dr("型體號碼")) : End While : conn.Close() : Set_訂單清單() : Set_grid()
  118. End Sub
  119. Private Sub 型體號碼_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 型體號碼_cb.SelectedIndexChanged
  120. PA33 = 型體號碼_cb.Text : SQL_型體控制表2() : 型體名稱_cb.Items.Clear()
  121. While (dr.Read()) : 型體名稱_cb.Items.Add(dr("型體名稱")) : End While : conn.Close() : Set_訂單清單() : Set_grid()
  122. End Sub
  123. Private Sub 季節_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 季節_cb.SelectedIndexChanged
  124. Set_訂單清單() : Set_grid()
  125. End Sub
  126. Private Sub 工廠_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工廠_cb.SelectedIndexChanged
  127. Set_訂單清單() : Set_grid()
  128. End Sub
  129. Private Sub 型體名稱_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 型體名稱_cb.SelectedIndexChanged
  130. Set_訂單清單() : Set_grid()
  131. End Sub
  132. Private Sub Button28_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
  133. 列印_生產進度表.Show()
  134. End Sub
  135. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles 森康回饋資訊Excel導入_bt.Click
  136. If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
  137. file_name = OpenFileDialog1.FileName
  138. End If
  139. xlApp = CreateObject("Excel.Application")
  140. xlApp.DisplayAlerts = True
  141. xlApp.Visible = True
  142. xlApp.Workbooks.Open(file_name)
  143. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  144. For i As Integer = 4 To 99999
  145. TextBox1.Text = xlSheet.Cells(i, 4).value
  146. TextBox2.Text = xlSheet.Cells(i, 1).value : If TextBox2.Text = "" Then : Else : TextBox2.Text = Format(xlSheet.Cells(i, 1).value, "yyyy/MM/dd") : End If
  147. TextBox3.Text = xlSheet.Cells(i, 10).value : If TextBox3.Text = "" Then : Else : TextBox3.Text = Format(xlSheet.Cells(i, 10).value, "yyyy/MM/dd") : End If
  148. If TextBox1.Text <> "" Then
  149. PA = xlSheet.Cells(i, 14).value : PA1 = xlSheet.Cells(i, 16).value : PA2 = xlSheet.Cells(i, 16).value
  150. PA3 = xlSheet.Cells(i, 17).value : PA4 = xlSheet.Cells(i, 18).value : PA5 = xlSheet.Cells(i, 19).value
  151. PA6 = xlSheet.Cells(i, 20).value : PA7 = xlSheet.Cells(i, 21).value : PA8 = xlSheet.Cells(i, 22).value
  152. PA9 = xlSheet.Cells(i, 23).value : PA10 = xlSheet.Cells(i, 24).value : PA11 = xlSheet.Cells(i, 25).value
  153. PA12 = xlSheet.Cells(i, 26).value : PA13 = xlSheet.Cells(i, 27).value : PA14 = xlSheet.Cells(i, 28).value
  154. PA15 = xlSheet.Cells(i, 3).value : PA16 = xlSheet.Cells(i, 4).value : PA17 = xlSheet.Cells(i, 8).value
  155. PA18 = xlSheet.Cells(i, 7).value : PA19 = xlSheet.Cells(i, 9).value : PA20 = xlSheet.Cells(i, 5).value
  156. SQL_森康列印清單() : conn.Close()
  157. Else
  158. i = 99999
  159. End If
  160. TextBox6.Text = i
  161. Next
  162. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  163. TextBox6.Text = ""
  164. MsgBox("資料導入完成")
  165. Set_訂單清單() : Set_grid()
  166. End Sub
  167. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 巨益回饋資訊Excel導入_bt.Click
  168. If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
  169. file_name = OpenFileDialog1.FileName
  170. End If
  171. xlApp = CreateObject("Excel.Application")
  172. xlApp.DisplayAlerts = True
  173. xlApp.Visible = True
  174. xlApp.Workbooks.Open(file_name)
  175. xlSheet = xlApp.Worksheets(1) : xlSheet.Activate()
  176. For i As Integer = 4 To 99999
  177. TextBox1.Text = xlSheet.Cells(i, 4).value
  178. TextBox2.Text = xlSheet.Cells(i, 1).value : If TextBox2.Text = "" Then : Else : TextBox2.Text = Format(xlSheet.Cells(i, 1).value, "yyyy/MM/dd") : End If
  179. TextBox3.Text = xlSheet.Cells(i, 10).value : If TextBox3.Text = "" Then : Else : TextBox3.Text = Format(xlSheet.Cells(i, 10).value, "yyyy/MM/dd") : End If
  180. If TextBox1.Text <> "" Then
  181. PA21 = xlSheet.Cells(i, 12).value : PA22 = xlSheet.Cells(i, 13).value : PA23 = xlSheet.Cells(i, 3).value
  182. PA24 = xlSheet.Cells(i, 4).value : PA25 = xlSheet.Cells(i, 8).value : PA26 = xlSheet.Cells(i, 7).value
  183. PA27 = xlSheet.Cells(i, 9).value : PA28 = xlSheet.Cells(i, 5).value
  184. SQL_巨益列印清單() : conn.Close()
  185. Else
  186. i = 99999
  187. End If
  188. TextBox6.Text = i
  189. Next
  190. xlApp.Visible = True : xlApp.Quit() : xlApp = Nothing
  191. TextBox6.Text = ""
  192. MsgBox("資料導入完成")
  193. Set_訂單清單() : Set_grid()
  194. End Sub
  195. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 第一頁_bt.Click
  196. 第一頁_bt.Enabled = False : 第二頁_bt.Enabled = True : 第三頁_bt.Enabled = True
  197. BB(0) = True : BB(1) = True : BB(2) = True : BB(3) = True
  198. Set_grid()
  199. End Sub
  200. Private Sub Button34_Click(sender As Object, e As EventArgs) Handles 第二頁_bt.Click
  201. 第一頁_bt.Enabled = True : 第二頁_bt.Enabled = False : 第三頁_bt.Enabled = True
  202. BB(0) = False : BB(1) = True : BB(2) = True : BB(3) = True
  203. Set_grid()
  204. End Sub
  205. Private Sub Button35_Click(sender As Object, e As EventArgs) Handles 第三頁_bt.Click
  206. 第一頁_bt.Enabled = True : 第二頁_bt.Enabled = True : 第三頁_bt.Enabled = False
  207. BB(0) = True : BB(1) = False : BB(2) = True : BB(3) = True
  208. Set_grid()
  209. End Sub
  210. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 關鍵字查詢_bt.Click
  211. PA = InputBox("請輸入要查詢的資料")
  212. Set_訂單清單() : Set_grid()
  213. End Sub
  214. Private Sub Button20_Click(sender As Object, e As EventArgs) Handles 驗貨報告大圖_bt.Click
  215. 驗貨報告大圖.ShowDialog()
  216. End Sub
  217. Private Sub Button8_Click(sender As Object, e As EventArgs) Handles 順時鐘90度旋轉_bt.Click
  218. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate90FlipNone) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  219. End Sub
  220. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles 逆時鐘90度旋轉_bt.Click
  221. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate270FlipNone) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  222. End Sub
  223. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles 水平翻轉_bt.Click
  224. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate180FlipY) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  225. End Sub
  226. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 垂直翻轉_bt.Click
  227. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate180FlipX) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  228. End Sub
  229. Private Sub 流水帳_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 主表單_dgv.MouseUp
  230. If 主表單_dgv.SelectedCells.Count = 1 Then
  231. 已超出 = False
  232. End If
  233. If 主表單_dgv.SelectedCells.Count > 0 Then
  234. '設定滑鼠點擊DGV時候的範圍,超出範圍時有可能不是數字所以不計算
  235. If 主表單_dgv.SelectedCells(0).ColumnIndex = 8 Then
  236. If 已超出 = False Then
  237. Dim x As Double = 0
  238. For i As Integer = 0 To 主表單_dgv.SelectedCells.Count - 1
  239. ' 主表單_dgv.SelectedCells.Item(i).ColumnIndex + 8 是因為該DGV顯示項與計算像剛好差8格,使用時要注意可直接計算的不需要加數字。
  240. x += Val(主表單_dgv.Rows(主表單_dgv.SelectedCells.Item(i).RowIndex).Cells(主表單_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  241. Next i
  242. '將計算好的資料放置到指定的控件中
  243. 加總_tb.Text = Strings.Format(x, "#,##0")
  244. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  245. Else
  246. 加總_tb.Text = Strings.Format(0, "#,##0")
  247. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  248. End If
  249. Else
  250. 已超出 = True
  251. 加總_tb.Text = Strings.Format(0, "#,##0")
  252. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  253. End If
  254. End If
  255. End Sub
  256. End Class