No Description
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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Imports System.IO
  4. Public Class 歷史單價紀錄表
  5. Dim conn As New SqlConnection
  6. Dim da As New SqlDataAdapter
  7. Dim cmd As New SqlCommand
  8. Dim ds As New DataSet
  9. Dim dr As SqlDataReader
  10. Dim 新流水號 As String : Dim DTP1 As String : Dim DTP2 As String
  11. Private Sub Set_DGV1載入前設定()
  12. DataGridView1.DataSource = Nothing : ds.Clear()
  13. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  14. DataGridView1.ColumnHeadersHeight = 25
  15. DataGridView1.AllowUserToAddRows = False
  16. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  17. End Sub
  18. Private Sub Set_DGV1載入後設定()
  19. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() : Set_grid()
  20. End Sub
  21. Private Sub Set_清單()
  22. Set_DGV1載入前設定()
  23. If PA = "" Then
  24. SQL1 = "SELECT 流水號, 客戶簡稱, 客戶備註 AS 客戶, XF1, XF2, 工廠, 形體號, 形體名, 鞋面, 顏色, 工廠價, 客戶價, 備註, 鞋圖編號 FROM 歷史單價紀錄表 ORDER BY 客戶簡稱, 形體號, 形體名,顏色"
  25. Else
  26. SQL1 = "SELECT 流水號, 客戶簡稱, 客戶備註 AS 客戶, XF1, XF2, 工廠, 形體號, 形體名, 鞋面, 顏色, 工廠價, 客戶價, 備註, 鞋圖編號 FROM 歷史單價紀錄表 " &
  27. "WHERE (客戶簡稱 LIKE N'%" & PA & "%') OR (工廠 LIKE N'%" & PA & "%') OR (形體號 LIKE N'%" & PA & "%') OR (形體名 LIKE N'%" & PA & "%') OR (鞋面 LIKE N'%" & PA & "%') OR (顏色 LIKE N'%" & PA & "%') " &
  28. "ORDER BY 客戶簡稱, 形體號, 形體名,顏色"
  29. End If
  30. Set_DGV1載入後設定()
  31. End Sub
  32. Private Sub Set_grid()
  33. DataGridView1.Columns(0).Visible = False : DataGridView1.Columns(1).Width = 110 : DataGridView1.Columns(2).Visible = False : DataGridView1.Columns(3).Width = 90 : DataGridView1.Columns(4).Width = 90
  34. DataGridView1.Columns(5).Width = 100 : DataGridView1.Columns(6).Width = 180 : DataGridView1.Columns(7).Width = 210 : DataGridView1.Columns(8).Width = 290 : DataGridView1.Columns(9).Width = 160
  35. DataGridView1.Columns(10).Width = 60 : DataGridView1.Columns(11).Width = 60 : DataGridView1.Columns(12).Width = 515 : DataGridView1.Columns(13).Visible = False
  36. DataGridView1.Columns(10).DefaultCellStyle.Format = "#,##0.00" : DataGridView1.Columns(11).DefaultCellStyle.Format = "#,##0.00"
  37. DataGridView1.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : DataGridView1.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  38. DataGridView1.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight : DataGridView1.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  39. End Sub
  40. Private Sub ComboBox1下拉表單資料載入()
  41. conn.Close()
  42. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  43. SQL1 = "SELECT 客戶簡稱 FROM 客戶控制表 ORDER BY 客戶簡稱"
  44. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  45. ComboBox1.Items.Clear() : While (dr.Read()) : ComboBox1.Items.Add(dr("客戶簡稱")) : End While : conn.Close()
  46. End Sub
  47. Private Sub ComboBox2下拉表單資料載入()
  48. conn.Close()
  49. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  50. SQL1 = "SELECT 工廠 FROM 工廠控制表 ORDER BY 工廠"
  51. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  52. ComboBox2.Items.Clear() : While (dr.Read()) : ComboBox2.Items.Add(dr("工廠")) : End While : conn.Close()
  53. End Sub
  54. Private Sub ComboBox3下拉表單資料載入()
  55. conn.Close()
  56. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  57. SQL1 = "SELECT 顏色 FROM 顏色清單 ORDER BY 顏色"
  58. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  59. ComboBox3.Items.Clear() : While (dr.Read()) : ComboBox3.Items.Add(dr("顏色")) : End While : conn.Close()
  60. End Sub
  61. Private Sub ComboBox4下拉表單資料載入()
  62. conn.Close()
  63. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  64. SQL1 = "SELECT 型體號碼 FROM 型體控制表 WHERE 客戶簡稱 LIKE N'" & ComboBox1.Text & "' "
  65. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  66. ComboBox4.Items.Clear() : While (dr.Read()) : ComboBox4.Items.Add(dr("型體號碼")) : End While : conn.Close()
  67. End Sub
  68. Private Sub ComboBox5下拉表單資料載入()
  69. conn.Close()
  70. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  71. SQL1 = "SELECT 型體名稱 FROM 型體控制表 WHERE 型體號碼 LIKE N'" & ComboBox4.Text & "' "
  72. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  73. ComboBox5.Items.Clear() : While (dr.Read()) : ComboBox5.Items.Add(dr("型體名稱")) : End While : conn.Close()
  74. End Sub
  75. Private Sub Set_日期格式轉換()
  76. DTP1 = Format(DateTimePicker1.Value, "yyyy/MM/dd") : DTP2 = Format(DateTimePicker2.Value, "yyyy/MM/dd")
  77. End Sub
  78. Private Sub 歷史單價紀錄表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  79. Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  80. TextBox1.Enabled = False : TextBox9.Enabled = False : Button11.Enabled = False : Label62.Visible = False
  81. ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入() : ComboBox3下拉表單資料載入()
  82. Set_清單()
  83. If CC(6) = False Then
  84. Button29.Enabled = False : Button1.Enabled = False : Button12.Enabled = False
  85. End If
  86. If CC(7) = False Then
  87. Button10.Enabled = False
  88. End If
  89. If CC(8) = False Then
  90. Button3.Enabled = False : Button4.Enabled = False
  91. End If
  92. End Sub
  93. Private Sub 歷史單價紀錄表_Unload(sender As Object, e As EventArgs) Handles MyBase.Closing
  94. If Button11.Enabled = True Then
  95. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  96. SQL1 = "DELETE FROM 歷史單價紀錄表 WHERE (流水號 = '" & TextBox1.Text & "')"
  97. cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close()
  98. End If
  99. End Sub
  100. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  101. If Label62.Visible = True Then : Label62.Visible = False : Else : Label62.Visible = True : End If
  102. End Sub
  103. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
  104. If e.RowIndex = -1 Then : Else
  105. If Button11.Enabled = False Then
  106. TextBox1.Text = DataGridView1(0, e.RowIndex).Value.ToString : ComboBox1.Text = DataGridView1(1, e.RowIndex).Value.ToString : TextBox2.Text = DataGridView1(2, e.RowIndex).Value.ToString
  107. DateTimePicker1.Text = DataGridView1(3, e.RowIndex).Value.ToString : DateTimePicker2.Text = DataGridView1(4, e.RowIndex).Value.ToString : ComboBox2.Text = DataGridView1(5, e.RowIndex).Value.ToString
  108. ComboBox4.Text = DataGridView1(6, e.RowIndex).Value.ToString : ComboBox5.Text = DataGridView1(7, e.RowIndex).Value.ToString : TextBox5.Text = DataGridView1(8, e.RowIndex).Value.ToString
  109. ComboBox3.Text = DataGridView1(9, e.RowIndex).Value.ToString : TextBox6.Text = DataGridView1(10, e.RowIndex).Value.ToString : TextBox7.Text = DataGridView1(11, e.RowIndex).Value.ToString
  110. TextBox8.Text = DataGridView1(12, e.RowIndex).Value.ToString : TextBox9.Text = DataGridView1(13, e.RowIndex).Value.ToString
  111. TextBox6.Text = Format(Val(TextBox6.Text), "#,##0.00") : TextBox7.Text = Format(Val(TextBox7.Text), "#,##0.00")
  112. PictureBox1.Image = Nothing
  113. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  114. SQL1 = "SELECT 圖片 FROM 鞋型圖片資料庫 WHERE 客戶 LIKE N'" & DataGridView1(1, e.RowIndex).Value.ToString & "' AND 形體號 LIKE N'" & DataGridView1(6, e.RowIndex).Value.ToString &
  115. "' AND 形體名 LIKE N'" & DataGridView1(7, e.RowIndex).Value.ToString & "' AND 顏色 LIKE N'" & DataGridView1(9, e.RowIndex).Value.ToString & "'"
  116. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  117. If dr.Read() Then
  118. PictureBox1.Image = Nothing : conn.Close()
  119. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  120. SQL1 = "SELECT 圖片 FROM 鞋型圖片資料庫 WHERE 客戶 LIKE N'" & DataGridView1(1, e.RowIndex).Value.ToString & "' AND 形體號 LIKE N'" & DataGridView1(6, e.RowIndex).Value.ToString &
  121. "' AND 形體名 LIKE N'" & DataGridView1(7, e.RowIndex).Value.ToString & "' AND 顏色 LIKE N'" & DataGridView1(9, e.RowIndex).Value.ToString & "'"
  122. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  123. While dr.Read() = True
  124. Dim bytes As Byte() = New Byte(-1) {} : bytes = DirectCast(dr.Item("圖片"), Byte()) : Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  125. End While
  126. conn.Close()
  127. Else
  128. conn.Close()
  129. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  130. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 WHERE 客戶 LIKE N'" & DataGridView1(1, e.RowIndex).Value.ToString & "' AND 形體號 LIKE N'" & DataGridView1(6, e.RowIndex).Value.ToString &
  131. "' AND 形體名 LIKE N'" & DataGridView1(7, e.RowIndex).Value.ToString & "' AND 類別 LIKE N'設計圖'"
  132. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  133. If dr.Read() Then
  134. PictureBox1.Image = Nothing : conn.Close()
  135. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  136. SQL1 = "SELECT TOP(1) 圖片 FROM 鞋型圖片資料庫 WHERE 客戶 LIKE N'" & DataGridView1(1, e.RowIndex).Value.ToString & "' AND 形體號 LIKE N'" & DataGridView1(6, e.RowIndex).Value.ToString &
  137. "' AND 形體名 LIKE N'" & DataGridView1(7, e.RowIndex).Value.ToString & "' AND 類別 LIKE N'設計圖'"
  138. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  139. While dr.Read() = True
  140. Dim bytes As Byte() = New Byte(-1) {} : bytes = DirectCast(dr.Item("圖片"), Byte()) : Dim oStream As New MemoryStream(bytes) : PictureBox1.Image = Bitmap.FromStream(oStream)
  141. End While
  142. conn.Close()
  143. Else
  144. conn.Close()
  145. End If
  146. End If : PictureBox1.SizeMode = 4
  147. End If
  148. End If
  149. End Sub
  150. Private Sub DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
  151. Dim linePen As New Pen(Color.Blue, 2)
  152. If e.RowIndex = DataGridView1.Rows.Count - 1 Then
  153. Exit Sub
  154. Else
  155. If DataGridView1(1, e.RowIndex).Value.ToString <> DataGridView1(1, e.RowIndex + 1).Value.ToString Then
  156. Dim startX As Integer = IIf(DataGridView1.RowHeadersVisible, DataGridView1.RowHeadersWidth, 0)
  157. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  158. Dim endX As Integer = startX + DataGridView1.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView1.HorizontalScrollingOffset
  159. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  160. Exit Sub
  161. End If
  162. End If
  163. End Sub
  164. Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
  165. PA = InputBox("請輸入要查詢的關鍵字") : Set_清單() : PA = ""
  166. End Sub
  167. Private Sub Button32_Click(sender As Object, e As EventArgs) Handles Button32.Click
  168. PA = "" : Set_清單()
  169. End Sub
  170. Private Sub 新增準備1()
  171. Dim NUM1 As Integer
  172. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  173. SQL1 = "SELECT TOP(1) 流水號 FROM 歷史單價紀錄表 ORDER BY 流水號 DESC"
  174. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  175. If dr.Read() Then : 新流水號 = dr("流水號") : End If : conn.Close()
  176. NUM1 = Double.Parse(Strings.Right(新流水號, 6)) + 1
  177. If NUM1 < 10 Then : 新流水號 = "PR" & "00000" & NUM1
  178. ElseIf NUM1 > 9 And NUM1 < 100 Then : 新流水號 = "PR" & "0000" & NUM1
  179. ElseIf NUM1 > 99 And NUM1 < 1000 Then : 新流水號 = "PR" & "000" & NUM1
  180. ElseIf NUM1 > 999 And NUM1 < 10000 Then : 新流水號 = "PR" & "00" & NUM1
  181. ElseIf NUM1 > 9999 And NUM1 < 100000 Then : 新流水號 = "PR" & "0" & NUM1
  182. ElseIf NUM1 > 99999 Then : 新流水號 = "PR" & NUM1
  183. End If
  184. TextBox1.Text = 新流水號
  185. End Sub
  186. Private Sub 新增準備2()
  187. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  188. SQL1 = "INSERT INTO 歷史單價紀錄表 ( 流水號, 客戶簡稱, 客戶備註, XF1, XF2, 工廠, 形體號, 形體名, 鞋面, 顏色, 工廠價, 客戶價, 備註, 鞋圖編號) " &
  189. "VALUES (N'" & TextBox1.Text & "',N'" & ComboBox1.Text & "',N'" & TextBox2.Text & "','" & DTP1 & "','" & DTP2 & "', N'" & ComboBox2.Text & "', N'" & ComboBox4.Text & "', N'" & ComboBox5.Text &
  190. "', N'" & TextBox5.Text & "', N'" & ComboBox3.Text & "', N'" & TextBox6.Text & "', N'" & TextBox7.Text & "', N'" & TextBox8.Text & "', N'" & TextBox9.Text & "')"
  191. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  192. Button11.Enabled = True : Button29.Enabled = False : Button1.Enabled = False : Button12.Enabled = False
  193. MsgBox("資料新增準備完成")
  194. End Sub
  195. Private Sub Button29_Click(sender As Object, e As EventArgs) Handles Button29.Click
  196. Timer1.Enabled = True
  197. 新增準備1()
  198. ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入() : ComboBox3下拉表單資料載入()
  199. DateTimePicker1.Value = Today() : DateTimePicker2.Value = Today()
  200. TextBox2.Text = "" : ComboBox4.Text = "" : ComboBox5.Text = "" : TextBox5.Text = "" : TextBox6.Text = "0.00" : TextBox7.Text = "0.00" : TextBox8.Text = "" : TextBox9.Text = ""
  201. Set_日期格式轉換()
  202. 新增準備2()
  203. End Sub
  204. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  205. Timer1.Enabled = True
  206. If ComboBox4.Text = "" Or ComboBox5.Text = "" Or TextBox5.Text = "" Or ComboBox1.Text = "" Or ComboBox2.Text = "" Or ComboBox3.Text = "" Then
  207. MsgBox("複製新增方式需要先選擇一筆被複製的舊資料")
  208. Else
  209. 新增準備1() : Set_日期格式轉換() : 新增準備2()
  210. End If
  211. End Sub
  212. Private Sub 修改1()
  213. If ComboBox4.Text = "" Or ComboBox5.Text = "" Or TextBox5.Text = "" Or ComboBox1.Text = "" Or ComboBox2.Text = "" Or ComboBox3.Text = "" Then
  214. MsgBox("紅色字體的資料欄位為必填項,不可空白")
  215. Else
  216. Set_日期格式轉換()
  217. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  218. SQL1 = "UPDATE 歷史單價紀錄表 SET 客戶簡稱 = N'" & ComboBox1.Text & "', 客戶備註 = N'" & TextBox2.Text & "', XF1 = '" & DTP1 & "', XF2 = '" & DTP2 & "', 工廠 = N'" & ComboBox2.Text &
  219. "', 形體號 = N'" & ComboBox4.Text & "', 形體名 = N'" & ComboBox5.Text & "', 鞋面 = N'" & TextBox5.Text & "', 顏色 = N'" & ComboBox3.Text & "', 工廠價 = N'" & TextBox6.Text &
  220. "', 客戶價 = N'" & TextBox7.Text & "', 備註 = N'" & TextBox8.Text & "', 鞋圖編號 = N'" & TextBox9.Text & "' WHERE (流水號 = '" & TextBox1.Text & "')"
  221. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() : conn.Close()
  222. Button11.Enabled = False : Button29.Enabled = True : Button1.Enabled = True : Button12.Enabled = True
  223. MsgBox("存檔完成") : Set_清單()
  224. End If
  225. Timer1.Enabled = False : Label62.Visible = False
  226. End Sub
  227. Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
  228. 修改1()
  229. End Sub
  230. Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
  231. 修改1()
  232. End Sub
  233. Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
  234. SQL1 = "DELETE FROM 歷史單價紀錄表 WHERE (流水號 = '" & TextBox1.Text & "')"
  235. cmd.CommandText = SQL1 : cmd.Connection = conn
  236. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  237. Dim aa As MsgBoxResult
  238. aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel)
  239. If aa = MsgBoxResult.Ok Then
  240. cmd.ExecuteNonQuery()
  241. cmd.ExecuteNonQuery()
  242. MsgBox("刪除完成") : Set_清單()
  243. End If
  244. conn.Close()
  245. End Sub
  246. Private Sub Button28_Click(sender As Object, e As EventArgs) Handles Button28.Click
  247. MsgBox("等待開發")
  248. End Sub
  249. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  250. 清單修改.Close() : 工廠清單修改 = True : 清單修改.ShowDialog() : ComboBox2下拉表單資料載入() : 工廠清單修改 = False
  251. End Sub
  252. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  253. 清單修改.Close() : 顏色清單修改 = True : 清單修改.ShowDialog() : ComboBox3下拉表單資料載入() : 顏色清單修改 = False
  254. End Sub
  255. Private Sub ComboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox4.SelectedIndexChanged
  256. ComboBox5下拉表單資料載入()
  257. End Sub
  258. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
  259. ComboBox4下拉表單資料載入()
  260. End Sub
  261. End Class