설명 없음
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 15KB

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