Geen omschrijving
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 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. Option Strict Off
  2. Public Class 一般物料請購單申請
  3. Private ReadOnly ds, ds1, ds2, ds3, ds4 As New DataSet
  4. Dim NUM1 As Integer
  5. Dim 已超出 As Boolean
  6. Private Sub Set_使用者清單()
  7. 明細_dgv.DataSource = Nothing : ds.Clear()
  8. 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  9. 明細_dgv.ColumnHeadersHeight = 25
  10. 明細_dgv.AllowUserToAddRows = False
  11. 明細_dgv.RowTemplate.Height = 35
  12. SQL_一般物料請購單明細表()
  13. da.Fill(ds) : 明細_dgv.DataSource = ds.Tables(0) : conn.Close()
  14. 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 80 : 明細_dgv.Columns(2).FillWeight = 200 : 明細_dgv.Columns(3).FillWeight = 200
  15. 明細_dgv.Columns(5).FillWeight = 80 : 明細_dgv.Columns(6).FillWeight = 80 : 明細_dgv.Columns(7).FillWeight = 80 : 明細_dgv.Columns(8).FillWeight = 305
  16. 明細_dgv.Columns(4).FillWeight = 200
  17. 明細_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00"
  18. 明細_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  19. 明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  20. 明細_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  21. 明細_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  22. 明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  23. 明細_dgv.Columns("項次").ReadOnly = True : 明細_dgv.Columns("金額").ReadOnly = True
  24. 總金額_tb.Text = "0.00"
  25. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  26. 總金額_tb.Text = Val(總金額_tb.Text) + 明細_dgv.Rows(i).Cells("金額").Value
  27. Next i
  28. 總金額_tb.Text = Format(Val(總金額_tb.Text), "#,##0.00")
  29. End Sub
  30. Private Sub Set_清單1()
  31. 未審核_dgv.DataSource = Nothing : ds1.Clear()
  32. 未審核_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  33. 未審核_dgv.ColumnHeadersHeight = 25
  34. 未審核_dgv.AllowUserToAddRows = False
  35. SQL_未審核清單()
  36. da.Fill(ds1) : 未審核_dgv.DataSource = ds1.Tables(0) : conn.Close()
  37. 未審核_dgv.Columns(0).FillWeight = 185 : 未審核_dgv.Columns(1).FillWeight = 115 : 未審核_dgv.Columns(2).FillWeight = 115
  38. 未審核_dgv.Columns(3).Visible = False : 未審核_dgv.Columns(4).Visible = False
  39. End Sub
  40. Private Sub Set_清單3()
  41. 未核准_dgv.DataSource = Nothing : ds3.Clear()
  42. 未核准_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  43. 未核准_dgv.ColumnHeadersHeight = 25
  44. 未核准_dgv.AllowUserToAddRows = False
  45. SQL_未核准清單()
  46. da.Fill(ds3) : 未核准_dgv.DataSource = ds3.Tables(0) : conn.Close()
  47. 未核准_dgv.Columns(0).FillWeight = 185 : 未核准_dgv.Columns(1).FillWeight = 115 : 未核准_dgv.Columns(2).FillWeight = 115
  48. 未核准_dgv.Columns(3).Visible = False : 未核准_dgv.Columns(4).Visible = False
  49. End Sub
  50. Private Sub Set_日期格式轉換()
  51. DTP = Format(Today(), "yyyy/MM/dd") & "-" & Format(TimeOfDay(), "hh:mm:ss") : DTP1 = Format(Today(), "yyyyMMdd")
  52. End Sub
  53. Private Sub 一般物料請購單申請_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  54. Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  55. 申請完成_bt.Enabled = False : 新增_bt.Enabled = False : 刪除_bt.Enabled = False : 修改_bt.Enabled = False : 修改存檔_bt.Enabled = False : 刪除1_bt.Enabled = False
  56. 一般物料請購單號_tb.Enabled = False : 申請人_tb.Enabled = False : 項次_tb.Enabled = False
  57. Set_清單1() : Set_清單3()
  58. 明細_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  59. 未審核_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  60. 未核准_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  61. End Sub
  62. Private Sub 一般物料請購單申請_Unload(sender As Object, e As EventArgs) Handles MyBase.Closing
  63. If 申請完成_bt.Enabled = True Then
  64. SQL_刪除尚未存檔請購單控制表()
  65. SQL_刪除尚未存檔請購單明細表()
  66. conn.Close()
  67. End If
  68. End Sub
  69. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  70. If 資料尚未存檔_lb.Visible = True Then : 資料尚未存檔_lb.Visible = False : Else : 資料尚未存檔_lb.Visible = True : End If
  71. End Sub
  72. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 明細_dgv.CellClick
  73. If e.RowIndex = -1 Then : Else
  74. 項次_tb.Text = 明細_dgv(1, e.RowIndex).Value.ToString
  75. End If
  76. End Sub
  77. Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 明細_dgv.CellEndEdit
  78. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  79. 明細_dgv.Rows(i).Cells("金額").Value = Val(明細_dgv.Rows(i).Cells("數量").Value) * Val(明細_dgv.Rows(i).Cells("單價").Value)
  80. Next i
  81. End Sub
  82. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 未審核_dgv.CellClick
  83. If e.RowIndex = -1 Then : Else
  84. 一般物料請購單號_tb.Text = 未審核_dgv(0, e.RowIndex).Value.ToString : 申請人_tb.Text = 未審核_dgv(1, e.RowIndex).Value.ToString
  85. 申請日期_dtp.Value = 未審核_dgv(2, e.RowIndex).Value.ToString
  86. 修改_bt.Enabled = True : 刪除1_bt.Enabled = True : Set_使用者清單()
  87. End If
  88. End Sub
  89. Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 未核准_dgv.CellClick
  90. If e.RowIndex = -1 Then : Else
  91. 一般物料請購單號_tb.Text = 未核准_dgv(0, e.RowIndex).Value.ToString : 申請人_tb.Text = 未核准_dgv(1, e.RowIndex).Value.ToString
  92. 申請日期_dtp.Value = 未核准_dgv(2, e.RowIndex).Value.ToString
  93. 修改_bt.Enabled = False : 刪除1_bt.Enabled = False : Set_使用者清單()
  94. End If
  95. End Sub
  96. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 開立一般物料請購單_bt.Click
  97. Timer1.Enabled = True
  98. 開立一般物料請購單_bt.Enabled = False : 申請完成_bt.Enabled = True : 新增_bt.Enabled = True : 刪除_bt.Enabled = True
  99. Set_日期格式轉換() : Dim NUM1 As Integer
  100. For i As Integer = 1 To 999
  101. NUM1 = 0 + i
  102. If NUM1 < 10 Then : 一般物料請購單號_tb.Text = "RE-" & DTP1 & "-00" & NUM1
  103. ElseIf NUM1 > 9 And NUM1 < 100 Then : 一般物料請購單號_tb.Text = "RE-" & DTP1 & "-0" & NUM1
  104. ElseIf NUM1 > 99 Then : 一般物料請購單號_tb.Text = "RE-" & DTP1 & "-" & NUM1
  105. End If
  106. SQL_查詢請購單號()
  107. If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  108. Next
  109. SQL_新增一般物料請購單控制表()
  110. 申請人_tb.Text = gUserName
  111. 明細_dgv.DataSource = Nothing : ds.Clear()
  112. conn.Close()
  113. End Sub
  114. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 申請完成_bt.Click
  115. Timer1.Enabled = False : 資料尚未存檔_lb.Visible = False
  116. 開立一般物料請購單_bt.Enabled = True : 申請完成_bt.Enabled = False : 新增_bt.Enabled = False : 刪除_bt.Enabled = False
  117. 存檔()
  118. 一般物料請購單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = ""
  119. 明細_dgv.DataSource = Nothing : ds.Clear()
  120. MsgBox("申請完成,請通知總經理審核。")
  121. Set_清單1() : Set_清單3()
  122. End Sub
  123. Private Sub 存檔()
  124. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  125. 資料數 = 明細_dgv.Rows.Count : MyModule1.進度條()
  126. PA = 明細_dgv.Rows(i).Cells("品名").Value : PA1 = 明細_dgv.Rows(i).Cells("規格").Value
  127. PA2 = 明細_dgv.Rows(i).Cells("備註").Value : PA3 = 明細_dgv.Rows(i).Cells("數量").Value
  128. PA4 = 明細_dgv.Rows(i).Cells("單價").Value : PA5 = 明細_dgv.Rows(i).Cells("用途").Value
  129. PA6 = 明細_dgv.Rows(i).Cells("項次").Value
  130. SQL_修改一般物料請購單明細表() : conn.Close()
  131. Next : WINPROFIT_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
  132. End Sub
  133. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles 新增_bt.Click
  134. 存檔()
  135. SQL_查詢最後一筆項次()
  136. If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close()
  137. NUM1 = Double.Parse(新項次) + 1
  138. If NUM1 < 10 Then : 新項次 = "0" & NUM1
  139. ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1
  140. End If
  141. SQL_新增一般物料請購單明細表() : Set_使用者清單()
  142. End Sub
  143. Private Sub Button15_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click
  144. If 項次_tb.Text = "" Then
  145. MsgBox("未選擇需要刪除的資料")
  146. Else
  147. 存檔()
  148. SQL_刪除一般物料請購單明細表() : conn.Close()
  149. Set_使用者清單()
  150. Dim NUM1 As Integer = 0
  151. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  152. NUM1 += 1 : If NUM1 < 10 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 : End If
  153. PA9 = 明細_dgv.Rows(i).Cells("項次").Value
  154. SQL_修改項次() : conn.Close()
  155. Next
  156. Set_使用者清單()
  157. End If
  158. End Sub
  159. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 修改_bt.Click
  160. 修改_bt.Enabled = False : 修改存檔_bt.Enabled = True : 新增_bt.Enabled = True : 刪除_bt.Enabled = True
  161. End Sub
  162. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles 修改存檔_bt.Click
  163. 修改_bt.Enabled = True : 修改存檔_bt.Enabled = False : 新增_bt.Enabled = False : 刪除_bt.Enabled = False
  164. 存檔()
  165. End Sub
  166. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 刪除1_bt.Click
  167. Dim aa As MsgBoxResult
  168. aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel)
  169. If aa = MsgBoxResult.Ok Then
  170. SQL_刪除一般物料請購單控制表()
  171. conn.Close()
  172. SQL_刪除一般物料請購單明細表1()
  173. conn.Close()
  174. 一般物料請購單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = ""
  175. 明細_dgv.DataSource = Nothing : ds.Clear()
  176. Set_清單1() : Set_清單3()
  177. End If
  178. End Sub
  179. Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp
  180. If 明細_dgv.SelectedCells.Count = 1 Then
  181. 已超出 = False
  182. End If
  183. If 明細_dgv.SelectedCells.Count > 0 Then
  184. '設定滑鼠點擊DGV時候的範圍,超出範圍時有可能不是數字所以不計算
  185. If 明細_dgv.SelectedCells(0).ColumnIndex = 5 Or 明細_dgv.SelectedCells(0).ColumnIndex = 7 Then
  186. If 已超出 = False Then
  187. Dim x As Double = 0
  188. For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1
  189. '明細_dgv.SelectedCells.Item(i).ColumnIndex + 8 是因為該DGV顯示項與計算像剛好差8格,使用時要注意可直接計算的不需要加數字。
  190. x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  191. Next i
  192. '將計算好的資料放置到指定的控件中
  193. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  194. Else
  195. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  196. End If
  197. Else
  198. 已超出 = True
  199. WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  200. End If
  201. End If
  202. End Sub
  203. End Class