説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

銷貨管理.vb 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. Option Strict Off
  2. Public Class 銷貨管理
  3. ReadOnly ds, ds1, ds2 As New DataSet
  4. Private Sub DGV1讀取前設定()
  5. DataGridView1.DataSource = Nothing : ds.Clear()
  6. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  7. DataGridView1.ColumnHeadersHeight = 25
  8. DataGridView1.AllowUserToAddRows = False
  9. ConnOpen()
  10. End Sub
  11. Private Sub DGV1讀取後設定()
  12. CmdSet_For_DGV() : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close()
  13. End Sub
  14. Private Sub DGV2讀取前設定()
  15. DataGridView2.DataSource = Nothing : ds1.Clear()
  16. DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  17. DataGridView2.ColumnHeadersHeight = 25
  18. DataGridView2.AllowUserToAddRows = False
  19. ConnOpen()
  20. End Sub
  21. Private Sub DGV2讀取後設定()
  22. CmdSet_For_DGV() : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn.Close()
  23. End Sub
  24. Private Sub DGV3讀取前設定()
  25. DataGridView3.DataSource = Nothing : ds2.Clear()
  26. DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  27. DataGridView3.ColumnHeadersHeight = 25
  28. DataGridView3.AllowUserToAddRows = False
  29. ConnOpen()
  30. End Sub
  31. Private Sub DGV3讀取後設定()
  32. CmdSet_For_DGV() : da.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn.Close()
  33. End Sub
  34. Private Sub 讀取庫存資料表()
  35. If PA = "" Then
  36. DGV1讀取前設定()
  37. SQL1 = "SELECT 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.供應商, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " &
  38. "零件成本紀錄表.進貨單價, SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) AS 庫存數量, 零件成本紀錄表.安全庫存, " &
  39. "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) AS 庫存成本, " &
  40. "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) * 零件進銷存報表.匯率 AS 台幣庫存成本, " &
  41. "零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON 零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE (零件進銷存報表.進貨確認 = '1') " &
  42. "GROUP BY 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, 零件成本紀錄表.進貨單價, " &
  43. "零件成本紀錄表.安全庫存, 零件進銷存報表.匯率, 零件成本紀錄表.供應商, 零件成本紀錄表.科目 " &
  44. "HAVING (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) <> 0) ORDER BY 零件進銷存報表.進貨日期 DESC"
  45. 列印用SQL1 = SQL1 : DGV1讀取後設定()
  46. Else
  47. DGV1讀取前設定()
  48. SQL1 = "SELECT 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.供應商, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " &
  49. "零件成本紀錄表.進貨單價, SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) AS 庫存數量, 零件成本紀錄表.安全庫存, " &
  50. "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) AS 庫存成本, " &
  51. "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) * 零件進銷存報表.匯率 AS 台幣庫存成本, " &
  52. "零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON 零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 " &
  53. "WHERE (零件進銷存報表.進貨確認 = '1') AND (零件進銷存報表.零件編號 LIKE '%" & PA & "%') OR " &
  54. "(零件進銷存報表.進貨確認 = '1') AND (零件進銷存報表.進貨日期 LIKE '%" & PA & "%') OR " &
  55. "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.品牌 LIKE '%" & PA & "%') OR " &
  56. "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.品名 LIKE '%" & PA & "%') OR " &
  57. "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.型號及備註 LIKE '%" & PA & "%') OR " &
  58. "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.進貨單價 LIKE '%" & PA & "%') OR " &
  59. "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.供應商 LIKE '%" & PA & "%') OR " &
  60. "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.科目 LIKE '%" & PA & "%') OR " &
  61. "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.型號及備註 LIKE '%" & PA & "%') " &
  62. "GROUP BY 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, 零件成本紀錄表.進貨單價, " &
  63. "零件成本紀錄表.安全庫存, 零件進銷存報表.匯率, 零件成本紀錄表.供應商, 零件成本紀錄表.科目 " &
  64. "HAVING (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) <> 0) ORDER BY 零件進銷存報表.進貨日期 DESC"
  65. 列印用SQL1 = SQL1 : DGV1讀取後設定()
  66. End If
  67. End Sub
  68. Private Sub 讀取出貨資料表()
  69. If TextBox1.Text = "" Then
  70. DGV2讀取前設定()
  71. SQL1 = "SELECT 零件進銷存報表.流水號, 零件進銷存報表.零件編號, 零件進銷存報表.出貨日期, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " &
  72. "零件進銷存報表.出貨數量,零件進銷存報表.出貨金額, 零件進銷存報表.台幣出貨成本 AS 台幣出貨金額, 零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON " &
  73. "零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE 零件進銷存報表.出貨確認 = '0' ORDER BY 零件進銷存報表.零件編號 DESC"
  74. DGV2讀取後設定()
  75. Else
  76. DGV2讀取前設定()
  77. SQL1 = "SELECT 零件進銷存報表.流水號, 零件進銷存報表.零件編號, 零件進銷存報表.出貨日期, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " &
  78. "零件進銷存報表.出貨數量,零件進銷存報表.出貨金額, 零件進銷存報表.台幣出貨成本 AS 台幣出貨金額, 零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON " &
  79. "零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE 零件進銷存報表.零件編號 LIKE '" & TextBox1.Text & "' AND 零件進銷存報表.出貨確認 = '0' " &
  80. "ORDER BY 零件進銷存報表.零件編號 DESC"
  81. DGV2讀取後設定()
  82. ConnOpen()
  83. SQL1 = "SELECT 零件進銷存報表.流水號, 零件進銷存報表.零件編號, 零件進銷存報表.出貨日期, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " &
  84. "零件進銷存報表.出貨數量,零件進銷存報表.出貨金額, 零件進銷存報表.台幣出貨成本 AS 台幣出貨金額, 零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON " &
  85. "零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE 零件進銷存報表.零件編號 NOT LIKE '" & TextBox1.Text & "' AND 零件進銷存報表.出貨確認 = '0' " &
  86. "ORDER BY 零件進銷存報表.零件編號 DESC"
  87. DGV2讀取後設定()
  88. End If
  89. End Sub
  90. Private Sub 讀取利潤清單()
  91. DGV3讀取前設定()
  92. SQL1 = "SELECT 零件進銷存報表.零件編號, 零件進銷存報表.出貨數量, ROUND(零件進銷存報表.出貨數量 * CONVERT(FLOAT, 零件成本紀錄表.進貨單價), 2) AS 進貨成本, 零件進銷存報表.出貨金額, " &
  93. "ROUND(零件進銷存報表.出貨金額 - 零件進銷存報表.出貨數量 * CONVERT(FLOAT, 零件成本紀錄表.進貨單價), 2) AS 利潤, " &
  94. "ROUND((零件進銷存報表.出貨金額 - 零件進銷存報表.出貨數量 * CONVERT(FLOAT, 零件成本紀錄表.進貨單價)) * 零件進銷存報表.匯率, 2) AS 台幣利潤 " &
  95. "FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON 零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE (零件進銷存報表.出貨確認 = 0) ORDER BY 零件進銷存報表.零件編號 DESC"
  96. DGV3讀取後設定()
  97. End Sub
  98. Private Sub Set_grid1()
  99. DataGridView1.Columns(0).Width = 75 : DataGridView1.Columns(1).Width = 85 : DataGridView1.Columns(2).Width = 75 : DataGridView1.Columns(3).Width = 95
  100. DataGridView1.Columns(4).Width = 95 : DataGridView1.Columns(5).Width = 190 : DataGridView1.Columns(6).Width = 220 : DataGridView1.Columns(7).Width = 75
  101. DataGridView1.Columns(8).Width = 80 : DataGridView1.Columns(9).Width = 80 : DataGridView1.Columns(10).Width = 80 : DataGridView1.Columns(11).Width = 80
  102. DataGridView1.Columns(12).Width = 60
  103. DataGridView1.Columns(8).DefaultCellStyle.Format = "#,##0" : DataGridView1.Columns(9).DefaultCellStyle.Format = "#,##0"
  104. DataGridView1.Columns(10).DefaultCellStyle.Format = "#,##0.00" : DataGridView1.Columns(11).DefaultCellStyle.Format = "#,##0.00"
  105. End Sub
  106. Private Sub Set_grid2()
  107. DataGridView2.Columns(0).Width = 90 : DataGridView2.Columns(1).Width = 70 : DataGridView2.Columns(2).Width = 75 : DataGridView2.Columns(3).Width = 150
  108. DataGridView2.Columns(4).Width = 160 : DataGridView2.Columns(5).Width = 65 : DataGridView2.Columns(6).Width = 70 : DataGridView2.Columns(7).Width = 90
  109. DataGridView2.Columns(8).Width = 55
  110. DataGridView2.Columns(5).DefaultCellStyle.Format = "#,##0" : DataGridView2.Columns(6).DefaultCellStyle.Format = "#,##0.00"
  111. DataGridView2.Columns(7).DefaultCellStyle.Format = "#,##0.00"
  112. End Sub
  113. Private Sub Set_grid3()
  114. DataGridView3.Columns(0).Width = 90 : DataGridView3.Columns(1).Width = 70 : DataGridView3.Columns(2).Width = 70 : DataGridView3.Columns(3).Width = 70
  115. DataGridView3.Columns(4).Width = 70 : DataGridView3.Columns(5).Width = 70
  116. DataGridView3.Columns(1).DefaultCellStyle.Format = "#,##0" : DataGridView3.Columns(2).DefaultCellStyle.Format = "#,##0.00"
  117. DataGridView3.Columns(3).DefaultCellStyle.Format = "#,##0.00" : DataGridView3.Columns(4).DefaultCellStyle.Format = "#,##0.00"
  118. DataGridView3.Columns(5).DefaultCellStyle.Format = "#,##0.00"
  119. End Sub
  120. Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
  121. If e.RowIndex = -1 Then : Else
  122. TextBox1.Text = DataGridView1(0, e.RowIndex).Value.ToString : DateTimePicker1.Text = DataGridView1(1, e.RowIndex).Value.ToString
  123. ComboBox1.Text = DataGridView1(2, e.RowIndex).Value.ToString : ComboBox2.Text = DataGridView1(3, e.RowIndex).Value.ToString
  124. ComboBox3.Text = DataGridView1(4, e.RowIndex).Value.ToString : TextBox2.Text = DataGridView1(5, e.RowIndex).Value.ToString
  125. TextBox3.Text = DataGridView1(6, e.RowIndex).Value.ToString
  126. TextBox4.Text = Format(Val(DataGridView1(7, e.RowIndex).Value.ToString), "#,##0.00")
  127. TextBox6.Text = Format(Val(DataGridView1(8, e.RowIndex).Value.ToString), "#,##0")
  128. TextBox5.Text = Format(Val(DataGridView1(10, e.RowIndex).Value.ToString), "#,##0.00")
  129. TextBox7.Text = Format(Val(DataGridView1(11, e.RowIndex).Value.ToString), "#,##0.00")
  130. TextBox9.Text = DataGridView1(12, e.RowIndex).Value.ToString
  131. TextBox10.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox4.Text) * Double.Parse(TextBox9.Text)), 2))), "#,##0.00")
  132. End If
  133. End Sub
  134. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick
  135. If e.RowIndex = -1 Then : Else
  136. DateTimePicker2.Text = DataGridView2(2, e.RowIndex).Value.ToString
  137. TextBox11.Text = Format(Val(DataGridView2(5, e.RowIndex).Value.ToString), "#,##0")
  138. TextBox12.Text = Format(Val(DataGridView2(6, e.RowIndex).Value.ToString), "#,##0.00")
  139. TextBox8.Text = Format(Val(DataGridView2(7, e.RowIndex).Value.ToString), "#,##0.00")
  140. TextBox18.Text = DataGridView2(0, e.RowIndex).Value.ToString
  141. TextBox9.Text = DataGridView2(8, e.RowIndex).Value.ToString
  142. TextBox13.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox12.Text) / Double.Parse(TextBox11.Text)), 2))), "#,##0.00")
  143. End If
  144. End Sub
  145. Private Sub Set_時間()
  146. TextBox16.Text = Format(DateTimePicker2.Value, "yyyy") : TextBox15.Text = Format(DateTimePicker2.Value, "MM")
  147. End Sub
  148. Private Sub Set_匯率()
  149. Set_時間()
  150. If TextBox15.Text = Month(Now) Then
  151. ConnOpen()
  152. SQL1 = "SELECT 匯率 FROM 匯率表 WHERE (對應 = '人民幣兌台幣')"
  153. CmdSet_For_dr()
  154. If dr.Read() Then : TextBox14.Text = dr("匯率").ToString : End If
  155. ER = Double.Parse(dr("匯率").ToString)
  156. conn.Close() : dr.Close()
  157. Else
  158. ConnOpen()
  159. SQL1 = "SELECT 中心匯率 FROM 歷史匯率表 WHERE (年 LIKE '" & TextBox16.Text & "%') AND (月 LIKE '" & TextBox15.Text & "%')"
  160. CmdSet_For_dr()
  161. If dr.Read() Then : TextBox14.Text = dr("中心匯率").ToString : End If
  162. ER = Double.Parse(dr("中心匯率").ToString)
  163. conn.Close() : dr.Close()
  164. End If
  165. End Sub
  166. Private Sub Set_自動彙總1()
  167. Dim 數量加總 As Double = 0 : Dim 金額加總1 As Double = 0 : Dim 金額加總2 As Double = 0 : Dim 金額加總3 As Double = 0
  168. For i As Integer = 0 To DataGridView2.Rows.Count - 1
  169. If DataGridView2.RowCount = 0 Then : TextBox21.Text = "0" : Else : 數量加總 += DataGridView2.Rows(i).Cells("出貨數量").Value : End If
  170. Next i
  171. For i As Integer = 0 To DataGridView2.Rows.Count - 1
  172. If DataGridView2.RowCount = 0 Then : TextBox20.Text = "0" : Else : 金額加總1 += DataGridView2.Rows(i).Cells("出貨金額").Value : End If
  173. Next i
  174. For i As Integer = 0 To DataGridView3.Rows.Count - 1
  175. If DataGridView3.RowCount = 0 Then : TextBox19.Text = "0" : Else : 金額加總2 += DataGridView3.Rows(i).Cells("台幣利潤").Value : End If
  176. Next i
  177. For i As Integer = 0 To DataGridView3.Rows.Count - 1
  178. If DataGridView3.RowCount = 0 Then : TextBox22.Text = "0" : Else : 金額加總3 += DataGridView3.Rows(i).Cells("進貨成本").Value : End If
  179. Next i
  180. TextBox21.Text = Format(Val(數量加總), "#,##0")
  181. TextBox20.Text = Format(Val(金額加總1), "#,##0.00")
  182. TextBox19.Text = Format(Val(金額加總2), "#,##0.00")
  183. TextBox22.Text = Format(Val(金額加總3), "#,##0.00")
  184. TextBox23.Text = Format(Val(金額加總1 - 金額加總3), "#,##0.00")
  185. End Sub
  186. Private Sub 銷貨管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  187. Me.MdiParent = GCM_ERP_SYS
  188. Me.WindowState = 2
  189. 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1()
  190. End Sub
  191. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  192. timeNow = 0
  193. GCM_ERP_SYS.Timer1.Enabled = False
  194. GCM_ERP_SYS.Timer1.Enabled = True
  195. End Sub
  196. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  197. timeNow = 0
  198. GCM_ERP_SYS.Timer1.Enabled = False
  199. GCM_ERP_SYS.Timer1.Enabled = True
  200. End Sub
  201. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
  202. PA = InputBox("請輸入要查詢零件的資料")
  203. 讀取庫存資料表() : Set_grid1()
  204. PA = ""
  205. End Sub
  206. Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.TextChanged
  207. Set_匯率() : DateTimePicker3.Text = DateTimePicker2.Text
  208. End Sub
  209. Private Sub TextBox11_TextChanged(sender As Object, e As EventArgs) Handles TextBox11.TextChanged
  210. If IsNumeric(TextBox11.Text) = True And IsNumeric(TextBox13.Text) = True Then
  211. TextBox12.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00")
  212. TextBox8.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox14.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00")
  213. Else
  214. TextBox12.Text = "0.00" : TextBox8.Text = "0.00"
  215. End If
  216. End Sub
  217. Private Sub TextBox13_TextChanged(sender As Object, e As EventArgs) Handles TextBox13.TextChanged
  218. If IsNumeric(TextBox11.Text) = True And IsNumeric(TextBox13.Text) = True Then
  219. TextBox12.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00")
  220. TextBox8.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox14.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00")
  221. Else
  222. TextBox12.Text = "0.00" : TextBox8.Text = "0.00"
  223. End If
  224. End Sub
  225. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  226. If TextBox11.Text = "" Or TextBox13.Text = "" Or IsNumeric(TextBox11.Text) = False Or IsNumeric(TextBox13.Text) = False Then
  227. MsgBox("資料有誤")
  228. Else
  229. Dim NUM1 As Integer
  230. For NUM1 = 0 To 99999999
  231. If NUM1 < 10 Then
  232. TextBox17.Text = "MID" & "0000000" & NUM1
  233. ElseIf NUM1 > 9 And NUM1 < 100 Then
  234. TextBox17.Text = "MID" & "000000" & NUM1
  235. ElseIf NUM1 > 99 And NUM1 < 1000 Then
  236. TextBox17.Text = "MID" & "00000" & NUM1
  237. ElseIf NUM1 > 999 And NUM1 < 10000 Then
  238. TextBox17.Text = "MID" & "0000" & NUM1
  239. ElseIf NUM1 > 9999 And NUM1 < 100000 Then
  240. TextBox17.Text = "MID" & "000" & NUM1
  241. ElseIf NUM1 > 99999 And NUM1 < 1000000 Then
  242. TextBox17.Text = "MID" & "00" & NUM1
  243. ElseIf NUM1 > 999999 And NUM1 < 10000000 Then
  244. TextBox17.Text = "MID" & "0" & NUM1
  245. ElseIf NUM1 > 9999999 Then
  246. TextBox17.Text = "MID" & NUM1
  247. End If
  248. ConnOpen()
  249. SQL1 = "SELECT 流水號 FROM 零件進銷存報表 WHERE (流水號 ='" & TextBox17.Text & "')"
  250. CmdSet_For_dr()
  251. If dr.Read() Then : TextBox18.Text = dr("流水號").ToString : Else : TextBox18.Text = "" : End If
  252. conn.Close()
  253. If TextBox18.Text = "" Then
  254. TextBox18.Text = TextBox17.Text : TextBox17.Text = "可用"
  255. NUM1 = 99999999
  256. End If
  257. Next
  258. If TextBox17.Text = "可用" Then
  259. ConnOpen()
  260. SQL1 = "INSERT INTO 零件進銷存報表 (流水號, 零件編號, 進貨日期, 進貨數量, 進貨成本, 台幣進貨成本, 出貨日期, 出貨數量, 出貨金額, 台幣出貨成本, 匯率, 進貨確認, 出貨確認) " &
  261. "VALUES ('" & TextBox18.Text & "','" & TextBox1.Text & "','" & Format(DateTimePicker1.Value, "yyyy/MM/dd") & "','0','0','0','" & Format(DateTimePicker2.Value, "yyyy/MM/dd") &
  262. "','" & TextBox11.Text & "','" & TextBox12.Text & "','" & TextBox8.Text & "','" & TextBox9.Text & "', '1', '0')"
  263. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery()
  264. MsgBox("新增完成")
  265. conn.Close()
  266. End If
  267. 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1()
  268. End If
  269. End Sub
  270. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
  271. If TextBox18.Text = "" Or IsNumeric(TextBox11.Text) = True Or IsNumeric(TextBox13.Text) = True Then
  272. ConnOpen()
  273. SQL1 = "UPDATE 零件進銷存報表 SET 出貨日期 = '" & Format(DateTimePicker2.Value, "yyyy/MM/dd") & "', 出貨數量 = '" & TextBox11.Text & "', 出貨金額 = '" & TextBox12.Text &
  274. "', 台幣出貨成本 = '" & TextBox8.Text & "' WHERE (流水號 = '" & TextBox18.Text & "')"
  275. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery()
  276. MsgBox("修改完成")
  277. conn.Close()
  278. Else
  279. MsgBox("請選擇正確資料")
  280. End If
  281. 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1()
  282. End Sub
  283. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  284. SQL1 = "DELETE FROM 零件進銷存報表 WHERE (流水號 = '" & TextBox18.Text & "')"
  285. cmd.CommandText = SQL1 : cmd.Connection = conn
  286. ConnOpen()
  287. Dim aa As MsgBoxResult
  288. aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel)
  289. If aa = MsgBoxResult.Ok Then : cmd.ExecuteNonQuery() : MsgBox("刪除完成") : End If
  290. conn.Close()
  291. 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1()
  292. End Sub
  293. Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
  294. Dim NUM1 As Integer : Dim NUM2 As Integer
  295. For NUM2 = 0 To DataGridView2.Rows.Count - 1
  296. ConnOpen()
  297. SQL1 = "SELECT TOP (1) 流水號 FROM 零件出庫紀錄 ORDER BY 流水號 DESC"
  298. CmdSet_For_dr()
  299. If dr.Read() Then : TextBox24.Text = dr("流水號").ToString : Else : TextBox24.Text = 0 : End If
  300. conn.Close()
  301. NUM1 = Double.Parse(Strings.Right(TextBox24.Text, 8)) + 1
  302. If NUM1 < 10 Then
  303. TextBox24.Text = "W" & "0000000" & NUM1
  304. ElseIf NUM1 > 9 And NUM1 < 100 Then
  305. TextBox24.Text = "W" & "000000" & NUM1
  306. ElseIf NUM1 > 99 And NUM1 < 1000 Then
  307. TextBox24.Text = "W" & "00000" & NUM1
  308. ElseIf NUM1 > 999 And NUM1 < 10000 Then
  309. TextBox24.Text = "W" & "0000" & NUM1
  310. ElseIf NUM1 > 9999 And NUM1 < 100000 Then
  311. TextBox24.Text = "W" & "000" & NUM1
  312. ElseIf NUM1 > 99999 And NUM1 < 1000000 Then
  313. TextBox24.Text = "W" & "00" & NUM1
  314. ElseIf NUM1 > 999999 And NUM1 < 10000000 Then
  315. TextBox24.Text = "W" & "0" & NUM1
  316. ElseIf NUM1 > 9999999 Then
  317. TextBox24.Text = "W" & NUM1
  318. End If
  319. ConnOpen()
  320. SQL1 = "INSERT INTO 零件出庫紀錄 (流水號, 結單日期, 零件編號, 出貨數量, 進貨成本, 出貨金額, 利潤, 台幣利潤) " &
  321. "VALUES ('" & TextBox24.Text & "','" & Format(DateTimePicker3.Value, "yyyy/MM/dd") & "','" & DataGridView3.Item(0, NUM2).Value &
  322. "','" & DataGridView3.Item(1, NUM2).Value & "','" & DataGridView3.Item(2, NUM2).Value & "','" & DataGridView3.Item(3, NUM2).Value &
  323. "','" & DataGridView3.Item(4, NUM2).Value & "','" & DataGridView3.Item(5, NUM2).Value & "')"
  324. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery()
  325. conn.Close()
  326. Next
  327. Dim NUM3 As Integer
  328. For NUM3 = 0 To DataGridView2.Rows.Count - 1
  329. ConnOpen()
  330. SQL1 = "UPDATE 零件進銷存報表 SET 出貨確認 = '1' WHERE (流水號 = '" & DataGridView2.Item(0, NUM3).Value & "')"
  331. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery()
  332. conn.Close()
  333. Next
  334. 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1()
  335. MsgBox("修改完成")
  336. End Sub
  337. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  338. 出庫紀錄表.Show()
  339. End Sub
  340. End Class