Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

進貨管理.vb 19KB

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