Bez popisu
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.

財務_彙總表_GCM.vb 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. Imports System.Windows.Forms.DataVisualization.Charting
  2. Public Class 財務_彙總表_GCM
  3. ReadOnly ds, ds1, ds2, ds3, ds4, ds5, ds6, ds7, ds8, ds9, ds10 As New DataSet
  4. Dim 列高 As Integer
  5. '-----------------------------第一區-----------------------------------------------------------------------------------------------------------------------
  6. Private Sub Set_清單()
  7. 主表_dgv.DataSource = Nothing : ds.Clear() : 主表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  8. 主表_dgv.ColumnHeadersHeight = 25 : 主表_dgv.AllowUserToAddRows = False : 主表_dgv.RowTemplate.Height = 列高
  9. ConnOpen()
  10. SQL1 = "SELECT 日期, 子項, 子細項, SUM(金額) AS 金額 FROM 財務彙總紀錄
  11. WHERE (主項 LIKE N'" & 主項_cb.Text & "') AND 日期 LIKE N'%" & 年份_cb.Text & "%' GROUP BY 日期, 子項, 子細項 ORDER BY 日期, 子項, 子細項"
  12. CmdSet_For_DGV() : da.Fill(ds) : 主表_dgv.DataSource = ds.Tables(0) : conn.Close()
  13. 主表_dgv.Columns(0).FillWeight = 70 : 主表_dgv.Columns(1).FillWeight = 100 : 主表_dgv.Columns(2).FillWeight = 120 : 主表_dgv.Columns(3).FillWeight = 80
  14. 主表_dgv.Columns(3).DefaultCellStyle.Format = "#,##0"
  15. 主表_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  16. Set_清單2() : Set_清單1()
  17. For i As Integer = 0 To 主表1_dgv.Rows.Count - 1
  18. 主表1_dgv.Rows(i).Cells("比例.").Value = Strings.Format(CInt(主表1_dgv.Rows(i).Cells("金額").Value.ToString) / CInt(加總_tb.Text) * 100, "#,##0.00") & " %"
  19. Next
  20. End Sub
  21. Private Sub Set_清單1()
  22. 主表1_dgv.DataSource = Nothing : ds1.Clear() : 主表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  23. 主表1_dgv.ColumnHeadersHeight = 25 : 主表1_dgv.AllowUserToAddRows = False : 主表1_dgv.RowTemplate.Height = 列高
  24. ConnOpen()
  25. SQL1 = "SELECT TOP(15) 子細項, SUM(金額) AS 金額, ABS(SUM(金額)) AS 比例, 子細項 AS [比例.] FROM 財務彙總紀錄
  26. WHERE (主項 LIKE N'" & 主項_cb.Text & "') AND 子細項 NOT LIKE N'%借款%' AND 子細項 NOT LIKE N'%還款%' AND 日期 LIKE N'%" & 年份_cb.Text & "%'
  27. GROUP BY 子細項 ORDER BY 金額"
  28. CmdSet_For_DGV() : da.Fill(ds1) : 主表1_dgv.DataSource = ds1.Tables(0) : conn.Close()
  29. 主表1_dgv.Columns(1).FillWeight = 130 : 主表1_dgv.Columns(1).FillWeight = 80 : 主表1_dgv.Columns(3).FillWeight = 60 : 主表1_dgv.Columns(2).Visible = False
  30. 主表1_dgv.Columns(1).DefaultCellStyle.Format = "#,##0"
  31. 主表1_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  32. 主表1_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  33. 主表1_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  34. 主表1_dgv.Sort(主表1_dgv.Columns("比例"), System.ComponentModel.ListSortDirection.Descending)
  35. End Sub
  36. Private Sub Set_清單2()
  37. 主表2_dgv.DataSource = Nothing : ds2.Clear() : 主表2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  38. 主表2_dgv.ColumnHeadersHeight = 25 : 主表2_dgv.AllowUserToAddRows = False : 主表2_dgv.RowTemplate.Height = 列高
  39. ConnOpen()
  40. SQL1 = "SELECT 日期, SUM(金額) AS 金額 FROM 財務彙總紀錄
  41. WHERE (主項 LIKE N'" & 主項_cb.Text & "') AND 日期 LIKE N'%" & 年份_cb.Text & "%' GROUP BY 日期 ORDER BY 日期"
  42. CmdSet_For_DGV() : da.Fill(ds2) : 主表2_dgv.DataSource = ds2.Tables(0) : conn.Close()
  43. 主表2_dgv.Columns(0).FillWeight = 70
  44. 主表2_dgv.Columns(1).DefaultCellStyle.Format = "#,##0"
  45. 主表2_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  46. 加總_tb.Text = "0" : 隱加總_tb.Text = "0"
  47. For I As Integer = 0 To 主表2_dgv.Rows.Count - 1
  48. 加總_tb.Text = Val(加總_tb.Text) + 主表2_dgv.Rows(I).Cells("金額").Value
  49. 隱加總_tb.Text = Val(隱加總_tb.Text) + 主表2_dgv.Rows(I).Cells("金額").Value
  50. Next
  51. 加總_tb.Text = Format(Val(加總_tb.Text), "#,##0")
  52. For I As Integer = 0 To 主表2_dgv.Rows.Count - 1
  53. If 主項_cb.Text = "歲出合計" Then
  54. 主表2_dgv.Rows(I).Cells("金額").Value = 主表2_dgv.Rows(I).Cells("金額").Value * -1
  55. End If
  56. Next
  57. End Sub
  58. '-----------------------------第二區-----------------------------------------------------------------------------------------------------------------------
  59. Private Sub Set_清單3()
  60. 主表3_dgv.DataSource = Nothing : ds3.Clear() : 主表3_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  61. 主表3_dgv.ColumnHeadersHeight = 25 : 主表3_dgv.AllowUserToAddRows = False : 主表3_dgv.RowTemplate.Height = 列高
  62. ConnOpen()
  63. SQL1 = "SELECT 日期, 子項, 子細項, SUM(金額) AS 金額 FROM 財務彙總紀錄
  64. WHERE (主項 LIKE N'" & 主項1_cb.Text & "') AND 日期 LIKE N'%" & 年份_cb.Text & "%' GROUP BY 日期, 子項, 子細項 ORDER BY 日期, 子項, 子細項"
  65. CmdSet_For_DGV() : da.Fill(ds3) : 主表3_dgv.DataSource = ds3.Tables(0) : conn.Close()
  66. 主表3_dgv.Columns(0).FillWeight = 70 : 主表3_dgv.Columns(1).FillWeight = 100 : 主表3_dgv.Columns(2).FillWeight = 120 : 主表3_dgv.Columns(3).FillWeight = 80
  67. 主表3_dgv.Columns(3).DefaultCellStyle.Format = "#,##0"
  68. 主表3_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  69. Set_清單5() : Set_清單4()
  70. For i As Integer = 0 To 主表4_dgv.Rows.Count - 1
  71. 主表4_dgv.Rows(i).Cells("比例.").Value = Strings.Format(CInt(主表4_dgv.Rows(i).Cells("金額").Value.ToString) / CInt(加總1_tb.Text) * 100, "#,##0.00") & " %"
  72. Next
  73. End Sub
  74. Private Sub Set_清單4()
  75. 主表4_dgv.DataSource = Nothing : ds4.Clear() : 主表4_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  76. 主表4_dgv.ColumnHeadersHeight = 25 : 主表4_dgv.AllowUserToAddRows = False : 主表4_dgv.RowTemplate.Height = 列高
  77. ConnOpen()
  78. SQL1 = "SELECT TOP(15) 子細項, SUM(金額) AS 金額, ABS(SUM(金額)) AS 比例, 子細項 AS [比例.] FROM 財務彙總紀錄
  79. WHERE (主項 LIKE N'" & 主項1_cb.Text & "') AND 子細項 NOT LIKE N'%借款%' AND 子細項 NOT LIKE N'%還款%' AND 日期 LIKE N'%" & 年份_cb.Text & "%'
  80. GROUP BY 子細項 ORDER BY 金額"
  81. CmdSet_For_DGV() : da.Fill(ds4) : 主表4_dgv.DataSource = ds4.Tables(0) : conn.Close()
  82. 主表4_dgv.Columns(1).FillWeight = 130 : 主表4_dgv.Columns(1).FillWeight = 80 : 主表4_dgv.Columns(2).Visible = False
  83. 主表4_dgv.Columns(1).DefaultCellStyle.Format = "#,##0" : 主表4_dgv.Columns(2).DefaultCellStyle.Format = "#,##0"
  84. 主表4_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  85. 主表4_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  86. 主表4_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  87. 主表4_dgv.Sort(主表4_dgv.Columns("比例"), System.ComponentModel.ListSortDirection.Descending)
  88. End Sub
  89. Private Sub Set_清單5()
  90. 主表5_dgv.DataSource = Nothing : ds5.Clear() : 主表5_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  91. 主表5_dgv.ColumnHeadersHeight = 25 : 主表5_dgv.AllowUserToAddRows = False : 主表5_dgv.RowTemplate.Height = 列高
  92. ConnOpen()
  93. SQL1 = "SELECT 日期, SUM(金額) AS 金額 FROM 財務彙總紀錄
  94. WHERE (主項 LIKE N'" & 主項1_cb.Text & "') AND 日期 LIKE N'%" & 年份_cb.Text & "%' GROUP BY 日期 ORDER BY 日期"
  95. CmdSet_For_DGV() : da.Fill(ds5) : 主表5_dgv.DataSource = ds5.Tables(0) : conn.Close()
  96. 主表5_dgv.Columns(0).FillWeight = 70
  97. 主表5_dgv.Columns(1).DefaultCellStyle.Format = "#,##0"
  98. 主表5_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  99. 加總1_tb.Text = "0" : 隱加總1_tb.Text = "0"
  100. For I As Integer = 0 To 主表5_dgv.Rows.Count - 1
  101. 加總1_tb.Text = Val(加總1_tb.Text) + 主表5_dgv.Rows(I).Cells("金額").Value
  102. 隱加總1_tb.Text = Val(隱加總1_tb.Text) + 主表5_dgv.Rows(I).Cells("金額").Value
  103. Next
  104. 加總1_tb.Text = Format(Val(加總1_tb.Text), "#,##0")
  105. For I As Integer = 0 To 主表5_dgv.Rows.Count - 1
  106. If 主項1_cb.Text = "歲出合計" Then
  107. 主表5_dgv.Rows(I).Cells("金額").Value = 主表5_dgv.Rows(I).Cells("金額").Value * -1
  108. End If
  109. Next
  110. End Sub
  111. '-----------------------------第三區-----------------------------------------------------------------------------------------------------------------------
  112. Private Sub Set_清單6()
  113. 主表6_dgv.DataSource = Nothing : ds6.Clear() : 主表6_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  114. 主表6_dgv.ColumnHeadersHeight = 25 : 主表6_dgv.AllowUserToAddRows = False : 主表6_dgv.RowTemplate.Height = 列高
  115. ConnOpen()
  116. SQL1 = "SELECT 日期, 子項, 子細項, SUM(金額) AS 金額 FROM 財務彙總紀錄
  117. WHERE (主項 LIKE N'" & 主項2_cb.Text & "') AND 日期 LIKE N'%" & 年份_cb.Text & "%' GROUP BY 日期, 子項, 子細項 ORDER BY 日期, 子項, 子細項"
  118. CmdSet_For_DGV() : da.Fill(ds6) : 主表6_dgv.DataSource = ds6.Tables(0) : conn.Close()
  119. 主表6_dgv.Columns(0).FillWeight = 70 : 主表6_dgv.Columns(1).FillWeight = 100 : 主表6_dgv.Columns(2).FillWeight = 120 : 主表6_dgv.Columns(3).FillWeight = 80
  120. 主表6_dgv.Columns(3).DefaultCellStyle.Format = "#,##0"
  121. 主表6_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  122. Set_清單8() : Set_清單7()
  123. For i As Integer = 0 To 主表7_dgv.Rows.Count - 1
  124. 主表7_dgv.Rows(i).Cells("比例.").Value = Strings.Format(CInt(主表7_dgv.Rows(i).Cells("金額").Value.ToString) / CInt(加總2_tb.Text) * 100, "#,##0.00") & " %"
  125. Next
  126. End Sub
  127. Private Sub Set_清單7()
  128. 主表7_dgv.DataSource = Nothing : ds7.Clear() : 主表7_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  129. 主表7_dgv.ColumnHeadersHeight = 25 : 主表7_dgv.AllowUserToAddRows = False : 主表7_dgv.RowTemplate.Height = 列高
  130. ConnOpen()
  131. SQL1 = "SELECT TOP(15) 子細項, SUM(金額) AS 金額, ABS(SUM(金額)) AS 比例, 子細項 AS [比例.] FROM 財務彙總紀錄
  132. WHERE (主項 LIKE N'" & 主項2_cb.Text & "') AND 子細項 NOT LIKE N'%借款%' AND 子細項 NOT LIKE N'%還款%' AND 日期 LIKE N'%" & 年份_cb.Text & "%'
  133. GROUP BY 子細項 ORDER BY 金額"
  134. CmdSet_For_DGV() : da.Fill(ds7) : 主表7_dgv.DataSource = ds7.Tables(0) : conn.Close()
  135. 主表7_dgv.Columns(1).FillWeight = 130 : 主表7_dgv.Columns(1).FillWeight = 80 : 主表7_dgv.Columns(2).Visible = False
  136. 主表7_dgv.Columns(1).DefaultCellStyle.Format = "#,##0" : 主表7_dgv.Columns(2).DefaultCellStyle.Format = "#,##0"
  137. 主表7_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  138. 主表7_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  139. 主表7_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  140. 主表7_dgv.Sort(主表7_dgv.Columns("比例"), System.ComponentModel.ListSortDirection.Descending)
  141. End Sub
  142. Private Sub Set_清單8()
  143. 主表8_dgv.DataSource = Nothing : ds8.Clear() : 主表8_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  144. 主表8_dgv.ColumnHeadersHeight = 25 : 主表8_dgv.AllowUserToAddRows = False : 主表8_dgv.RowTemplate.Height = 列高
  145. ConnOpen()
  146. SQL1 = "SELECT 日期, SUM(金額) AS 金額 FROM 財務彙總紀錄
  147. WHERE (主項 LIKE N'" & 主項2_cb.Text & "') AND 日期 LIKE N'%" & 年份_cb.Text & "%' GROUP BY 日期 ORDER BY 日期"
  148. CmdSet_For_DGV() : da.Fill(ds8) : 主表8_dgv.DataSource = ds8.Tables(0) : conn.Close()
  149. 主表8_dgv.Columns(0).FillWeight = 70
  150. 主表8_dgv.Columns(1).DefaultCellStyle.Format = "#,##0"
  151. 主表8_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  152. 加總2_tb.Text = "0" : 隱加總2_tb.Text = "0"
  153. For I As Integer = 0 To 主表8_dgv.Rows.Count - 1
  154. 加總2_tb.Text = Val(加總2_tb.Text) + 主表8_dgv.Rows(I).Cells("金額").Value
  155. 隱加總2_tb.Text = Val(隱加總2_tb.Text) + 主表8_dgv.Rows(I).Cells("金額").Value
  156. Next
  157. 加總2_tb.Text = Format(Val(加總2_tb.Text), "#,##0")
  158. For I As Integer = 0 To 主表8_dgv.Rows.Count - 1
  159. If 主項2_cb.Text = "歲出合計" Then
  160. 主表8_dgv.Rows(I).Cells("金額").Value = 主表8_dgv.Rows(I).Cells("金額").Value * -1
  161. End If
  162. Next
  163. End Sub
  164. Private Sub Set_清單9()
  165. 主表9_dgv.DataSource = Nothing : ds9.Clear() : 主表9_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  166. 主表9_dgv.ColumnHeadersHeight = 25 : 主表9_dgv.AllowUserToAddRows = False : 主表9_dgv.RowTemplate.Height = 列高
  167. ConnOpen()
  168. SQL1 = "SELECT 日期, 日期 AS 金額1, 日期 AS 金額2, 日期 AS 金額3 FROM 財務彙總紀錄 WHERE 日期 LIKE N'%" & 年份_cb.Text & "%' GROUP BY 日期 ORDER BY 日期"
  169. CmdSet_For_DGV() : da.Fill(ds9) : 主表9_dgv.DataSource = ds9.Tables(0) : conn.Close()
  170. For I As Integer = 0 To 主表9_dgv.Rows.Count - 1
  171. 主表9_dgv.Rows(I).Cells("金額1").Value = "0" : 主表9_dgv.Rows(I).Cells("金額2").Value = "0" : 主表9_dgv.Rows(I).Cells("金額3").Value = "0"
  172. Next
  173. For I As Integer = 0 To 主表9_dgv.Rows.Count - 1
  174. For II As Integer = 0 To 主表2_dgv.Rows.Count - 1
  175. If 主表9_dgv.Rows(I).Cells("日期").Value = 主表2_dgv.Rows(II).Cells("日期").Value Then
  176. 主表9_dgv.Rows(I).Cells("金額1").Value = 主表2_dgv.Rows(II).Cells("金額").Value
  177. End If
  178. Next
  179. For II As Integer = 0 To 主表5_dgv.Rows.Count - 1
  180. If 主表9_dgv.Rows(I).Cells("日期").Value = 主表5_dgv.Rows(II).Cells("日期").Value Then
  181. 主表9_dgv.Rows(I).Cells("金額2").Value = 主表5_dgv.Rows(II).Cells("金額").Value
  182. End If
  183. Next
  184. For II As Integer = 0 To 主表8_dgv.Rows.Count - 1
  185. If 主表9_dgv.Rows(I).Cells("日期").Value = 主表8_dgv.Rows(II).Cells("日期").Value Then
  186. 主表9_dgv.Rows(I).Cells("金額3").Value = 主表8_dgv.Rows(II).Cells("金額").Value
  187. End If
  188. Next
  189. Next : Set_清單10()
  190. End Sub
  191. Private Sub Set_清單10()
  192. 主表10_dgv.DataSource = Nothing : ds10.Clear() : 主表10_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  193. 主表10_dgv.ColumnHeadersHeight = 25 : 主表10_dgv.AllowUserToAddRows = False : 主表10_dgv.RowTemplate.Height = 列高
  194. ConnOpen()
  195. SQL1 = "SELECT 財務彙總紀錄.日期, AA.餘額
  196. FROM 財務彙總紀錄 LEFT OUTER JOIN
  197. (SELECT LEFT(日期, 7) AS 日期, SUM(收入 * 匯率) AS 餘額
  198. FROM 財務流水帳
  199. WHERE (類別 LIKE 'D%') AND (日期 LIKE N'%" & 年份_cb.Text & "%')
  200. GROUP BY LEFT(日期, 7)) AS AA ON LEFT(財務彙總紀錄.日期, 7) = AA.日期
  201. WHERE (財務彙總紀錄.日期 LIKE N'%" & 年份_cb.Text & "%')
  202. GROUP BY 財務彙總紀錄.日期, AA.餘額
  203. ORDER BY 財務彙總紀錄.日期"
  204. CmdSet_For_DGV() : da.Fill(ds10) : 主表10_dgv.DataSource = ds10.Tables(0) : conn.Close()
  205. For i As Integer = 0 To 主表10_dgv.Rows.Count - 1
  206. If IsDBNull(主表10_dgv.Rows(i).Cells("餘額").Value) Then
  207. 主表10_dgv.Rows(i).Cells("餘額").Value = "0"
  208. End If
  209. If i > 0 Then
  210. If 主表10_dgv.Rows(i).Cells("餘額").Value = 0 And 主表10_dgv.Rows(i - 1).Cells("餘額").Value > 0 Then
  211. 主表10_dgv.Rows(i).Cells("餘額").Value = 主表10_dgv.Rows(i - 1).Cells("餘額").Value
  212. End If
  213. End If
  214. Next
  215. End Sub
  216. Private Sub 彙總()
  217. 加總3_tb.Text = Val(隱加總_tb.Text) + Val(隱加總1_tb.Text) + Val(隱加總2_tb.Text)
  218. If 主項_cb.Text = "資本" Then : 加總4_tb.Text = Val(隱加總1_tb.Text) + Val(隱加總2_tb.Text)
  219. ElseIf 主項1_cb.Text = "資本" Then : 加總4_tb.Text = Val(隱加總_tb.Text) + Val(隱加總2_tb.Text)
  220. ElseIf 主項2_cb.Text = "資本" Then : 加總4_tb.Text = Val(隱加總_tb.Text) + Val(隱加總1_tb.Text)
  221. End If
  222. 加總4_tb.Text = Format(Val(加總4_tb.Text), "#,##0") : 加總3_tb.Text = Format(Val(加總3_tb.Text), "#,##0")
  223. Set_清單9()
  224. Chart1.Series.Clear() : Chart1.ChartAreas(0).AxisX.Minimum = 0
  225. Chart1.ChartAreas(0).AxisY.LabelStyle.Font = New Font("Arial", 8) : Chart1.ChartAreas(0).AxisY.LabelStyle.Format = "#,##0"
  226. If 主項2_cb.Text <> "" Then
  227. Chart1.Series.Add(主項2_cb.Text)
  228. If 主項2_cb.Text = "資本" Then : Chart1.Series(主項2_cb.Text).ChartType = SeriesChartType.Line
  229. Else : Chart1.Series(主項2_cb.Text).ChartType = SeriesChartType.Column : End If
  230. For i As Integer = 0 To 主表9_dgv.Rows.Count - 1
  231. Chart1.Series(主項2_cb.Text).Points.AddXY(主表9_dgv.Rows(i).Cells("日期").Value.ToString, 主表9_dgv.Rows(i).Cells("金額3").Value.ToString)
  232. Next
  233. Chart4.Series.Clear()
  234. Chart4.Series.Add(主項2_cb.Text) : Chart4.Series(主項2_cb.Text).ChartType = SeriesChartType.Pie
  235. Chart4.Series(主項2_cb.Text).IsValueShownAsLabel = True
  236. Chart4.Series(主項2_cb.Text).IsVisibleInLegend = True
  237. Chart4.Series(主項2_cb.Text).IsXValueIndexed = True
  238. For i As Integer = 0 To 主表7_dgv.Rows.Count - 1
  239. Chart4.Series(主項2_cb.Text).Points.AddXY(主表7_dgv.Rows(i).Cells("子細項").Value.ToString, 主表7_dgv.Rows(i).Cells("比例.").Value.ToString.Replace(" ", "").Replace("%", ""))
  240. Next
  241. End If
  242. If 主項1_cb.Text <> "" Then
  243. Chart1.Series.Add(主項1_cb.Text)
  244. If 主項1_cb.Text = "資本" Then : Chart1.Series(主項1_cb.Text).ChartType = SeriesChartType.Line
  245. Else : Chart1.Series(主項1_cb.Text).ChartType = SeriesChartType.Column : End If
  246. For i As Integer = 0 To 主表9_dgv.Rows.Count - 1
  247. Chart1.Series(主項1_cb.Text).Points.AddXY(主表9_dgv.Rows(i).Cells("日期").Value.ToString, 主表9_dgv.Rows(i).Cells("金額2").Value.ToString)
  248. Next
  249. Chart2.Series.Clear()
  250. Chart2.Series.Add(主項1_cb.Text) : Chart2.Series(主項1_cb.Text).ChartType = SeriesChartType.Pie
  251. Chart2.Series(主項1_cb.Text).IsValueShownAsLabel = True
  252. Chart2.Series(主項1_cb.Text).IsVisibleInLegend = True
  253. Chart2.Series(主項1_cb.Text).IsXValueIndexed = True
  254. For i As Integer = 0 To 主表4_dgv.Rows.Count - 1
  255. Chart2.Series(主項1_cb.Text).Points.AddXY(主表4_dgv.Rows(i).Cells("子細項").Value.ToString, 主表4_dgv.Rows(i).Cells("比例.").Value.ToString.Replace(" ", "").Replace("%", ""))
  256. Next
  257. End If
  258. If 主項_cb.Text <> "" Then
  259. Chart1.Series.Add(主項_cb.Text)
  260. If 主項_cb.Text = "資本" Then : Chart1.Series(主項_cb.Text).ChartType = SeriesChartType.Line
  261. Else : Chart1.Series(主項_cb.Text).ChartType = SeriesChartType.Column : End If
  262. For i As Integer = 0 To 主表9_dgv.Rows.Count - 1
  263. Chart1.Series(主項_cb.Text).Points.AddXY(主表9_dgv.Rows(i).Cells("日期").Value.ToString, 主表9_dgv.Rows(i).Cells("金額1").Value.ToString)
  264. Next
  265. Chart3.Series.Clear()
  266. Chart3.Series.Add(主項_cb.Text) : Chart3.Series(主項_cb.Text).ChartType = SeriesChartType.Pie
  267. Chart3.Series(主項_cb.Text).IsValueShownAsLabel = True
  268. Chart3.Series(主項_cb.Text).IsVisibleInLegend = True
  269. Chart3.Series(主項_cb.Text).IsXValueIndexed = True
  270. For i As Integer = 0 To 主表1_dgv.Rows.Count - 1
  271. Chart3.Series(主項_cb.Text).Points.AddXY(主表1_dgv.Rows(i).Cells("子細項").Value.ToString, 主表1_dgv.Rows(i).Cells("比例.").Value.ToString.Replace(" ", "").Replace("%", ""))
  272. Next
  273. End If
  274. Chart1.Series.Add("資金餘額")
  275. Chart1.Series("資金餘額").ChartType = SeriesChartType.Line
  276. For i As Integer = 0 To 主表10_dgv.Rows.Count - 1
  277. Chart1.Series("資金餘額").Points.AddXY(主表10_dgv.Rows(i).Cells("日期").Value.ToString, 主表10_dgv.Rows(i).Cells("餘額").Value.ToString)
  278. Next
  279. End Sub
  280. Private Sub 主項下拉()
  281. ConnOpen() : SQL1 = "SELECT 主項 FROM 財務彙總紀錄 WHERE 主項 NOT LIKE N'上月結存' GROUP BY 主項 ORDER BY 主項 DESC" : CmdSet_For_dr()
  282. 主項_cb.Items.Clear() : 主項1_cb.Items.Clear() : 主項2_cb.Items.Clear()
  283. While (dr.Read()) : 主項_cb.Items.Add(dr("主項")) : 主項1_cb.Items.Add(dr("主項")) : 主項2_cb.Items.Add(dr("主項")) : End While : conn.Close()
  284. End Sub
  285. Private Sub ComboBox1下拉表單資料載入()
  286. ConnOpen() : SQL1 = "SELECT 年份 FROM 年份清單 ORDER BY 年份 DESC" : CmdSet_For_dr()
  287. 年份_cb.Items.Clear() : 年份_cb.Items.Add("") : While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : End While : conn.Close()
  288. End Sub
  289. Private Sub 財務_彙總表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  290. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  291. GCM_ERP_SYS.WindowState = 2 : 列高 = 19
  292. ComboBox1下拉表單資料載入() : 主項下拉() : 主項_cb.SelectedIndex = 0 : 主項1_cb.SelectedIndex = 1 : 主項2_cb.SelectedIndex = 2
  293. 主表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) : 主表1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  294. 主表2_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) : 主表3_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  295. 主表4_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) : 主表5_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  296. 主表6_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) : 主表7_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  297. 主表8_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  298. End Sub
  299. Private Sub 財務_彙總表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  300. GCM_ERP_SYS.WindowState = 0
  301. End Sub
  302. Private Sub 主表_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 主表_dgv.RowPostPaint
  303. Dim linePen As New Pen(Color.Blue, 2) : Dim linePen1 As New Pen(Color.Red, 2)
  304. If e.RowIndex = 主表_dgv.Rows.Count - 1 Then : Exit Sub : Else
  305. If 主表_dgv(0, e.RowIndex).Value.ToString <> 主表_dgv(0, e.RowIndex + 1).Value.ToString Then
  306. Dim startX As Integer = IIf(主表_dgv.RowHeadersVisible, 主表_dgv.RowHeadersWidth, 0) : Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  307. Dim endX As Integer = startX + 主表_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表_dgv.HorizontalScrollingOffset
  308. e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub
  309. End If
  310. If 主表_dgv(1, e.RowIndex).Value.ToString <> 主表_dgv(1, e.RowIndex + 1).Value.ToString Then
  311. Dim startX As Integer = IIf(主表_dgv.RowHeadersVisible, 主表_dgv.RowHeadersWidth, 0) : Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  312. Dim endX As Integer = startX + 主表_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表_dgv.HorizontalScrollingOffset
  313. e.Graphics.DrawLine(linePen1, startX, startY, endX, startY) : Exit Sub
  314. End If
  315. End If
  316. End Sub
  317. Private Sub 主表3_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 主表3_dgv.RowPostPaint
  318. Dim linePen As New Pen(Color.Blue, 2) : Dim linePen1 As New Pen(Color.Red, 2)
  319. If e.RowIndex = 主表3_dgv.Rows.Count - 1 Then : Exit Sub : Else
  320. If 主表3_dgv(0, e.RowIndex).Value.ToString <> 主表3_dgv(0, e.RowIndex + 1).Value.ToString Then
  321. Dim startX As Integer = IIf(主表3_dgv.RowHeadersVisible, 主表3_dgv.RowHeadersWidth, 0) : Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  322. Dim endX As Integer = startX + 主表3_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表3_dgv.HorizontalScrollingOffset
  323. e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub
  324. End If
  325. If 主表3_dgv(1, e.RowIndex).Value.ToString <> 主表3_dgv(1, e.RowIndex + 1).Value.ToString Then
  326. Dim startX As Integer = IIf(主表3_dgv.RowHeadersVisible, 主表3_dgv.RowHeadersWidth, 0) : Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  327. Dim endX As Integer = startX + 主表3_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表3_dgv.HorizontalScrollingOffset
  328. e.Graphics.DrawLine(linePen1, startX, startY, endX, startY) : Exit Sub
  329. End If
  330. End If
  331. End Sub
  332. Private Sub 主表6_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 主表6_dgv.RowPostPaint
  333. Dim linePen As New Pen(Color.Blue, 2) : Dim linePen1 As New Pen(Color.Red, 2)
  334. If e.RowIndex = 主表6_dgv.Rows.Count - 1 Then : Exit Sub : Else
  335. If 主表6_dgv(0, e.RowIndex).Value.ToString <> 主表6_dgv(0, e.RowIndex + 1).Value.ToString Then
  336. Dim startX As Integer = IIf(主表6_dgv.RowHeadersVisible, 主表6_dgv.RowHeadersWidth, 0) : Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  337. Dim endX As Integer = startX + 主表6_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表6_dgv.HorizontalScrollingOffset
  338. e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub
  339. End If
  340. If 主表6_dgv(1, e.RowIndex).Value.ToString <> 主表6_dgv(1, e.RowIndex + 1).Value.ToString Then
  341. Dim startX As Integer = IIf(主表6_dgv.RowHeadersVisible, 主表6_dgv.RowHeadersWidth, 0) : Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  342. Dim endX As Integer = startX + 主表6_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 主表6_dgv.HorizontalScrollingOffset
  343. e.Graphics.DrawLine(linePen1, startX, startY, endX, startY) : Exit Sub
  344. End If
  345. End If
  346. End Sub
  347. Private Sub 主項_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 主項_cb.SelectedIndexChanged
  348. Set_清單() : 彙總()
  349. End Sub
  350. Private Sub 主項1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 主項1_cb.SelectedIndexChanged
  351. Set_清單3() : 彙總()
  352. End Sub
  353. Private Sub 主項2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 主項2_cb.SelectedIndexChanged
  354. Set_清單6() : 彙總()
  355. End Sub
  356. Private Sub 年份_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年份_cb.SelectedIndexChanged
  357. Set_清單() : 彙總() : Set_清單3() : 彙總() : Set_清單6() : 彙總()
  358. End Sub
  359. End Class