暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

量產出貨明細表.vb 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. Option Strict Off
  2. Imports System.IO
  3. Public Class 量產出貨明細表
  4. Private ReadOnly ds As New DataSet
  5. Dim 已超出 As Boolean
  6. Private Sub Set_訂單清單()
  7. 主表單_dgv.DataSource = Nothing : ds.Clear()
  8. 主表單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  9. 主表單_dgv.ColumnHeadersHeight = 25
  10. 主表單_dgv.AllowUserToAddRows = False
  11. SQL_量產出貨明細表單()
  12. 列印用SQL = SQL1
  13. da.Fill(ds) : 主表單_dgv.DataSource = ds.Tables(0) : conn.Close()
  14. 主表單_dgv.Columns(0).Visible = False : 主表單_dgv.Columns(1).FillWeight = 155 : 主表單_dgv.Columns(2).FillWeight = 60 : 主表單_dgv.Columns(3).FillWeight = 120
  15. 主表單_dgv.Columns(4).FillWeight = 200 : 主表單_dgv.Columns(5).FillWeight = 130 : 主表單_dgv.Columns(6).FillWeight = 60 : 主表單_dgv.Columns(7).FillWeight = 80
  16. 主表單_dgv.Columns(8).FillWeight = 80 : 主表單_dgv.Columns(9).FillWeight = 235 : 主表單_dgv.Columns(10).Visible = False : 主表單_dgv.Columns(11).FillWeight = 80
  17. 主表單_dgv.Columns(12).FillWeight = 80 : 主表單_dgv.Columns(13).FillWeight = 80 : 主表單_dgv.Columns(14).FillWeight = 80 : 主表單_dgv.Columns(15).FillWeight = 90
  18. 主表單_dgv.Columns(16).FillWeight = 90 : 主表單_dgv.Columns(17).Visible = False : 主表單_dgv.Columns(18).Visible = False : 主表單_dgv.Columns(19).Visible = False
  19. 主表單_dgv.Columns(7).DefaultCellStyle.Format = "#,##0"
  20. 主表單_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  21. 主表單_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  22. 主表單_dgv.Columns(8).DefaultCellStyle.Format = "#,##0"
  23. 主表單_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  24. 主表單_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  25. End Sub
  26. Private Sub ComboBox1下拉表單資料載入()
  27. SQL_季節清單1()
  28. 季節_cb.Items.Clear() : While (dr.Read()) : 季節_cb.Items.Add(dr("SEASON")) : End While : conn.Close()
  29. End Sub
  30. Private Sub ComboBox5下拉表單資料載入()
  31. SQL_工廠控制表1()
  32. 工廠_cb.Items.Clear() : While (dr.Read()) : 工廠_cb.Items.Add(dr("工廠")) : End While : conn.Close()
  33. End Sub
  34. Private Sub 量產出貨明細表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  35. WINPROFIT_ERP_SYS.WindowState = 2 : Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  36. 流水號_tb.Enabled = False : 明細是否建檔_ch.Enabled = False : 開啟訂單明細表_bt.Enabled = False
  37. ComboBox1下拉表單資料載入() : ComboBox5下拉表單資料載入()
  38. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)"
  39. Set_訂單清單()
  40. End Sub
  41. Private Sub 主表單_dgv_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 主表單_dgv.CellClick
  42. If e.RowIndex = -1 Then : Else
  43. 流水號_tb.Text = 主表單_dgv(1, e.RowIndex).Value.ToString : 資料流水號_tb.Text = 主表單_dgv("資料流水號", e.RowIndex).Value.ToString
  44. 明細是否建檔_ch.Checked = 主表單_dgv(16, e.RowIndex).Value.ToString : 實際離場_dtp.Value = 主表單_dgv("實際離廠日", e.RowIndex).Value
  45. If 明細是否建檔_ch.Checked = False Then : 開啟訂單明細表_bt.Enabled = False : Else : 開啟訂單明細表_bt.Enabled = True : End If
  46. PictureBox1.Image = Nothing : PA = 主表單_dgv.Rows(e.RowIndex).Cells("形體號").Value
  47. SQL_鞋型圖片資料庫一張圖片()
  48. If dr.Read() Then : PictureBox1.Image = Nothing : SQL_鞋型圖片資料庫一張圖片()
  49. While dr.Read() = True
  50. Dim bytes As Byte() = New Byte(-1) {}
  51. bytes = DirectCast(dr.Item("圖片"), Byte())
  52. Dim oStream As New MemoryStream(bytes)
  53. PictureBox1.Image = Bitmap.FromStream(oStream)
  54. End While : conn.Close()
  55. Else
  56. PictureBox1.Image = Nothing : SQL_鞋型圖片資料庫一張圖片()
  57. If dr.Read() Then : PictureBox1.Image = Nothing : SQL_鞋型圖片資料庫一張圖片()
  58. While dr.Read() = True
  59. Dim bytes As Byte() = New Byte(-1) {}
  60. bytes = DirectCast(dr.Item("圖片"), Byte())
  61. Dim oStream As New MemoryStream(bytes)
  62. PictureBox1.Image = Bitmap.FromStream(oStream)
  63. End While : conn.Close()
  64. Else
  65. PictureBox1.Image = Nothing : PA8 = 主表單_dgv.Rows(e.RowIndex).Cells("形體號").Value : SQL_圖片()
  66. If dr.Read() Then : PictureBox1.Image = Nothing : SQL_圖片()
  67. While dr.Read() = True
  68. Dim bytes As Byte() = New Byte(-1) {}
  69. bytes = DirectCast(dr.Item("圖片"), Byte())
  70. Dim oStream As New MemoryStream(bytes)
  71. PictureBox1.Image = Bitmap.FromStream(oStream)
  72. End While : conn.Close()
  73. Else : conn.Close() : End If
  74. End If
  75. End If : PictureBox1.SizeMode = 4
  76. If 主表單_dgv.Rows(e.RowIndex).Cells("驗報圖庫").Value.ToString <> "" Then
  77. PA1 = 主表單_dgv.Rows(e.RowIndex).Cells("驗報圖庫").Value.ToString : PA2 = 主表單_dgv.Rows(e.RowIndex).Cells("驗貨報告圖片").Value.ToString
  78. SQL_驗貨報告() : PictureBox2.Image = Nothing
  79. While dr.Read() = True
  80. Dim bytes As Byte() = New Byte(-1) {}
  81. bytes = DirectCast(dr.Item("驗貨報告"), Byte())
  82. Dim oStream As New MemoryStream(bytes)
  83. PictureBox2.Image = Bitmap.FromStream(oStream)
  84. End While : conn.Close() : PictureBox2.SizeMode = 4
  85. 驗貨報告 = 主表單_dgv.Rows(e.RowIndex).Cells("驗貨報告圖片").Value.ToString : 圖片庫 = 主表單_dgv.Rows(e.RowIndex).Cells("驗報圖庫").Value.ToString
  86. Else
  87. PictureBox2.Image = Nothing
  88. End If
  89. End If
  90. End Sub
  91. Private Sub 主表單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 主表單_dgv.RowPostPaint
  92. Dim linePen As New Pen(Color.Blue, 2)
  93. If e.RowIndex = 主表單_dgv.Rows.Count - 1 Then
  94. Exit Sub
  95. Else
  96. If 主表單_dgv(1, e.RowIndex).Value.ToString <> 主表單_dgv(1, e.RowIndex + 1).Value.ToString Then
  97. Dim startX As Integer = IIf(主表單_dgv.RowHeadersVisible, 主表單_dgv.RowHeadersWidth, 0)
  98. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  99. Dim endX As Integer = startX + 主表單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表單_dgv.HorizontalScrollingOffset
  100. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  101. Exit Sub
  102. End If
  103. End If
  104. End Sub
  105. Private Sub 搜尋_bt_Click(sender As Object, e As EventArgs) Handles 搜尋_bt.Click
  106. PA = InputBox("請輸入要查詢的資料") : Set_訂單清單() : PA = ""
  107. End Sub
  108. Private Sub Button30_Click(sender As Object, e As EventArgs) Handles 開啟訂單明細表_bt.Click
  109. If 流水號_tb.Text = "" Then
  110. MsgBox("請先選擇訂單資料")
  111. Else
  112. PA = 流水號_tb.Text
  113. 量產訂單明細表.Show() : 量產訂單明細表.WindowState = 2
  114. End If
  115. End Sub
  116. Private Sub Button20_Click(sender As Object, e As EventArgs) Handles 驗貨報告大圖_bt.Click
  117. 驗貨報告大圖.ShowDialog()
  118. End Sub
  119. Private Sub Button8_Click(sender As Object, e As EventArgs) Handles 順時鐘90度旋轉_bt.Click
  120. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate90FlipNone) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  121. End Sub
  122. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles 逆時鐘90度旋轉_bt.Click
  123. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate270FlipNone) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  124. End Sub
  125. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles 水平翻轉_bt.Click
  126. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate180FlipY) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  127. End Sub
  128. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 垂直翻轉_bt.Click
  129. PictureBox2.Image.RotateFlip(RotateFlipType.Rotate180FlipX) : PictureBox2.Refresh() : PictureBox2.SizeMode = 4
  130. End Sub
  131. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 季節_cb.SelectedIndexChanged
  132. If SEASON_ch.Checked = True Then
  133. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0) AND 貨款匯入出款明細表.年份季度 LIKE '" & 季節_cb.Text & "' "
  134. Set_訂單清單()
  135. Else : kkk1 = "WHERE ((訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)) " : Set_訂單清單() : End If
  136. End Sub
  137. Private Sub ComboBox6_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 訂單種類_cb.SelectedIndexChanged
  138. If DIV_ch.Checked = True Then
  139. kkk2 = "AND 訂單控制表.訂單種類 LIKE '" & 訂單種類_cb.Text & "' "
  140. Else : kkk2 = "" : End If
  141. End Sub
  142. Private Sub ComboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工廠_cb.SelectedIndexChanged
  143. If FTY_ch.Checked = True Then
  144. kkk3 = " AND 訂單控制表.生產工廠 LIKE '" & 工廠_cb.Text & "' "
  145. Set_訂單清單()
  146. Else : kkk3 = "" : End If
  147. End Sub
  148. Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles SEASON_ch.Click
  149. If SEASON_ch.Checked = True Then
  150. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0) AND 貨款匯入出款明細表.年份季度 LIKE '" & 季節_cb.Text & "' "
  151. Else
  152. kkk1 = "WHERE ((訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)) "
  153. End If
  154. End Sub
  155. Private Sub CheckBox8_CheckedChanged(sender As Object, e As EventArgs) Handles DIV_ch.Click
  156. If DIV_ch.Checked = True Then
  157. kkk2 = "AND 訂單控制表.訂單種類 LIKE '" & 訂單種類_cb.Text & "' "
  158. Else : kkk2 = "" : End If
  159. End Sub
  160. Private Sub CheckBox7_CheckedChanged(sender As Object, e As EventArgs) Handles FTY_ch.Click
  161. If FTY_ch.Checked = True Then
  162. kkk3 = " AND 訂單控制表.生產工廠 LIKE '" & 工廠_cb.Text & "' "
  163. Else : kkk3 = "" : End If
  164. End Sub
  165. Private Sub CheckBox6_CheckedChanged(sender As Object, e As EventArgs) Handles CUSTXF_ch.Click
  166. If CUSTXF_ch.Checked = True Then
  167. kkk4 = " AND 訂單控制表.客戶交期 BETWEEN '" & Format(開始1_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束1_dtp.Value, "yyyy/MM/dd") & "' "
  168. Else : kkk4 = "" : End If
  169. End Sub
  170. Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles FTYXF_ch.Click
  171. If FTYXF_ch.Checked = True Then
  172. kkk5 = " AND 訂單控制表.工廠回復交期 BETWEEN '" & Format(開始2_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束2_dtp.Value, "yyyy/MM/dd") & "' "
  173. Else : kkk5 = "" : End If
  174. End Sub
  175. Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles RLFXF_ch.Click
  176. If RLFXF_ch.Checked = True Then
  177. kkk6 = " AND 貨款匯入出款明細表.實際離廠日 BETWEEN '" & Format(開始3_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束3_dtp.Value, "yyyy/MM/dd") & "' "
  178. Else : kkk6 = "" : End If
  179. End Sub
  180. Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles 開始1_dtp.ValueChanged
  181. If CUSTXF_ch.Checked = True Then
  182. kkk4 = " AND 訂單控制表.客戶交期 BETWEEN '" & Format(開始1_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束1_dtp.Value, "yyyy/MM/dd") & "' "
  183. Set_訂單清單()
  184. Else
  185. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)"
  186. Set_訂單清單()
  187. End If
  188. End Sub
  189. Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles 結束1_dtp.ValueChanged
  190. If CUSTXF_ch.Checked = True Then
  191. kkk4 = " AND 訂單控制表.客戶交期 BETWEEN '" & Format(開始1_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束1_dtp.Value, "yyyy/MM/dd") & "' "
  192. Set_訂單清單()
  193. Else
  194. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)"
  195. Set_訂單清單()
  196. End If
  197. End Sub
  198. Private Sub DateTimePicker3_ValueChanged(sender As Object, e As EventArgs) Handles 開始2_dtp.ValueChanged
  199. If FTYXF_ch.Checked = True Then
  200. kkk5 = " AND 訂單控制表.工廠回復交期 BETWEEN '" & Format(開始2_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束2_dtp.Value, "yyyy/MM/dd") & "' "
  201. Set_訂單清單()
  202. Else
  203. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)"
  204. Set_訂單清單()
  205. End If
  206. End Sub
  207. Private Sub DateTimePicker4_ValueChanged(sender As Object, e As EventArgs) Handles 結束2_dtp.ValueChanged
  208. If FTYXF_ch.Checked = True Then
  209. kkk5 = " AND 訂單控制表.工廠回復交期 BETWEEN '" & Format(開始2_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束2_dtp.Value, "yyyy/MM/dd") & "' "
  210. Set_訂單清單()
  211. Else
  212. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)"
  213. Set_訂單清單()
  214. End If
  215. End Sub
  216. Private Sub DateTimePicker5_ValueChanged(sender As Object, e As EventArgs) Handles 開始3_dtp.ValueChanged
  217. If RLFXF_ch.Checked = True Then
  218. kkk6 = " AND 貨款匯入出款明細表.實際離廠日 BETWEEN '" & Format(開始3_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束3_dtp.Value, "yyyy/MM/dd") & "' "
  219. Set_訂單清單()
  220. Else
  221. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)"
  222. Set_訂單清單()
  223. End If
  224. End Sub
  225. Private Sub DateTimePicker6_ValueChanged(sender As Object, e As EventArgs) Handles 結束3_dtp.ValueChanged
  226. If RLFXF_ch.Checked = True Then
  227. kkk6 = " AND 貨款匯入出款明細表.實際離廠日 BETWEEN '" & Format(開始3_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(結束3_dtp.Value, "yyyy/MM/dd") & "' "
  228. Set_訂單清單()
  229. Else
  230. kkk1 = "WHERE (訂單控制表.CXL IS NULL or 訂單控制表.CXL = 0)"
  231. Set_訂單清單()
  232. End If
  233. End Sub
  234. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 列印成EXCEL_bt.Click
  235. MsgBox("下次開發。")
  236. '列印_出貨明細表.ShowDialog()
  237. End Sub
  238. Private Sub 實際離場日修改_bt_Click(sender As Object, e As EventArgs) Handles 實際離場日修改_bt.Click
  239. SQL_更改訂單控制表4() : conn.Close()
  240. SQL_貨款匯入出款明細表() : conn.Close()
  241. PA = ""
  242. Set_訂單清單()
  243. End Sub
  244. Private Sub 主表單_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 主表單_dgv.MouseUp
  245. If 主表單_dgv.SelectedCells.Count = 1 Then
  246. 已超出 = False
  247. End If
  248. If 主表單_dgv.SelectedCells.Count > 0 Then
  249. '設定滑鼠點擊DGV時候的範圍,超出範圍時有可能不是數字所以不計算
  250. If 主表單_dgv.SelectedCells(0).ColumnIndex >= 7 And 主表單_dgv.SelectedCells(0).ColumnIndex <= 8 Then
  251. If 已超出 = False Then
  252. Dim x As Double = 0
  253. For i As Integer = 0 To 主表單_dgv.SelectedCells.Count - 1
  254. ' 主表單_dgv.SelectedCells.Item(i).ColumnIndex + 8 是因為該DGV顯示項與計算像剛好差8格,使用時要注意可直接計算的不需要加數字。
  255. x += Val(主表單_dgv.Rows(主表單_dgv.SelectedCells.Item(i).RowIndex).Cells(主表單_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  256. Next i
  257. '將計算好的資料放置到指定的控件中
  258. 加總_tb.Text = Strings.Format(x, "#,##0")
  259. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  260. Else
  261. 加總_tb.Text = Strings.Format(0, "#,##0")
  262. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  263. End If
  264. Else
  265. 已超出 = True
  266. 加總_tb.Text = Strings.Format(0, "#,##0")
  267. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  268. End If
  269. End If
  270. End Sub
  271. End Class