Няма описание
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 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Public Class 一般物料請購單申請
  4. Dim conn As New SqlConnection
  5. Dim da As New SqlDataAdapter
  6. Dim cmd As New SqlCommand
  7. Dim ds As New DataSet : Dim ds1 As New DataSet : Dim ds2 As New DataSet : Dim ds3 As New DataSet : Dim ds4 As New DataSet
  8. Dim dr As SqlDataReader
  9. Dim DTP As String : Dim DTP1 As String : Dim 新項次 As String
  10. Dim NUM1 As Integer
  11. Private Sub Set_使用者清單()
  12. DataGridView1.DataSource = Nothing : ds.Clear()
  13. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  14. DataGridView1.ColumnHeadersHeight = 25
  15. DataGridView1.AllowUserToAddRows = False
  16. DataGridView1.RowTemplate.Height = 35
  17. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  18. SQL1 = "SELECT 請購單號, 項次, 品名, 規格, 備註, 數量, 單價, 數量 * 單價 AS 金額, 用途 FROM 一般物料請購單明細表 WHERE 請購單號 LIKE N'" & TextBox1.Text & "' ORDER BY 項次"
  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_grid()
  22. DataGridView1.Columns(0).Visible = False : DataGridView1.Columns(1).Width = 80 : DataGridView1.Columns(2).Width = 200 : DataGridView1.Columns(3).Width = 200 : DataGridView1.Columns(4).Width = 200
  23. DataGridView1.Columns(5).Width = 80 : DataGridView1.Columns(6).Width = 80 : DataGridView1.Columns(7).Width = 80 : DataGridView1.Columns(8).Width = 305
  24. DataGridView1.Columns(5).DefaultCellStyle.Format = "#,##0.00" : DataGridView1.Columns(6).DefaultCellStyle.Format = "#,##0.00" : DataGridView1.Columns(7).DefaultCellStyle.Format = "#,##0.00"
  25. DataGridView1.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : DataGridView1.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  26. DataGridView1.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  27. DataGridView1.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight : DataGridView1.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  28. DataGridView1.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  29. DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
  30. TextBox5.Text = "0.00"
  31. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  32. TextBox5.Text = Val(TextBox5.Text) + DataGridView1.Rows(i).Cells("金額").Value
  33. Next i
  34. TextBox5.Text = Format(Val(TextBox5.Text), "#,##0.00")
  35. End Sub
  36. Private Sub Set_清單1()
  37. DataGridView2.DataSource = Nothing : ds1.Clear()
  38. DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  39. DataGridView2.ColumnHeadersHeight = 25
  40. DataGridView2.AllowUserToAddRows = False
  41. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  42. If 登入人部門 = "NA" Then
  43. SQL1 = "SELECT 請購單號, 申請人, LEFT(申請日期, 10) AS 申請日期, 核准人, LEFT(核准日期, 10) AS 核准日期 FROM 一般物料請購單控制表 " &
  44. "WHERE (核准人 LIKE N'') ORDER BY 請購單號 DESC"
  45. Else
  46. SQL1 = "SELECT 請購單號, 申請人, LEFT(申請日期, 10) AS 申請日期, 核准人, LEFT(核准日期, 10) AS 核准日期 FROM 一般物料請購單控制表 " &
  47. "WHERE (申請人 LIKE N'" & gUserName & "') AND (核准人 LIKE N'') ORDER BY 請購單號 DESC"
  48. End If
  49. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn.Close() : Set_grid1()
  50. End Sub
  51. Private Sub Set_grid1()
  52. DataGridView2.Columns(0).Width = 150 : DataGridView2.Columns(1).Width = 115 : DataGridView2.Columns(2).Width = 115 : DataGridView2.Columns(3).Width = 115 : DataGridView2.Columns(4).Width = 115
  53. End Sub
  54. Private Sub Set_清單3()
  55. DataGridView4.DataSource = Nothing : ds3.Clear()
  56. DataGridView4.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  57. DataGridView4.ColumnHeadersHeight = 25
  58. DataGridView4.AllowUserToAddRows = False
  59. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  60. If 登入人部門 = "NA" Then
  61. SQL1 = "SELECT 請購單號, 申請人, LEFT(申請日期, 10) AS 申請日期, 核准人, LEFT(核准日期, 10) AS 核准日期 FROM 一般物料請購單控制表 " &
  62. "WHERE (核准人 LIKE N'作廢%') ORDER BY 請購單號 DESC"
  63. Else
  64. SQL1 = "SELECT 請購單號, 申請人, LEFT(申請日期, 10) AS 申請日期, 核准人, LEFT(核准日期, 10) AS 核准日期 FROM 一般物料請購單控制表 " &
  65. "WHERE (申請人 LIKE N'" & gUserName & "') AND (核准人 LIKE N'作廢%') ORDER BY 請購單號 DESC"
  66. End If
  67. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds3) : DataGridView4.DataSource = ds3.Tables(0) : conn.Close() : Set_grid3()
  68. End Sub
  69. Private Sub Set_grid3()
  70. DataGridView4.Columns(0).Width = 150 : DataGridView4.Columns(1).Width = 115 : DataGridView4.Columns(2).Width = 115 : DataGridView4.Columns(3).Width = 115 : DataGridView4.Columns(4).Width = 115
  71. End Sub
  72. Private Sub Set_日期格式轉換()
  73. DTP = Format(Today(), "yyyy/MM/dd") & "-" & Format(TimeOfDay(), "hh:mm:ss") : DTP1 = Format(Today(), "yyyyMMdd")
  74. End Sub
  75. Private Sub 一般物料請購單申請_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  76. Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  77. Button2.Enabled = False : Button6.Enabled = False : Button15.Enabled = False : Button3.Enabled = False : Button4.Enabled = False : Button5.Enabled = False
  78. TextBox1.Enabled = False : TextBox3.Enabled = False : TextBox4.Enabled = False
  79. Set_清單1() : Set_清單3()
  80. End Sub
  81. Private Sub 一般物料請購單申請_Unload(sender As Object, e As EventArgs) Handles MyBase.Closing
  82. If Button2.Enabled = True Then
  83. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  84. SQL1 = "DELETE FROM 一般物料請購單控制表 WHERE (請購單號 LIKE N'" & TextBox1.Text & "')"
  85. cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close()
  86. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  87. SQL1 = "DELETE FROM 一般物料請購單明細表 WHERE (請購單號 LIKE N'" & TextBox1.Text & "')"
  88. cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close()
  89. End If
  90. End Sub
  91. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  92. If Label62.Visible = True Then : Label62.Visible = False : Else : Label62.Visible = True : End If
  93. End Sub
  94. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
  95. If e.RowIndex = -1 Then : Else
  96. TextBox4.Text = DataGridView1(1, e.RowIndex).Value.ToString
  97. End If
  98. End Sub
  99. Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
  100. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  101. DataGridView1.Rows(i).Cells("金額").Value = Val(DataGridView1.Rows(i).Cells("數量").Value) * Val(DataGridView1.Rows(i).Cells("單價").Value)
  102. Next i
  103. End Sub
  104. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick
  105. If e.RowIndex = -1 Then : Else
  106. TextBox1.Text = DataGridView2(0, e.RowIndex).Value.ToString : TextBox3.Text = DataGridView2(1, e.RowIndex).Value.ToString : DateTimePicker1.Value = DataGridView2(2, e.RowIndex).Value.ToString
  107. Button3.Enabled = True : Button5.Enabled = True : Set_使用者清單()
  108. End If
  109. End Sub
  110. Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView4.CellClick
  111. If e.RowIndex = -1 Then : Else
  112. TextBox1.Text = DataGridView4(0, e.RowIndex).Value.ToString : TextBox3.Text = DataGridView4(1, e.RowIndex).Value.ToString : DateTimePicker1.Value = DataGridView4(2, e.RowIndex).Value.ToString
  113. Button3.Enabled = False : Button5.Enabled = False : Set_使用者清單()
  114. End If
  115. End Sub
  116. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  117. Timer1.Enabled = True
  118. Button1.Enabled = False : Button2.Enabled = True : Button6.Enabled = True : Button15.Enabled = True
  119. Set_日期格式轉換() : Dim NUM1 As Integer
  120. For i As Integer = 1 To 999
  121. NUM1 = 0 + i
  122. If NUM1 < 10 Then : TextBox1.Text = "RE-" & DTP1 & "-00" & NUM1
  123. ElseIf NUM1 > 9 And NUM1 < 100 Then : TextBox1.Text = "RE-" & DTP1 & "-0" & NUM1
  124. ElseIf NUM1 > 99 Then : TextBox1.Text = "RE-" & DTP1 & "-" & NUM1
  125. End If
  126. conn.Close()
  127. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  128. SQL1 = "SELECT TOP (1) 請購單號 FROM 一般物料請購單控制表 WHERE ( 請購單號 LIKE N'" & TextBox1.Text & "')"
  129. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  130. If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  131. Next
  132. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  133. SQL1 = "INSERT INTO 一般物料請購單控制表 (請購單號, 申請人, 申請日期, 核准人, 核准日期, 已採購, 轉請款, 零用金單號) " &
  134. "VALUES (N'" & TextBox1.Text & "',N'" & gUserName & "',N'" & DTP & "',N'',N'',N'0',N'0',N'')"
  135. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery()
  136. TextBox3.Text = gUserName
  137. DataGridView1.DataSource = Nothing : ds.Clear()
  138. conn.Close()
  139. End Sub
  140. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  141. Timer1.Enabled = False : Label62.Visible = False
  142. Button1.Enabled = True : Button2.Enabled = False : Button6.Enabled = False : Button15.Enabled = False
  143. 存檔()
  144. TextBox1.Text = "" : TextBox3.Text = "" : TextBox4.Text = ""
  145. DataGridView1.DataSource = Nothing : ds.Clear()
  146. MsgBox("申請完成,請通知總經理審核。")
  147. Set_清單1() : Set_清單3()
  148. End Sub
  149. Private Sub 存檔()
  150. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  151. 資料數 = DataGridView1.Rows.Count : MyModule1.進度條()
  152. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  153. SQL1 = "UPDATE 一般物料請購單明細表 SET 品名 = N'" & DataGridView1.Rows(i).Cells("品名").Value & "', 規格 = N'" & DataGridView1.Rows(i).Cells("規格").Value &
  154. "', 備註 = N'" & DataGridView1.Rows(i).Cells("備註").Value & "', 數量 = N'" & DataGridView1.Rows(i).Cells("數量").Value & "', 單價 = N'" & DataGridView1.Rows(i).Cells("單價").Value &
  155. "', 用途 = N'" & DataGridView1.Rows(i).Cells("用途").Value & "' WHERE (請購單號 LIKE N'" & TextBox1.Text & "' AND 項次 LIKE N'" & DataGridView1.Rows(i).Cells("項次").Value & "')"
  156. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  157. Next : WINPROFIT_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
  158. End Sub
  159. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
  160. 存檔()
  161. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  162. SQL1 = "SELECT TOP(1) 項次 FROM 一般物料請購單明細表 WHERE 請購單號 LIKE N'" & TextBox1.Text & "' ORDER BY 項次 DESC"
  163. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  164. If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close()
  165. NUM1 = Double.Parse(新項次) + 1
  166. If NUM1 < 10 Then : 新項次 = "0" & NUM1
  167. ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1
  168. End If
  169. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  170. SQL1 = "INSERT INTO 一般物料請購單明細表 (請購單號, 品名, 規格, 備註, 數量, 單價, 用途, 項次) " &
  171. "VALUES (N'" & TextBox1.Text & "',N'',N'',N'',N'0',N'0',N'',N'" & 新項次 & "')"
  172. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery()
  173. Set_使用者清單()
  174. End Sub
  175. Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
  176. If TextBox4.Text = "" Then
  177. MsgBox("未選擇需要刪除的資料")
  178. Else
  179. 存檔()
  180. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  181. SQL1 = "DELETE FROM 一般物料請購單明細表 WHERE (請購單號 LIKE N'" & TextBox1.Text & "' AND 項次 LIKE N'" & TextBox4.Text & "')"
  182. cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close()
  183. Set_使用者清單()
  184. Dim NUM1 As Integer = 0
  185. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  186. NUM1 = NUM1 + 1 : If NUM1 < 10 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 : End If
  187. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  188. SQL1 = "UPDATE 一般物料請購單明細表 SET 項次 = N'" & 新項次 & "' WHERE (請購單號 LIKE N'" & TextBox1.Text & "' AND 項次 LIKE N'" & DataGridView1.Rows(i).Cells("項次").Value & "')"
  189. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery()
  190. conn.Close()
  191. Next
  192. Set_使用者清單()
  193. End If
  194. End Sub
  195. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  196. Button3.Enabled = False : Button4.Enabled = True : Button6.Enabled = True : Button15.Enabled = True
  197. End Sub
  198. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  199. Button3.Enabled = True : Button4.Enabled = False : Button6.Enabled = False : Button15.Enabled = False
  200. 存檔()
  201. End Sub
  202. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  203. Dim aa As MsgBoxResult
  204. aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel)
  205. If aa = MsgBoxResult.Ok Then
  206. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  207. SQL1 = "DELETE FROM 一般物料請購單控制表 WHERE (請購單號 LIKE N'" & TextBox1.Text & "')"
  208. cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close()
  209. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  210. SQL1 = "DELETE FROM 一般物料請購單明細表 WHERE (請購單號 LIKE N'" & TextBox1.Text & "')"
  211. cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close()
  212. TextBox1.Text = "" : TextBox3.Text = "" : TextBox4.Text = ""
  213. DataGridView1.DataSource = Nothing : ds.Clear()
  214. Set_清單1() : Set_清單3()
  215. End If
  216. End Sub
  217. End Class