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

銷貨管理.vb 27KB

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