Nessuna descrizione
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.

財務_收支單一覽表_ICS.vb 47KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. Option Strict Off
  2. Imports System.IO
  3. Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
  4. Imports Microsoft.Office.Interop.Excel.Constants
  5. Imports Microsoft.Office.Interop.Excel.XlBordersIndex
  6. Imports Microsoft.Office.Interop.Excel.XlLineStyle
  7. Imports Microsoft.Office.Interop.Excel.XlBorderWeight
  8. Imports Microsoft.Office.Interop.Excel.XlThemeFont
  9. Imports Microsoft.Office.Interop.Excel.XlThemeColor
  10. Imports Microsoft.Office.Interop.Excel.XlWindowState
  11. Imports Microsoft.Office.Interop.Excel
  12. Public Class 財務_收支單一覽表_ICS
  13. ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet
  14. Dim DTP As String : Dim N1 As Integer : Dim N2 As Integer : Dim 匯率1 As Double
  15. Dim xlApp As Application
  16. Dim xlBook As Workbook
  17. Dim xlSheet As Worksheet
  18. Private Sub Set_清單1()
  19. 收支單_dgv.DataSource = Nothing : ds1.Clear()
  20. 收支單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  21. 收支單_dgv.ColumnHeadersHeight = 25
  22. 收支單_dgv.AllowUserToAddRows = False
  23. ConnOpen()
  24. SQL1 = "SELECT 支付單號 AS 收支單號, 申請人, 申請日期, 審核人, 審核日期, 核准圖檔, 簽名編碼 FROM 財務控制表_ICS
  25. WHERE (審核人 NOT LIKE N'') AND (審核人 NOT LIKE N'作廢%') AND
  26. 審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "'
  27. ORDER BY 審核日期 DESC"
  28. CmdSet_For_DGV() : da.Fill(ds1) : 收支單_dgv.DataSource = ds1.Tables(0) : conn.Close()
  29. 收支單_dgv.Columns(0).FillWeight = 160 : 收支單_dgv.Columns(1).Visible = False : 收支單_dgv.Columns(2).FillWeight = 100 : 收支單_dgv.Columns(3).Visible = False
  30. 收支單_dgv.Columns(4).FillWeight = 100 : 收支單_dgv.Columns(5).Visible = False : 收支單_dgv.Columns(6).Visible = False
  31. End Sub
  32. Private Sub Set_清單2()
  33. 彙總_dgv.DataSource = Nothing : ds2.Clear()
  34. 彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  35. 彙總_dgv.ColumnHeadersHeight = 25
  36. 彙總_dgv.AllowUserToAddRows = False
  37. ConnOpen()
  38. If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then
  39. SQL2 = ""
  40. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then
  41. SQL2 = " AND (財務流水帳_ICS.含稅 = 1)"
  42. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then
  43. SQL2 = " AND (財務流水帳_ICS.含稅 = 0 OR 財務流水帳_ICS.含稅 IS NULL)"
  44. End If
  45. SQL1 = "SELECT LEFT(財務控制表_ICS.審核日期, 7) AS 日期, 會計科目.第一階 AS 主項, 會計科目.第二階 AS 子項,
  46. 會計科目.會計科目 AS 子細項, SUM(財務流水帳_ICS.零用金) AS 零用金, SUM(財務流水帳_ICS.支票數)
  47. AS 支票, SUM(Cast(財務流水帳_ICS.收入 AS money)) AS 收入, SUM(Cast(財務流水帳_ICS.支出 AS money)) AS 支出, 財務流水帳_ICS.銀行 AS 幣別, 財務流水帳_ICS.匯率
  48. FROM 財務控制表_ICS RIGHT OUTER JOIN
  49. 財務流水帳_ICS ON 財務控制表_ICS.支付單號 = 財務流水帳_ICS.支付單號 RIGHT OUTER JOIN
  50. 會計科目 ON 財務流水帳_ICS.類別 = 會計科目.編號
  51. WHERE (財務控制表_ICS.審核日期 BETWEEN '" & Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd") & "') " & SQL2 & "
  52. GROUP BY 會計科目.第一階, 會計科目.第二階, 會計科目.會計科目, LEFT(會計科目.編號, 7),
  53. LEFT(財務控制表_ICS.審核日期, 7), 財務流水帳_ICS.銀行, 財務流水帳_ICS.匯率
  54. ORDER BY 幣別, LEFT(財務控制表_ICS.審核日期, 7), LEFT(會計科目.編號, 7)"
  55. CmdSet_For_DGV() : da.Fill(ds2) : 彙總_dgv.DataSource = ds2.Tables(0) : conn.Close()
  56. 彙總_dgv.Columns(0).FillWeight = 100 : 彙總_dgv.Columns(1).FillWeight = 140 : 彙總_dgv.Columns(2).FillWeight = 140 : 彙總_dgv.Columns(3).FillWeight = 140
  57. 彙總_dgv.Columns(4).Visible = False : 彙總_dgv.Columns(5).Visible = False : 彙總_dgv.Columns(6).FillWeight = 100 : 彙總_dgv.Columns(7).FillWeight = 100
  58. 彙總_dgv.Columns(8).FillWeight = 100 : 彙總_dgv.Columns(9).FillWeight = 100
  59. 彙總_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" : 彙總_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00"
  60. 彙總_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00"
  61. 彙總_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  62. 彙總_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  63. 彙總_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  64. 彙總_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 彙總_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  65. 彙總_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  66. 彙總_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  67. 彙總_dgv.Columns(0).ReadOnly = True : 彙總_dgv.Columns(1).ReadOnly = True : 彙總_dgv.Columns(2).ReadOnly = True : 彙總_dgv.Columns(3).ReadOnly = True
  68. 彙總_dgv.Columns(4).ReadOnly = True : 彙總_dgv.Columns(5).ReadOnly = True : 彙總_dgv.Columns(6).ReadOnly = True : 彙總_dgv.Columns(7).ReadOnly = True
  69. End Sub
  70. Private Sub Set_費用清單()
  71. 明細_dgv.DataSource = Nothing : ds.Clear()
  72. 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  73. 明細_dgv.ColumnHeadersHeight = 25
  74. 明細_dgv.AllowUserToAddRows = False
  75. 明細_dgv.RowTemplate.Height = 35
  76. ConnOpen()
  77. If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then
  78. SQL2 = ""
  79. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then
  80. SQL2 = " AND (財務流水帳_ICS.含稅 = 1)"
  81. ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then
  82. SQL2 = " AND (財務流水帳_ICS.含稅 = 0 OR 財務流水帳_ICS.含稅 IS NULL)"
  83. End If
  84. SQL1 = "SELECT 財務流水帳_ICS.支付單號, 財務流水帳_ICS.項次, 會計科目.會計科目, 財務流水帳_ICS.明細 AS 用途,
  85. Cast(財務流水帳_ICS.零用金 AS money) AS 零用金, Cast(財務流水帳_ICS.支票數 AS money) AS 支票, Cast(財務流水帳_ICS.收入 AS money) AS 收入,
  86. Cast(財務流水帳_ICS.支出 AS money) AS 支出, 財務流水帳_ICS.備註 AS 票期, 財務流水帳_ICS.匯率, 財務流水帳_ICS.銀行 AS 幣別, 財務流水帳_ICS.類別,
  87. 財務流水帳_ICS.流水號, 財務流水帳_ICS.含稅
  88. FROM 財務流水帳_ICS INNER JOIN
  89. 會計科目 ON 財務流水帳_ICS.類別 = 會計科目.編號
  90. WHERE (財務流水帳_ICS.支付單號 LIKE N'" & 收支單號_tb.Text & "') " & SQL2 & "
  91. ORDER BY 財務流水帳_ICS.項次"
  92. CmdSet_For_DGV() : da.Fill(ds) : 明細_dgv.DataSource = ds.Tables(0) : conn.Close()
  93. 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 80 : 明細_dgv.Columns(2).FillWeight = 250 : 明細_dgv.Columns(3).FillWeight = 400
  94. 明細_dgv.Columns(4).Visible = False : 明細_dgv.Columns(5).Visible = False : 明細_dgv.Columns(6).FillWeight = 165 : 明細_dgv.Columns(7).FillWeight = 165
  95. 明細_dgv.Columns(8).FillWeight = 150 : 明細_dgv.Columns(9).FillWeight = 130 : 明細_dgv.Columns(10).FillWeight = 140 : 明細_dgv.Columns(11).Visible = False
  96. 明細_dgv.Columns(12).Visible = False : 明細_dgv.Columns(13).FillWeight = 80
  97. 明細_dgv.Columns(1).ReadOnly = True : 明細_dgv.Columns(2).ReadOnly = True : 明細_dgv.Columns(9).ReadOnly = True : 明細_dgv.Columns(10).ReadOnly = True
  98. 明細_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00"
  99. 明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00"
  100. 明細_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  101. 明細_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  102. 明細_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  103. 明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  104. 明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  105. 明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  106. 明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  107. 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00"
  108. 零2_tb.Text = "0.00" : 支2_tb.Text = "0.00" : 現2_tb.Text = "0.00" : 出2_tb.Text = "0.00" : 合2_tb.Text = "0.00"
  109. 零3_tb.Text = "0.00" : 支3_tb.Text = "0.00" : 現3_tb.Text = "0.00" : 出3_tb.Text = "0.00" : 合3_tb.Text = "0.00"
  110. 零4_tb.Text = "0.00" : 支4_tb.Text = "0.00" : 現4_tb.Text = "0.00" : 出4_tb.Text = "0.00" : 合4_tb.Text = "0.00"
  111. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  112. If 明細_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then
  113. 現1_tb.Text = Val(現1_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value * 明細_dgv.Rows(i).Cells("匯率").Value
  114. 出1_tb.Text = Val(出1_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value * 明細_dgv.Rows(i).Cells("匯率").Value
  115. 零1_tb.Text = Val(零1_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value * 明細_dgv.Rows(i).Cells("匯率").Value
  116. 支1_tb.Text = Val(支1_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value * 明細_dgv.Rows(i).Cells("匯率").Value
  117. End If
  118. If 明細_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then
  119. 現2_tb.Text = Val(現2_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出2_tb.Text = Val(出2_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value
  120. 零2_tb.Text = Val(零2_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支2_tb.Text = Val(支2_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value
  121. End If
  122. If 明細_dgv.Rows(i).Cells("幣別").Value = "美金" Then
  123. 現3_tb.Text = Val(現3_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出3_tb.Text = Val(出3_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value
  124. 零3_tb.Text = Val(零3_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支3_tb.Text = Val(支3_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value
  125. End If
  126. If 明細_dgv.Rows(i).Cells("幣別").Value = "印尼盾" Then
  127. 現4_tb.Text = Val(現4_tb.Text) + 明細_dgv.Rows(i).Cells("收入").Value : 出4_tb.Text = Val(出4_tb.Text) + 明細_dgv.Rows(i).Cells("支出").Value
  128. 零4_tb.Text = Val(零4_tb.Text) + 明細_dgv.Rows(i).Cells("零用金").Value : 支4_tb.Text = Val(支4_tb.Text) + 明細_dgv.Rows(i).Cells("支票").Value
  129. End If
  130. Next i
  131. 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text) : 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text)
  132. 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text) : 合4_tb.Text = Val(零4_tb.Text) + Val(現4_tb.Text) - Val(出4_tb.Text)
  133. If CLng(合1_tb.Text) >= 0 Then : 合1_tb.ForeColor = Color.Black : Else : 合1_tb.ForeColor = Color.Red : End If
  134. If CLng(合2_tb.Text) >= 0 Then : 合2_tb.ForeColor = Color.Black : Else : 合2_tb.ForeColor = Color.Red : End If
  135. If CLng(合3_tb.Text) >= 0 Then : 合3_tb.ForeColor = Color.Black : Else : 合3_tb.ForeColor = Color.Red : End If
  136. If CLng(合4_tb.Text) >= 0 Then : 合4_tb.ForeColor = Color.Black : Else : 合4_tb.ForeColor = Color.Red : End If
  137. 現1_tb.Text = Strings.Format(Val(現1_tb.Text), "#,##0.00") : 出1_tb.Text = Strings.Format(Val(出1_tb.Text), "#,##0.00") : 合1_tb.Text = Strings.Format(Val(合1_tb.Text), "#,##0.00")
  138. 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_tb.Text), "#,##0.00")
  139. 零2_tb.Text = Strings.Format(Val(零2_tb.Text), "#,##0.00") : 支2_tb.Text = Strings.Format(Val(支2_tb.Text), "#,##0.00") : 現2_tb.Text = Strings.Format(Val(現2_tb.Text), "#,##0.00")
  140. 出2_tb.Text = Strings.Format(Val(出2_tb.Text), "#,##0.00") : 合2_tb.Text = Strings.Format(Val(合2_tb.Text), "#,##0.00")
  141. 零3_tb.Text = Strings.Format(Val(零3_tb.Text), "#,##0.00") : 支3_tb.Text = Strings.Format(Val(支3_tb.Text), "#,##0.00") : 現3_tb.Text = Strings.Format(Val(現3_tb.Text), "#,##0.00")
  142. 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00")
  143. 零4_tb.Text = Strings.Format(Val(零4_tb.Text), "#,##0.00") : 支4_tb.Text = Strings.Format(Val(支4_tb.Text), "#,##0.00") : 現4_tb.Text = Strings.Format(Val(現4_tb.Text), "#,##0.00")
  144. 出4_tb.Text = Strings.Format(Val(出4_tb.Text), "#,##0.00") : 合4_tb.Text = Strings.Format(Val(合4_tb.Text), "#,##0.00")
  145. End Sub
  146. Private Sub 日期格式()
  147. If 會計月_ch.Checked = True Then
  148. '-------------日期一----------------------------------------------------------------------------------------
  149. DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP
  150. 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1)
  151. DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "26" : 開始日期_dtp.Value = DTP
  152. '-------------日期二----------------------------------------------------------------------------------------
  153. DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "25" : 結束日期_dtp.Value = DTP
  154. Else
  155. '-------------日期一----------------------------------------------------------------------------------------
  156. 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(1)
  157. DTP = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP
  158. '-------------日期二----------------------------------------------------------------------------------------
  159. DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 結束日期_dtp.Value = DTP
  160. 結束日期_dtp.Value = 結束日期_dtp.Value.AddMonths(1) : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(-1)
  161. End If
  162. End Sub
  163. Private Sub 匯率()
  164. ConnOpen()
  165. SQL1 = "SELECT 中心匯率, 美金匯率, 印尼匯率 FROM 歷史匯率表
  166. WHERE (年 LIKE N'" & Strings.Left(Strings.Format(申請日期_dtp.Value, "yyyyMMdd"), 4) & "%') AND
  167. (月 LIKE N'" & Strings.Mid(Strings.Format(申請日期_dtp.Value, "yyyyMMdd"), 5, 2) & "%')"
  168. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  169. If dr.Read() Then
  170. 人民幣匯率_tb.Text = dr("中心匯率").ToString : 美金匯率_tb.Text = dr("美金匯率").ToString : 印尼匯率_tb.Text = dr("印尼匯率").ToString : conn.Close() : dr.Close()
  171. Else
  172. conn.Close() : dr.Close() : 匯率修改.Close() : 匯率修改.Show() : 匯率修改.BringToFront()
  173. End If
  174. End Sub
  175. Private Sub 財務_收支單一覽表_ICS_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  176. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  177. DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01"
  178. 匯率() : 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today()
  179. 日期格式() : 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1) : 彙總_dgv.Visible = False : 明細_rb.Checked = True : Panel1.SendToBack()
  180. End Sub
  181. Dim 已超出 As Boolean
  182. Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp
  183. 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If
  184. If 明細_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  185. If 明細_dgv.SelectedCells.Count > 0 Then
  186. If 明細_dgv.SelectedCells(0).ColumnIndex >= 4 And 明細_dgv.SelectedCells(0).ColumnIndex <= 7 Then
  187. If 已超出 = False Then
  188. Dim x As Double = 0
  189. For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1
  190. x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  191. Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  192. Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If
  193. Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  194. End If
  195. End If
  196. End Sub
  197. Private Sub 彙總_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 彙總_dgv.MouseUp
  198. 'If 彙總_dgv.SelectedCells.Count = 1 Then : MsgBox(彙總_dgv.SelectedCells(0).ColumnIndex & " " & 彙總_dgv.SelectedCells(0).RowIndex) : End If
  199. If 彙總_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If
  200. If 彙總_dgv.SelectedCells.Count > 0 Then
  201. If 彙總_dgv.SelectedCells(0).ColumnIndex >= 4 And 彙總_dgv.SelectedCells(0).ColumnIndex <= 7 Then
  202. If 已超出 = False Then
  203. Dim x As Double = 0
  204. For i As Integer = 0 To 彙總_dgv.SelectedCells.Count - 1
  205. x += Val(彙總_dgv.Rows(彙總_dgv.SelectedCells.Item(i).RowIndex).Cells(彙總_dgv.SelectedCells.Item(i).ColumnIndex).Value)
  206. Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0")
  207. Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If
  208. Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0")
  209. End If
  210. End If
  211. End Sub
  212. Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 收支單_dgv.CellClick
  213. If e.RowIndex = -1 Then : Else
  214. 收支單號_tb.Text = 收支單_dgv(0, e.RowIndex).Value.ToString : TextBox13.Text = 收支單_dgv(6, e.RowIndex).Value.ToString
  215. 申請人_tb.Text = 收支單_dgv(1, e.RowIndex).Value.ToString : 申請日期_dtp.Value = 收支單_dgv(2, e.RowIndex).Value.ToString
  216. 審核人_tb.Text = 收支單_dgv(3, e.RowIndex).Value.ToString : 審核日期_dtp.Value = 收支單_dgv(4, e.RowIndex).Value.ToString
  217. TextBox14.Text = 收支單_dgv(5, e.RowIndex).Value.ToString
  218. Set_費用清單()
  219. End If
  220. End Sub
  221. Private Sub DataGridView2_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 彙總_dgv.RowPostPaint
  222. Dim linePen As New Pen(Color.Blue, 2) : Dim linePen1 As New Pen(Color.Red, 2) : Dim linePen2 As New Pen(Color.Green, 2)
  223. If e.RowIndex = 彙總_dgv.Rows.Count - 1 Then
  224. Exit Sub
  225. Else
  226. If 彙總_dgv(0, e.RowIndex).Value.ToString <> 彙總_dgv(0, e.RowIndex + 1).Value.ToString Then
  227. Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0)
  228. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  229. Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset
  230. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  231. Exit Sub
  232. End If
  233. If 彙總_dgv(8, e.RowIndex).Value.ToString <> 彙總_dgv(8, e.RowIndex + 1).Value.ToString Then
  234. Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0)
  235. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  236. Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset
  237. e.Graphics.DrawLine(linePen2, startX, startY, endX, startY)
  238. Exit Sub
  239. End If
  240. If 彙總_dgv(1, e.RowIndex).Value.ToString <> 彙總_dgv(1, e.RowIndex + 1).Value.ToString Then
  241. Dim startX As Integer = IIf(彙總_dgv.RowHeadersVisible, 彙總_dgv.RowHeadersWidth, 0)
  242. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  243. Dim endX As Integer = startX + 彙總_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 彙總_dgv.HorizontalScrollingOffset
  244. e.Graphics.DrawLine(linePen1, startX, startY, endX, startY)
  245. Exit Sub
  246. End If
  247. End If
  248. End Sub
  249. Private Sub 全部_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 全部_ch.Click
  250. 全部_ch.Checked = True : 含稅_ch.Checked = False : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算()
  251. End Sub
  252. Private Sub 含稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 含稅_ch.Click
  253. 全部_ch.Checked = False : 含稅_ch.Checked = True : 非稅_ch.Checked = False : Set_費用清單() : Set_清單2() : 彙總計算()
  254. End Sub
  255. Private Sub 非稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 非稅_ch.Click
  256. 全部_ch.Checked = False : 含稅_ch.Checked = False : 非稅_ch.Checked = True : Set_費用清單() : Set_清單2() : 彙總計算()
  257. End Sub
  258. Private Sub 當日_tb_Click(sender As Object, e As EventArgs) Handles 當日_tb.Click
  259. DTP = Strings.Format(Today(), "yyyy/MM/dd")
  260. 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = DTP
  261. End Sub
  262. Private Sub B當月_tb_Click(sender As Object, e As EventArgs) Handles 當月_tb.Click
  263. DTP = Strings.Left(Strings.Format(Today(), "yyyy/MM/dd"), 8) & "01"
  264. 開始日期_dtp.Value = DTP : 結束日期_dtp.Value = Today()
  265. End Sub
  266. Private Sub 彙總計算()
  267. If 明細_rb.Checked = False And 彙總_rb.Checked = True Then
  268. 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00"
  269. 零2_tb.Text = "0.00" : 支2_tb.Text = "0.00" : 現2_tb.Text = "0.00" : 出2_tb.Text = "0.00" : 合2_tb.Text = "0.00"
  270. 零3_tb.Text = "0.00" : 支3_tb.Text = "0.00" : 現3_tb.Text = "0.00" : 出3_tb.Text = "0.00" : 合3_tb.Text = "0.00"
  271. 零4_tb.Text = "0.00" : 支4_tb.Text = "0.00" : 現4_tb.Text = "0.00" : 出4_tb.Text = "0.00" : 合4_tb.Text = "0.00"
  272. For i As Integer = 0 To 彙總_dgv.Rows.Count - 1
  273. If 彙總_dgv.Rows(i).Cells("幣別").Value = "台幣現金" Then
  274. If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then
  275. 現1_tb.Text = Val(現1_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出1_tb.Text = Val(出1_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value
  276. 零1_tb.Text = Val(零1_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支1_tb.Text = Val(支1_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value
  277. End If
  278. End If
  279. If 彙總_dgv.Rows(i).Cells("幣別").Value = "人民幣現金" Then
  280. If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then
  281. 現2_tb.Text = Val(現2_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出2_tb.Text = Val(出2_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value
  282. 零2_tb.Text = Val(零2_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支2_tb.Text = Val(支2_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value
  283. End If
  284. End If
  285. If 彙總_dgv.Rows(i).Cells("幣別").Value = "美金" Then
  286. If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then
  287. 現3_tb.Text = Val(現3_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出3_tb.Text = Val(出3_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value
  288. 零3_tb.Text = Val(零3_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支3_tb.Text = Val(支3_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value
  289. End If
  290. End If
  291. If 彙總_dgv.Rows(i).Cells("幣別").Value = "印尼盾" Then
  292. If 彙總_dgv.Rows(i).Cells("主項").Value <> "上月結存" Then
  293. 現4_tb.Text = Val(現4_tb.Text) + 彙總_dgv.Rows(i).Cells("收入").Value : 出4_tb.Text = Val(出4_tb.Text) + 彙總_dgv.Rows(i).Cells("支出").Value
  294. 零4_tb.Text = Val(零4_tb.Text) + 彙總_dgv.Rows(i).Cells("零用金").Value : 支4_tb.Text = Val(支4_tb.Text) + 彙總_dgv.Rows(i).Cells("支票").Value
  295. End If
  296. End If
  297. Next i
  298. 合1_tb.Text = Val(零1_tb.Text) + Val(現1_tb.Text) - Val(出1_tb.Text) : 合2_tb.Text = Val(零2_tb.Text) + Val(現2_tb.Text) - Val(出2_tb.Text)
  299. 合3_tb.Text = Val(零3_tb.Text) + Val(現3_tb.Text) - Val(出3_tb.Text) : 合4_tb.Text = Val(零4_tb.Text) + Val(現4_tb.Text) - Val(出4_tb.Text)
  300. If CLng(合1_tb.Text) >= 0 Then : 合1_tb.ForeColor = Color.Black : Else : 合1_tb.ForeColor = Color.Red : End If
  301. If CLng(合2_tb.Text) >= 0 Then : 合2_tb.ForeColor = Color.Black : Else : 合2_tb.ForeColor = Color.Red : End If
  302. If CLng(合3_tb.Text) >= 0 Then : 合3_tb.ForeColor = Color.Black : Else : 合3_tb.ForeColor = Color.Red : End If
  303. If CLng(合4_tb.Text) >= 0 Then : 合4_tb.ForeColor = Color.Black : Else : 合4_tb.ForeColor = Color.Red : End If
  304. 現1_tb.Text = Strings.Format(Val(現1_tb.Text), "#,##0.00") : 出1_tb.Text = Strings.Format(Val(出1_tb.Text), "#,##0.00") : 合1_tb.Text = Strings.Format(Val(合1_tb.Text), "#,##0.00")
  305. 零1_tb.Text = Strings.Format(Val(零1_tb.Text), "#,##0.00") : 支1_tb.Text = Strings.Format(Val(支1_tb.Text), "#,##0.00")
  306. 零2_tb.Text = Strings.Format(Val(零2_tb.Text), "#,##0.00") : 支2_tb.Text = Strings.Format(Val(支2_tb.Text), "#,##0.00") : 現2_tb.Text = Strings.Format(Val(現2_tb.Text), "#,##0.00")
  307. 出2_tb.Text = Strings.Format(Val(出2_tb.Text), "#,##0.00") : 合2_tb.Text = Strings.Format(Val(合2_tb.Text), "#,##0.00")
  308. 零3_tb.Text = Strings.Format(Val(零3_tb.Text), "#,##0.00") : 支3_tb.Text = Strings.Format(Val(支3_tb.Text), "#,##0.00") : 現3_tb.Text = Strings.Format(Val(現3_tb.Text), "#,##0.00")
  309. 出3_tb.Text = Strings.Format(Val(出3_tb.Text), "#,##0.00") : 合3_tb.Text = Strings.Format(Val(合3_tb.Text), "#,##0.00")
  310. 零4_tb.Text = Strings.Format(Val(零4_tb.Text), "#,##0.00") : 支4_tb.Text = Strings.Format(Val(支4_tb.Text), "#,##0.00") : 現4_tb.Text = Strings.Format(Val(現4_tb.Text), "#,##0.00")
  311. 出4_tb.Text = Strings.Format(Val(出4_tb.Text), "#,##0.00") : 合4_tb.Text = Strings.Format(Val(合4_tb.Text), "#,##0.00")
  312. End If
  313. End Sub
  314. Private Sub 上個月_bt_Click(sender As Object, e As EventArgs) Handles 上個月_bt.Click
  315. If 會計月_ch.Checked = True Then
  316. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  317. 開始日期_dtp.Value = 中間日期_dtp.Value
  318. 結束日期_dtp.Value = 中間日期_dtp.Value
  319. Else
  320. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  321. 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  322. 結束日期_dtp.Value = 中間日期_dtp.Value
  323. End If
  324. 日期格式()
  325. End Sub
  326. Private Sub 下個月_bt_Click(sender As Object, e As EventArgs) Handles 下個月_bt.Click
  327. If 會計月_ch.Checked = True Then
  328. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1)
  329. 開始日期_dtp.Value = 中間日期_dtp.Value
  330. 結束日期_dtp.Value = 中間日期_dtp.Value
  331. Else
  332. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1)
  333. 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  334. 結束日期_dtp.Value = 中間日期_dtp.Value
  335. End If
  336. 日期格式()
  337. End Sub
  338. Private Sub 開始日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged
  339. Set_清單1() : Set_清單2() : 彙總計算()
  340. End Sub
  341. Private Sub 結束日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged
  342. Set_清單1() : Set_清單2() : 彙總計算()
  343. End Sub
  344. Private Sub 會計月_CheckedChanged(sender As Object, e As EventArgs) Handles 會計月_ch.Click
  345. 會計月_ch.Checked = True : 一般月_ch.Checked = False : 日期格式()
  346. End Sub
  347. Private Sub 一般月_CheckedChanged(sender As Object, e As EventArgs) Handles 一般月_ch.Click
  348. 會計月_ch.Checked = False : 一般月_ch.Checked = True : 日期格式()
  349. End Sub
  350. Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles 明細_rb.Click
  351. 明細_dgv.Visible = True : 彙總_dgv.Visible = False : 明細_rb.Checked = True : 彙總_rb.Checked = False
  352. 現1_tb.Text = "0.00" : 出1_tb.Text = "0.00" : 合1_tb.Text = "0.00" : 零1_tb.Text = "0.00" : 支1_tb.Text = "0.00" : 收支單_dgv.Enabled = True
  353. End Sub
  354. Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles 彙總_rb.Click
  355. 明細_dgv.Visible = False : 彙總_dgv.Visible = True : 明細_rb.Checked = False : 彙總_rb.Checked = True
  356. 收支單號_tb.Text = "" : 申請人_tb.Text = "" : 審核人_tb.Text = "" : 明細_dgv.DataSource = Nothing : ds.Clear() : 收支單_dgv.Enabled = False
  357. 彙總計算()
  358. End Sub
  359. Private Sub TextBox14_TextChanged(sender As Object, e As EventArgs) Handles TextBox14.TextChanged
  360. ConnOpen()
  361. SQL1 = "SELECT 簽名檔圖片 FROM GCM主管簽名檔管理 WHERE 圖片流水號 LIKE N'" & TextBox14.Text & "'"
  362. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  363. While dr.Read() = True
  364. Dim unused As Byte() = New Byte(-1) {}
  365. Dim bytes As Byte() = DirectCast(dr.Item("簽名檔圖片"), Byte())
  366. Dim oStream As New MemoryStream(bytes)
  367. PictureBox1.Image = Bitmap.FromStream(oStream)
  368. End While
  369. conn.Close()
  370. PictureBox1.SizeMode = 4
  371. End Sub
  372. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
  373. xlApp = CType(CreateObject("Excel.Application"), Application)
  374. xlBook = xlApp.Workbooks.Add
  375. xlApp.DisplayAlerts = True
  376. xlBook.Activate()
  377. xlSheet = NewMethod(xlBook)
  378. xlSheet.Activate()
  379. xlApp.Visible = True
  380. xlApp.Application.WindowState = xlMaximized
  381. xlSheet.Cells(1, 1) = "年度" : xlSheet.Cells(1, 2) = Year(Today) - 1911
  382. If 明細_rb.Checked = True And 彙總_rb.Checked = False Then
  383. xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支明細表"
  384. xlSheet.Cells(2, 1) = "收款日期" : xlSheet.Cells(2, 2) = "會計科目" : xlSheet.Cells(2, 3) = "客戶或用途"
  385. xlSheet.Cells(2, 4) = "零用金" : xlSheet.Cells(2, 5) = "支票" : xlSheet.Cells(2, 6) = "收入" : xlSheet.Cells(2, 7) = "支出" : xlSheet.Cells(2, 8) = "現金餘額"
  386. xlSheet.Cells(2, 9) = "票期"
  387. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  388. xlSheet.Cells(i + 3, 1) = 申請日期_dtp.Value : xlSheet.Cells(i + 3, 2) = 明細_dgv.Rows(i).Cells("會計科目").Value
  389. xlSheet.Cells(i + 3, 3) = 明細_dgv.Rows(i).Cells("用途").Value : xlSheet.Cells(i + 3, 4) = 明細_dgv.Rows(i).Cells("零用金").Value
  390. xlSheet.Cells(i + 3, 5) = 明細_dgv.Rows(i).Cells("支票").Value : xlSheet.Cells(i + 3, 6) = 明細_dgv.Rows(i).Cells("收入").Value
  391. xlSheet.Cells(i + 3, 7) = 明細_dgv.Rows(i).Cells("支出").Value : xlSheet.Cells(i + 3, 9) = 明細_dgv.Rows(i).Cells("票期").Value
  392. If i = 0 Then
  393. xlSheet.Cells(i + 3, 8) = "=D3+F3-G3"
  394. Else
  395. xlSheet.Cells(i + 3, 8) = "=H" & i + 2 & "+D" & i + 3 & "+F" & i + 3 & "-G" & i + 3 & ""
  396. End If
  397. With xlApp.Selection
  398. .Font.Bold = True
  399. End With
  400. N1 = i + 3 : N2 = i + 3
  401. Next i
  402. xlSheet.Cells(N1 + 1, 3) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核(點交)" : xlSheet.Cells(N1 + 3, 7) = "製表 : " & 申請人_tb.Text & " - " & 申請日期_dtp.Value
  403. xlSheet.Cells(N1 + 2, 4) = "=SUM(D3:D" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 5) = "=SUM(E3:E" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 6) = "=SUM(F3:F" & N1 + 1 & ")"
  404. xlSheet.Cells(N1 + 2, 7) = "=SUM(G3:G" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 8) = "=H" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計"
  405. AA(xlApp, xlSheet) : BB(xlApp, xlSheet)
  406. ElseIf 明細_rb.Checked = False And 彙總_rb.Checked = True Then
  407. xlSheet.Cells(1, 3) = "工巧明智能企業有限公司-營運費用收支彙總簡表"
  408. xlSheet.Cells(2, 1) = "日期" : xlSheet.Cells(2, 2) = "主項" : xlSheet.Cells(2, 3) = "子項" : xlSheet.Cells(2, 4) = "子細項" : xlSheet.Cells(2, 5) = "零用金"
  409. xlSheet.Cells(2, 6) = "支票" : xlSheet.Cells(2, 7) = "收入" : xlSheet.Cells(2, 8) = "支出" : xlSheet.Cells(2, 9) = "現金餘額"
  410. For i As Integer = 0 To 彙總_dgv.Rows.Count - 1
  411. xlSheet.Cells(i + 3, 1) = 彙總_dgv.Rows(i).Cells("日期").Value
  412. xlSheet.Cells(i + 3, 2) = 彙總_dgv.Rows(i).Cells("主項").Value
  413. xlSheet.Cells(i + 3, 3) = 彙總_dgv.Rows(i).Cells("子項").Value
  414. xlSheet.Cells(i + 3, 4) = 彙總_dgv.Rows(i).Cells("子細項").Value
  415. xlSheet.Cells(i + 3, 5) = 彙總_dgv.Rows(i).Cells("零用金").Value
  416. xlSheet.Cells(i + 3, 6) = 彙總_dgv.Rows(i).Cells("支票").Value
  417. xlSheet.Cells(i + 3, 7) = 彙總_dgv.Rows(i).Cells("收入").Value
  418. xlSheet.Cells(i + 3, 8) = 彙總_dgv.Rows(i).Cells("支出").Value
  419. If i = 0 Then
  420. xlSheet.Cells(i + 3, 9) = "=E3+G3-H3"
  421. Else
  422. xlSheet.Cells(i + 3, 9) = "=I" & i + 2 & "+E" & i + 3 & "+G" & i + 3 & "-H" & i + 3 & ""
  423. End If
  424. With xlApp.Selection
  425. .Font.Bold = True
  426. End With
  427. N1 = i + 3 : N2 = i + 3
  428. Next i
  429. xlSheet.Cells(N1 + 1, 2) = "以下空白" : xlSheet.Cells(N1 + 3, 1) = "簽核" : xlSheet.Cells(N1 + 3, 5) = "製表 : " & gUserName & " - " & Today()
  430. xlSheet.Cells(N1 + 2, 5) = "=SUM(E3:E" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 6) = "=SUM(F3:F" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 7) = "=SUM(G3:G" & N1 + 1 & ")"
  431. xlSheet.Cells(N1 + 2, 8) = "=SUM(H3:H" & N1 + 1 & ")" : xlSheet.Cells(N1 + 2, 9) = "=I" & N1 : xlSheet.Cells(N1 + 2, 1) = "合計"
  432. CC(xlApp, xlSheet)
  433. End If
  434. xlSheet.PageSetup.PrintArea = ""
  435. xlApp.Cells.Select()
  436. xlSheet.Range("B1").Select()
  437. xlApp.Application.WindowState = xlMinimized
  438. xlSheet.Cells.Select()
  439. xlApp.ActiveSheet.Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="0911274990")
  440. xlApp.ActiveSheet.EnableSelection = 1
  441. MsgBox("列印完成。")
  442. End Sub
  443. Private Shared Function NewMethod(xlBook As Workbook) As Worksheet
  444. Return CType(xlBook.Worksheets.Add, Worksheet)
  445. End Function
  446. Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  447. xlSheet.Cells.Select()
  448. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  449. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  450. End With
  451. xlSheet.Columns("A:A").Select : myExcel.Selection.NumberFormatLocal = "m/d;@"
  452. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  453. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  454. End With
  455. xlSheet.Range("B1").Select()
  456. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  457. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  458. End With
  459. xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 25
  460. xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 30
  461. xlSheet.Columns("D:H").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0;[紅色]-#,##0"
  462. xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "[$-zh-TW]e/m/d;@"
  463. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25
  464. xlSheet.Range("A2:I2").Select()
  465. With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  466. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  467. End With
  468. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  469. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  470. End With
  471. xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  472. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  473. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  474. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  475. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  476. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  477. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  478. myExcel.ActiveWindow.DisplayGridlines = False
  479. xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20
  480. xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40
  481. xlSheet.Columns("I:I").Select
  482. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  483. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  484. End With
  485. xlSheet.Range("A" & N1 + 2 & ":C" & N1 + 2).Select() : myExcel.Selection.Merge
  486. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  487. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True
  488. End With
  489. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25
  490. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  491. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  492. End With
  493. End Sub
  494. Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  495. Clipboard.SetDataObject(PictureBox1.Image)
  496. xlSheet.Range("B" & N2 + 3).Select()
  497. myExcel.ActiveSheet.Pictures.Paste.Select
  498. myExcel.Selection.ShapeRange.Height = 43
  499. myExcel.Selection.ShapeRange.IncrementTop(3)
  500. End Sub
  501. Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet)
  502. xlSheet.Cells.Select()
  503. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  504. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  505. End With
  506. xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 8
  507. xlSheet.Columns("B:C").Select : myExcel.Selection.ColumnWidth = 15
  508. xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 20
  509. xlSheet.Columns("E:I").Select : myExcel.Selection.ColumnWidth = 10 : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00"
  510. xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 25
  511. xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 25
  512. xlSheet.Rows("3:" & N1 + 2).Select : myExcel.Selection.RowHeight = 20
  513. xlSheet.Rows(N1 + 3 & ":" & N1 + 3).Select : myExcel.Selection.RowHeight = 40
  514. xlSheet.Rows("2:2").Select
  515. With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  516. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  517. End With
  518. xlSheet.Range("A1").Select()
  519. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  520. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  521. End With
  522. xlSheet.Range("B1").Select()
  523. With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  524. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
  525. End With
  526. xlSheet.Rows("1:1").Select
  527. With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 16 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False
  528. .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
  529. End With
  530. xlSheet.Range("A2:I" & N1 + 2).Select() : myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  531. With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  532. With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  533. With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  534. With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  535. With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  536. With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
  537. xlSheet.Range("A" & N1 + 2 & ":D" & N1 + 2).Select() : myExcel.Selection.Merge
  538. With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
  539. .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True
  540. End With
  541. xlSheet.Columns("E:I").Select : myExcel.Selection.NumberFormatLocal = "#,##0.00;[紅色]-#,##0.00"
  542. myExcel.ActiveWindow.DisplayGridlines = False
  543. End Sub
  544. '----------------------滑鼠右鍵--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  545. Private Sub 重新讀取ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新讀取ToolStripMenuItem.Click
  546. Set_清單1() : Set_清單2() : 彙總計算()
  547. End Sub
  548. End Class