Açıklama Yok
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

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