暫無描述
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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. Option Strict Off
  2. Public Class 會計科目管理
  3. ReadOnly ds3 As New DataSet
  4. Dim EDR As Integer = 0 : Dim ESTR As String
  5. Private Sub Set_會計科目()
  6. 會計科目_dgv.DataSource = Nothing : ds3.Clear() : 會計科目_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  7. 會計科目_dgv.ColumnHeadersHeight = 25 : 會計科目_dgv.AllowUserToAddRows = False
  8. ConnOpen()
  9. SQL1 = "SELECT 第一階, 第二階, 會計科目, 編號, 層級, 英文名稱, 統制科目, 抵銷科目, 停用, 附註, 顯示 AS 顯示_GCM, 顯示_ISC AS 顯示_ICS
  10. FROM 會計科目 WHERE 編號 LIKE N'" & 科目1_號_cb.Text & "%' ORDER BY 編號"
  11. CmdSet_For_DGV() : da.Fill(ds3) : 會計科目_dgv.DataSource = ds3.Tables(0) : conn.Close()
  12. 會計科目_dgv.Columns(0).FillWeight = 8 : 會計科目_dgv.Columns(1).FillWeight = 8 : 會計科目_dgv.Columns(2).FillWeight = 12 : 會計科目_dgv.Columns(3).FillWeight = 6
  13. 會計科目_dgv.Columns(4).FillWeight = 3 : 會計科目_dgv.Columns(5).FillWeight = 15 : 會計科目_dgv.Columns(6).FillWeight = 3 : 會計科目_dgv.Columns(7).FillWeight = 3
  14. 會計科目_dgv.Columns(8).FillWeight = 3 : 會計科目_dgv.Columns(9).FillWeight = 10 : 會計科目_dgv.Columns(10).FillWeight = 5 : 會計科目_dgv.Columns(11).FillWeight = 5
  15. End Sub
  16. Private Sub ComboBox1下拉表單資料載入()
  17. conn.Close()
  18. ConnOpen()
  19. SQL1 = "SELECT 第一階, LEFT(編號, 4) AS 編號 FROM 會計科目 GROUP BY 第一階, LEFT(編號, 4) ORDER BY 編號"
  20. CmdSet_For_dr() : 科目1_名_cb.Items.Clear() : 科目1_號_cb.Items.Clear() : 科目1_名_cb.Text = "" : 科目1_號_cb.Text = ""
  21. While (dr.Read()) : 科目1_名_cb.Items.Add(dr("第一階")) : 科目1_號_cb.Items.Add(dr("編號")) : End While : conn.Close()
  22. End Sub
  23. Private Sub ComboBox3下拉表單資料載入()
  24. conn.Close()
  25. ConnOpen()
  26. SQL1 = "SELECT LEFT(編號, 7) AS 編號, 第二階, 層級 FROM 會計科目 WHERE (LEFT(編號, 4) LIKE N'" & 科目1_號_cb.Text & "') AND (層級 LIKE N'" & 編號2_cb.Text & "')
  27. GROUP BY LEFT(編號, 7), 第二階, 層級 ORDER BY 編號"
  28. CmdSet_For_dr() : 科目2_名_cb.Items.Clear() : 科目2_號_cb.Items.Clear() : 科目2_名_cb.Text = "" : 科目2_號_cb.Text = ""
  29. While (dr.Read()) : 科目2_名_cb.Items.Add(dr("第二階")) : 科目2_號_cb.Items.Add(dr("編號")) : End While : conn.Close()
  30. End Sub
  31. Private Sub ComboBox6變化()
  32. If 編號3_cb.Text = "1" Then : 編號2_cb.Text = "1"
  33. ElseIf 編號3_cb.Text = "2" Then : 編號2_cb.Text = "2"
  34. ElseIf 編號3_cb.Text = "3" Then : 編號2_cb.Text = "2"
  35. End If
  36. If 修改_刪除_cb.Checked = True Then : Else
  37. If 科目1_號_cb.Text = "" Then : Else
  38. If 編號3_cb.Text = "1" Then
  39. 科目3_號_cb.Text = ""
  40. ElseIf 編號3_cb.Text = "2" Then
  41. If 科目2_號_cb.Text = "" Then : Else
  42. '----------------------自动生成流水号-------------------------------------------------------------------------
  43. ConnOpen()
  44. SQL1 = "SELECT TOP (1) LEFT(編號, 7) AS 編號 FROM 會計科目 WHERE (LEFT(編號, 4) LIKE N'" & 科目1_號_cb.Text & "') AND (層級 LIKE N'2')
  45. GROUP BY LEFT(編號, 7) ORDER BY 編號 DESC"
  46. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  47. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("編號").ToString, 2)) : Else : EDR = 0 : End If
  48. conn.Close() : EDR += 1
  49. If EDR < 10 Then : ESTR = 科目1_號_cb.Text & "-" & "0" & EDR & "-00"
  50. ElseIf EDR > 9 And EDR < 100 Then : ESTR = 科目1_號_cb.Text & "-" & "" & EDR & "-00"
  51. End If
  52. 科目3_號_cb.Text = ESTR
  53. End If
  54. ElseIf 編號3_cb.Text = "3" Then
  55. If 科目2_號_cb.Text = "" Then : Else
  56. '----------------------自动生成流水号-------------------------------------------------------------------------
  57. ConnOpen()
  58. SQL1 = "SELECT TOP (1) LEFT(編號, 10) AS 編號 FROM 會計科目 WHERE (LEFT(編號, 7) LIKE N'" & 科目2_號_cb.Text & "') AND (層級 LIKE N'3')
  59. GROUP BY LEFT(編號, 10) ORDER BY 編號 DESC"
  60. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  61. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("編號").ToString, 2)) : Else : EDR = 0 : End If
  62. conn.Close() : EDR += 1
  63. If EDR < 10 Then : ESTR = 科目2_號_cb.Text & "-" & "0" & EDR
  64. ElseIf EDR > 9 And EDR < 100 Then : ESTR = 科目2_號_cb.Text & "-" & "" & EDR
  65. End If
  66. 科目3_號_cb.Text = ESTR
  67. End If
  68. End If
  69. End If
  70. End If
  71. End Sub
  72. Private Sub 會計科目管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  73. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  74. 編號1_tb.Enabled = False : 修改_刪除_cb.Checked = True : 科目3_號_cb.Enabled = False
  75. Set_會計科目() : ComboBox1下拉表單資料載入()
  76. End Sub
  77. Private Sub 會計科目_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 會計科目_dgv.CellClick
  78. Dim SSXX As String
  79. If e.RowIndex = -1 Then : Else
  80. 編號3_cb.Text = 會計科目_dgv(4, e.RowIndex).Value.ToString : SSXX = 會計科目_dgv(1, e.RowIndex).Value.ToString
  81. 科目2_名_cb.Text = SSXX
  82. If 修改_刪除_cb.Checked = True Then
  83. 科目1_名_tb.Text = 會計科目_dgv(2, e.RowIndex).Value.ToString : 科目3_號_cb.Text = 會計科目_dgv(3, e.RowIndex).Value.ToString
  84. 英文名稱_tb.Text = 會計科目_dgv(5, e.RowIndex).Value.ToString : 備註_tb.Text = 會計科目_dgv(9, e.RowIndex).Value.ToString
  85. 統制科目_cb.Checked = 會計科目_dgv(6, e.RowIndex).Value : 抵銷科目_cb.Checked = 會計科目_dgv(7, e.RowIndex).Value
  86. 停用_cb.Checked = 會計科目_dgv(8, e.RowIndex).Value
  87. Else
  88. ComboBox6變化()
  89. End If
  90. 科目1_名_cb.Text = 會計科目_dgv(0, e.RowIndex).Value.ToString
  91. End If
  92. End Sub
  93. Private Sub 會計科目_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 會計科目_dgv.RowPostPaint
  94. Dim linePen As New Pen(Color.Blue, 2)
  95. If e.RowIndex = 會計科目_dgv.Rows.Count - 1 Then
  96. Exit Sub
  97. Else
  98. If 會計科目_dgv(1, e.RowIndex).Value.ToString <> 會計科目_dgv(1, e.RowIndex + 1).Value.ToString Then
  99. Dim startX As Integer = IIf(會計科目_dgv.RowHeadersVisible, 會計科目_dgv.RowHeadersWidth, 0)
  100. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  101. Dim endX As Integer = startX + 會計科目_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 會計科目_dgv.HorizontalScrollingOffset
  102. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  103. Exit Sub
  104. End If
  105. End If
  106. End Sub
  107. Private Sub 科目1_名_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目1_名_cb.TextChanged
  108. 科目1_號_cb.SelectedIndex = 科目1_名_cb.SelectedIndex : ComboBox3下拉表單資料載入()
  109. End Sub
  110. Private Sub 科目1_號_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目1_號_cb.TextChanged
  111. 科目1_名_cb.SelectedIndex = 科目1_號_cb.SelectedIndex : Set_會計科目() : ComboBox3下拉表單資料載入()
  112. End Sub
  113. Private Sub 科目2_名_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目2_名_cb.TextChanged
  114. 科目2_號_cb.SelectedIndex = 科目2_名_cb.SelectedIndex
  115. End Sub
  116. Private Sub 科目2_號_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目2_號_cb.TextChanged
  117. 科目2_名_cb.SelectedIndex = 科目2_號_cb.SelectedIndex
  118. End Sub
  119. Private Sub ComboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 編號2_cb.TextChanged
  120. ComboBox3下拉表單資料載入()
  121. End Sub
  122. Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles 新增模式_cb.Click
  123. 新增模式_cb.Checked = True : 修改_刪除_cb.Checked = False : 科目3_號_cb.Enabled = True
  124. 科目1_名_tb.Text = "" : 英文名稱_tb.Text = "" : 備註_tb.Text = "" : 統制科目_cb.Checked = False : 抵銷科目_cb.Checked = False : 停用_cb.Checked = False
  125. End Sub
  126. Private Sub CheckBox5_CheckedChanged(sender As Object, e As EventArgs) Handles 修改_刪除_cb.Click
  127. 新增模式_cb.Checked = False : 修改_刪除_cb.Checked = True : 科目3_號_cb.Enabled = False
  128. End Sub
  129. Private Sub ComboBox6_TextChanged(sender As Object, e As EventArgs) Handles 編號3_cb.TextChanged
  130. ComboBox6變化()
  131. End Sub
  132. Private Sub Button19_Click(sender As Object, e As EventArgs) Handles 修改_bt.Click
  133. If 科目1_名_tb.Text = "" Then
  134. MsgBox("資料有缺或有誤,請重新檢查")
  135. Else
  136. conn.Close() : dr.Close()
  137. ConnOpen()
  138. SQL1 = "UPDATE 會計科目 SET 會計科目 = N'" & 科目1_名_tb.Text & "', 層級 = N'" & 編號3_cb.Text & "', 英文名稱 = N'" & 英文名稱_tb.Text &
  139. "', 統制科目 = N'" & 統制科目_cb.Checked & "', 抵銷科目 = N'" & 抵銷科目_cb.Checked & "', 停用 = N'" & 停用_cb.Checked &
  140. "', 附註 = N'" & 備註_tb.Text & "', 第一階 = N'" & 科目1_名_cb.Text & "', 第二階 = N'" & 科目2_名_cb.Text &
  141. "' , 顯示 = N'" & 顯示_G_cb.Checked & "' , 顯示_ISC = N'" & 顯示_I_cb.Checked & "'
  142. WHERE 編號 LIKE N'" & 科目3_號_cb.Text & "'"
  143. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  144. MsgBox("修改完成")
  145. End If : Set_會計科目()
  146. End Sub
  147. Private Sub Button16_Click(sender As Object, e As EventArgs) Handles 批量存檔_bt.Click
  148. For i As Integer = 0 To 會計科目_dgv.Rows.Count - 1
  149. 資料數 = 會計科目_dgv.Rows.Count : MyMoule.進度條() : ProgressBar1.Value = 最終數
  150. ConnOpen()
  151. SQL1 = "UPDATE 會計科目 SET 會計科目 = N'" & 會計科目_dgv.Rows(i).Cells("會計科目").Value & "', 層級 = N'" & 會計科目_dgv.Rows(i).Cells("層級").Value &
  152. "', 英文名稱 = N'" & 會計科目_dgv.Rows(i).Cells("英文名稱").Value & "', 統制科目 = N'" & 會計科目_dgv.Rows(i).Cells("統制科目").Value &
  153. "', 抵銷科目 = N'" & 會計科目_dgv.Rows(i).Cells("抵銷科目").Value & "', 停用 = N'" & 會計科目_dgv.Rows(i).Cells("停用").Value &
  154. "', 附註 = N'" & 會計科目_dgv.Rows(i).Cells("附註").Value & "', 第一階 = N'" & 會計科目_dgv.Rows(i).Cells("第一階").Value &
  155. "', 第二階 = N'" & 會計科目_dgv.Rows(i).Cells("第二階").Value & "' , 顯示 = N'" & 會計科目_dgv.Rows(i).Cells("顯示_GCM").Value & "' ,
  156. 顯示_ISC = N'" & 會計科目_dgv.Rows(i).Cells("顯示_ICS").Value & "'
  157. WHERE 編號 LIKE N'" & 會計科目_dgv.Rows(i).Cells("編號").Value & "'"
  158. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  159. Next : ProgressBar1.Value = 0 : 最終數 = 0 : MsgBox("修改完成")
  160. End Sub
  161. Private Sub Button21_Click(sender As Object, e As EventArgs) Handles 刪除_tb.Click
  162. Dim aa As MsgBoxResult
  163. aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel)
  164. If aa = MsgBoxResult.Ok Then
  165. ConnOpen()
  166. SQL1 = "DELETE FROM 會計科目 WHERE (編號 = N'" & 科目3_號_cb.Text & "')"
  167. cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : cmd.ExecuteNonQuery() : conn.Close()
  168. MsgBox("刪除完成")
  169. End If
  170. Set_會計科目()
  171. End Sub
  172. Private Sub Button20_Click(sender As Object, e As EventArgs) Handles 新增_bt.Click
  173. If 科目1_名_tb.Text = "" Or 編號3_cb.Text = "" Then
  174. MsgBox("資料有缺或有誤,請重新檢查")
  175. Else
  176. ConnOpen()
  177. SQL1 = "SELECT 編號 FROM 會計科目 WHERE 編號 LIKE N'" & 科目3_號_cb.Text & "'" : cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  178. If dr.Read() Then
  179. MsgBox("資料重複,請從新輸入或檢查") : conn.Close() : dr.Close()
  180. Else
  181. conn.Close() : dr.Close()
  182. ConnOpen()
  183. If 編號3_cb.Text = "1" Then
  184. SQL1 = "INSERT INTO 會計科目 (會計科目, 編號, 層級, 英文名稱, 統制科目, 抵銷科目, 停用, 附註, 第一階, 第二階, 顯示, 顯示_ISC)
  185. VALUES (N'" & 科目1_名_tb.Text & "', N'" & 科目3_號_cb.Text & "', N'" & 編號3_cb.Text & "', N'" & 英文名稱_tb.Text &
  186. "', N'" & 統制科目_cb.Checked & "', N'" & 抵銷科目_cb.Checked & "', N'" & 停用_cb.Checked & "', N'" & 備註_tb.Text &
  187. "', N'" & 科目1_名_tb.Text & "', N'" & 科目1_名_tb.Text & "', N'" & 顯示_G_cb.Checked & "', N'" & 顯示_I_cb.Checked & "')"
  188. ElseIf 編號3_cb.Text = "2" Then
  189. SQL1 = "INSERT INTO 會計科目 (會計科目, 編號, 層級, 英文名稱, 統制科目, 抵銷科目, 停用, 附註, 第一階, 第二階, 顯示, 顯示_ISC)
  190. VALUES (N'" & 科目1_名_tb.Text & "', N'" & 科目3_號_cb.Text & "', N'" & 編號3_cb.Text & "', N'" & 英文名稱_tb.Text &
  191. "', N'" & 統制科目_cb.Checked & "', N'" & 抵銷科目_cb.Checked & "', N'" & 停用_cb.Checked & "', N'" & 備註_tb.Text &
  192. "', N'" & 科目1_名_cb.Text & "', N'" & 科目1_名_tb.Text & "', N'" & 顯示_G_cb.Checked & "', N'" & 顯示_I_cb.Checked & "')"
  193. Else
  194. SQL1 = "INSERT INTO 會計科目 (會計科目, 編號, 層級, 英文名稱, 統制科目, 抵銷科目, 停用, 附註, 第一階, 第二階, 顯示, 顯示_ISC)
  195. VALUES (N'" & 科目1_名_tb.Text & "', N'" & 科目3_號_cb.Text & "', N'" & 編號3_cb.Text & "', N'" & 英文名稱_tb.Text &
  196. "', N'" & 統制科目_cb.Checked & "', N'" & 抵銷科目_cb.Checked & "', N'" & 停用_cb.Checked & "', N'" & 備註_tb.Text &
  197. "', N'" & 科目1_名_cb.Text & "', N'" & 科目2_名_cb.Text & "', N'" & 顯示_G_cb.Checked & "', N'" & 顯示_I_cb.Checked & "')"
  198. End If
  199. CmdSet_For_dr()
  200. MsgBox("新增完成")
  201. conn.Close() : dr.Close()
  202. End If
  203. End If : Set_會計科目()
  204. End Sub
  205. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 重新整理_bt.Click
  206. Set_會計科目() : ComboBox1下拉表單資料載入()
  207. End Sub
  208. End Class