Option Strict Off Public Class 財務_對帳單_GCM ReadOnly ds As New DataSet Dim KKKJJ As String : Dim KKKJJ2 As String : Dim KKKJJ3 As String : Dim KKK3 As String : Dim KKK4 As String : Dim 匯率1 As Double Private Sub Set_清單1() 清單_dgv.DataSource = Nothing : ds.Clear() 清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 清單_dgv.ColumnHeadersHeight = 25 清單_dgv.AllowUserToAddRows = False ConnOpen() If 全部_ch.Checked = True And 含稅_ch.Checked = False And 非稅_ch.Checked = False Then SQL2 = "" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = True And 非稅_ch.Checked = False Then SQL2 = " AND (財務流水帳.含稅 = 1)" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then SQL2 = " AND (財務流水帳.含稅 = 0 OR 財務流水帳.含稅 IS NULL)" End If SQL1 = "SELECT 財務控制表.支付單號 AS 收支單號, 財務控制表.申請人, 財務控制表.申請日期, 財務控制表.審核人, 財務控制表.審核日期, 財務流水帳.項次, 會計科目.會計科目, 財務流水帳.明細 AS 用途與內容, 財務流水帳.零用金, 財務流水帳.支票數 AS 支票, Cast(財務流水帳.收入 AS money) AS 現金, Cast(財務流水帳.支出 AS money) AS 支出, 財務流水帳.備註 AS 票期, 財務流水帳.會計, 財務流水帳.日期 AS 作帳日期, 財務流水帳.出納 AS 點交, 財務流水帳.出納日期 AS 點交日期, 財務流水帳.備用金 AS 零用金點交, 財務流水帳.支票 AS 支票兌現, 財務流水帳.現金 AS 現金點交, 財務流水帳.公帳 AS 支出點交, 財務流水帳.匯率, 財務流水帳.銀行 AS 幣別 FROM 財務流水帳 INNER JOIN 會計科目 ON 財務流水帳.類別 = 會計科目.編號 FULL OUTER JOIN 財務控制表 ON 財務流水帳.支付單號 = 財務控制表.支付單號 WHERE (財務控制表.審核人 NOT LIKE '') AND (會計科目.編號 NOT LIKE 'D%') AND (財務控制表.審核人 NOT LIKE '作廢%') " & KKKJJ3 & KKKJJ & KKKJJ2 & SQL2 & " ORDER BY 收支單號 DESC, 財務流水帳.項次" 列印用SQL1 = SQL1 CmdSet_For_DGV() : da.Fill(ds) : 清單_dgv.DataSource = ds.Tables(0) : conn.Close() : Set_grid() End Sub Private Sub Set_grid() 清單_dgv.Columns(0).FillWeight = 120 : 清單_dgv.Columns(1).FillWeight = 60 : 清單_dgv.Columns(2).FillWeight = 80 : 清單_dgv.Columns(3).FillWeight = 60 清單_dgv.Columns(4).FillWeight = 80 : 清單_dgv.Columns(5).FillWeight = 50 : 清單_dgv.Columns(6).FillWeight = 150 : 清單_dgv.Columns(7).FillWeight = 233 清單_dgv.Columns(8).FillWeight = 80 : 清單_dgv.Columns(9).FillWeight = 80 : 清單_dgv.Columns(10).FillWeight = 80 : 清單_dgv.Columns(11).FillWeight = 80 清單_dgv.Columns(12).FillWeight = 80 : 清單_dgv.Columns(13).FillWeight = 50 : 清單_dgv.Columns(14).FillWeight = 85 : 清單_dgv.Columns(15).FillWeight = 50 清單_dgv.Columns(16).FillWeight = 85 : 清單_dgv.Columns(17).Visible = False : 清單_dgv.Columns(18).Visible = False : 清單_dgv.Columns(19).Visible = False 清單_dgv.Columns(20).Visible = False : 清單_dgv.Columns(21).FillWeight = 70 : 清單_dgv.Columns(22).FillWeight = 100 If 隱藏申請_ch.Checked = False Then 清單_dgv.Columns(1).Visible = True : 清單_dgv.Columns(2).Visible = True : 清單_dgv.Columns(3).Visible = True : 清單_dgv.Columns(4).Visible = True Else 清單_dgv.Columns(1).Visible = False : 清單_dgv.Columns(2).Visible = False : 清單_dgv.Columns(3).Visible = False : 清單_dgv.Columns(4).Visible = False End If If 隱藏作帳_ch.Checked = False Then 清單_dgv.Columns(13).Visible = True : 清單_dgv.Columns(14).Visible = True : 清單_dgv.Columns(15).Visible = True : 清單_dgv.Columns(16).Visible = True Else 清單_dgv.Columns(13).Visible = False : 清單_dgv.Columns(14).Visible = False : 清單_dgv.Columns(15).Visible = False : 清單_dgv.Columns(16).Visible = False End If 清單_dgv.Columns(8).DefaultCellStyle.Format = "#,##0" : 清單_dgv.Columns(9).DefaultCellStyle.Format = "#,##0" : 清單_dgv.Columns(10).DefaultCellStyle.Format = "#,##0" 清單_dgv.Columns(11).DefaultCellStyle.Format = "#,##0" 清單_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 清單_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 清單_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 清單_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 清單_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 清單_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 清單_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 清單_dgv.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 清單_dgv.Columns(21).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(21).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 清單_dgv.Columns(22).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(22).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 支出_總_tb.Text = "0" : 收入_總_tb.Text = "0" : 損益_總_tb.Text = "0" : 零用金_總_tb.Text = "0" : TextBox10.Text = "0" : 支票_總_tb.Text = "0" For i As Integer = 0 To 清單_dgv.Rows.Count - 1 收入_總_tb.Text = Val(收入_總_tb.Text) + 清單_dgv.Rows(i).Cells("現金").Value * 清單_dgv.Rows(i).Cells("匯率").Value 支出_總_tb.Text = Val(支出_總_tb.Text) + 清單_dgv.Rows(i).Cells("支出").Value * 清單_dgv.Rows(i).Cells("匯率").Value 零用金_總_tb.Text = Val(零用金_總_tb.Text) + 清單_dgv.Rows(i).Cells("零用金").Value * 清單_dgv.Rows(i).Cells("匯率").Value If 清單_dgv(9, i).Value <> 0 And 清單_dgv(18, i).Value = True Then TextBox10.Text = Val(TextBox10.Text) + 清單_dgv.Rows(i).Cells("支票").Value * 清單_dgv.Rows(i).Cells("匯率").Value ElseIf 清單_dgv(9, i).Value <> 0 And 清單_dgv(18, i).Value = False Then 支票_總_tb.Text = Val(支票_總_tb.Text) + 清單_dgv.Rows(i).Cells("支票").Value * 清單_dgv.Rows(i).Cells("匯率").Value End If Next i 損益_總_tb.Text = Val(TextBox10.Text) + Val(零用金_總_tb.Text) + Val(收入_總_tb.Text) - Val(支出_總_tb.Text) If CLng(損益_總_tb.Text) > 0 Then : 損益_總_tb.ForeColor = Color.Blue : Else : 損益_總_tb.ForeColor = Color.Red : End If 支出_總_tb.Text = Format(Val(支出_總_tb.Text), "#,##0") : 損益_總_tb.Text = Format(Val(損益_總_tb.Text), "#,##0") : 收入_總_tb.Text = Format(Val(收入_總_tb.Text), "#,##0") 零用金_總_tb.Text = Format(Val(零用金_總_tb.Text), "#,##0") : TextBox10.Text = Format(Val(TextBox10.Text), "#,##0") : 支票_總_tb.Text = Format(Val(支票_總_tb.Text), "#,##0") End Sub Private Sub ComboBox1下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT 年份 FROM 年份清單 ORDER BY 年份 DESC" CmdSet_For_dr() 年_cb.Items.Clear() While (dr.Read()) : 年_cb.Items.Add(dr("年份")) : End While conn.Close() End Sub Private Sub 營運成本收支單_對帳表_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 收入_單_tb.Text = "0" : 支出_單_tb.Text = "0" : 損益_單_tb.Text = "0" : 零用金_單_tb.Text = "0" : 已兌現支票_單_tb.Text = "0" : 支票_單_tb.Text = "0" ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 會計 = N'0' WHERE (會計 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 出納 = N'0' WHERE (出納 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 現金 = N'0' WHERE (現金 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 備用金 = N'0' WHERE (備用金 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 公帳 = N'0' WHERE (公帳 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 支票 = N'0' WHERE (支票 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 日期 = N'' WHERE (日期 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳 SET 出納日期 = N'' WHERE (出納日期 IS NULL)" : CmdSet_For_dr() : conn.Close() ComboBox1下拉表單資料載入() 年_cb.Text = Year(Today) : 月_ch.SelectedIndex = Month(Today) - 1 KKKJJ3 = "AND (財務控制表.審核日期 LIKE '" & KKK3 & "/" & KKK4 & "%') " End Sub Dim 已超出 As Boolean Private Sub 清單_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 清單_dgv.MouseUp 'If 清單_dgv.SelectedCells.Count = 1 Then : MsgBox(清單_dgv.SelectedCells(0).ColumnIndex & " " & 清單_dgv.SelectedCells(0).RowIndex) : End If If 清單_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If If 清單_dgv.SelectedCells.Count > 0 Then If 清單_dgv.SelectedCells(0).ColumnIndex >= 8 And 清單_dgv.SelectedCells(0).ColumnIndex <= 11 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 清單_dgv.SelectedCells.Count - 1 x += Val(清單_dgv.Rows(清單_dgv.SelectedCells.Item(i).RowIndex).Cells(清單_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0") Else : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") : End If Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") End If End If End Sub Private Sub 全部_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 全部_ch.Click 全部_ch.Checked = True : 含稅_ch.Checked = False : 非稅_ch.Checked = False : Set_清單1() End Sub Private Sub 含稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 含稅_ch.Click 全部_ch.Checked = False : 含稅_ch.Checked = True : 非稅_ch.Checked = False : Set_清單1() End Sub Private Sub 非稅_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 非稅_ch.Click 全部_ch.Checked = False : 含稅_ch.Checked = False : 非稅_ch.Checked = True : Set_清單1() End Sub Private Sub 總金額計算() Dim FFGG As Integer = 0 : Dim GGHH As Integer = 0 : Dim HHJJ As Integer = 0 : Dim JJKK As Integer = 0 : Dim KKLL As Integer = 0 收入_單_tb.Text = "0" : 支出_單_tb.Text = "0" : 損益_單_tb.Text = "0" : 零用金_單_tb.Text = "0" : 已兌現支票_單_tb.Text = "0" : 支票_單_tb.Text = "0" For i As Integer = 0 To 清單_dgv.Rows.Count - 1 If 清單_dgv.Rows(i).Cells("收支單號").Value = 收支單號_tb.Text Then FFGG = Val(FFGG) + 清單_dgv.Rows(i).Cells("現金").Value * 清單_dgv.Rows(i).Cells("匯率").Value GGHH = Val(GGHH) + 清單_dgv.Rows(i).Cells("支出").Value * 清單_dgv.Rows(i).Cells("匯率").Value HHJJ = Val(HHJJ) + 清單_dgv.Rows(i).Cells("零用金").Value * 清單_dgv.Rows(i).Cells("匯率").Value If 清單_dgv(9, i).Value <> 0 And 清單_dgv(18, i).Value = True Then JJKK = Val(JJKK) + 清單_dgv.Rows(i).Cells("支票").Value * 清單_dgv.Rows(i).Cells("匯率").Value ElseIf 清單_dgv(9, i).Value <> 0 And 清單_dgv(18, i).Value = False Then KKLL = Val(KKLL) + 清單_dgv.Rows(i).Cells("支票").Value * 清單_dgv.Rows(i).Cells("匯率").Value End If End If Next i 收入_單_tb.Text = FFGG : 支出_單_tb.Text = GGHH : 零用金_單_tb.Text = HHJJ : 已兌現支票_單_tb.Text = JJKK : 支票_單_tb.Text = KKLL 損益_單_tb.Text = JJKK + HHJJ + FFGG - GGHH If CLng(損益_單_tb.Text) > 0 Then : 損益_單_tb.ForeColor = Color.Blue : Else : 損益_單_tb.ForeColor = Color.Red : End If 收入_單_tb.Text = Strings.Format(Val(收入_單_tb.Text), "#,##0") : 支出_單_tb.Text = Strings.Format(Val(支出_單_tb.Text), "#,##0") 損益_單_tb.Text = Strings.Format(Val(損益_單_tb.Text), "#,##0") : 支票_單_tb.Text = Strings.Format(Val(支票_單_tb.Text), "#,##0") 零用金_單_tb.Text = Strings.Format(Val(零用金_單_tb.Text), "#,##0") : 已兌現支票_單_tb.Text = Strings.Format(Val(已兌現支票_單_tb.Text), "#,##0") End Sub Private Sub 清單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 清單_dgv.CellClick If e.RowIndex = -1 Then : Else 收支單號_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("收支單號").Value : 總金額計算() End If End Sub Private Sub 清單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 清單_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 清單_dgv.Rows.Count - 1 Then Exit Sub Else If 清單_dgv(0, e.RowIndex).Value.ToString <> 清單_dgv(0, e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(清單_dgv.RowHeadersVisible, 清單_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 清單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 清單_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If For i As Integer = 0 To 清單_dgv.Rows.Count - 1 If 清單_dgv(9, i).Value <> 0 And 清單_dgv(18, i).Value = True Then 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink ElseIf 清單_dgv(9, i).Value <> 0 And 清單_dgv(18, i).Value = False Then 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow End If Next End Sub Private Sub 年_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 年_cb.SelectedIndexChanged KKK3 = 年_cb.Text : If KKK3 = "" Or KKK4 = "" Then : Else : KKKJJ3 = "AND (財務控制表.審核日期 LIKE '" & KKK3 & "/" & KKK4 & "%') " : Set_清單1() : End If End Sub Private Sub 月_ch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月_ch.SelectedIndexChanged KKK4 = 月_ch.Text : If KKK3 = "" Or KKK4 = "" Then : Else : KKKJJ3 = "AND (財務控制表.審核日期 LIKE '" & KKK3 & "/" & KKK4 & "%') " : Set_清單1() : End If End Sub Private Sub 只顯示支票資料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 只顯示支票資料_ch.Click If 只顯示支票資料_ch.Checked = False Then : KKKJJ = "" : Set_清單1() : Else : KKKJJ = " AND (財務流水帳.支票數 <> 0) " : Set_清單1() : End If End Sub Private Sub 隱藏申請_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏申請_ch.Click Set_grid() End Sub Private Sub 隱藏作帳_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏作帳_ch.Click Set_grid() End Sub '-----------------------------滑鼠右鍵-------------------------------------------------------------------------------------------------------------------------------------- Private Sub 對帳記錄存檔ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 對帳記錄存檔ToolStripMenuItem.Click For i As Integer = 0 To 清單_dgv.Rows.Count - 1 資料數 = 清單_dgv.Rows.Count : MyMoule.進度條() ConnOpen() SQL1 = "UPDATE 財務流水帳 SET 現金 = '" & 清單_dgv.Rows(i).Cells("現金點交").Value & "', 備用金 = '" & 清單_dgv.Rows(i).Cells("零用金點交").Value & "', 公帳 = '" & 清單_dgv.Rows(i).Cells("支出點交").Value & "', 支票 = '" & 清單_dgv.Rows(i).Cells("支票兌現").Value & "' WHERE 支付單號 LIKE '" & 清單_dgv.Rows(i).Cells("收支單號").Value & "' AND 項次 Like '" & 清單_dgv.Rows(i).Cells("項次").Value & "'" cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() Next MsgBox("存檔完成。") : Set_清單1() : ProgressBar1.Value = 0 : 最終數 = 0 End Sub Private Sub 關鍵字查詢ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 關鍵字查詢ToolStripMenuItem.Click PA = InputBox("請輸入要查詢的關鍵字。") KKKJJ2 = " AND (財務控制表.支付單號 LIKE N'%" & PA & "%' OR 財務控制表.申請人 LIKE N'%" & PA & "%' OR 財務控制表.審核人 LIKE N'%" & PA & "%' OR 財務流水帳.明細 LIKE N'%" & PA & "%' OR 財務控制表.備註 LIKE N'%" & PA & "%' OR 財務流水帳.備註 LIKE N'%" & PA & "%')" : Set_清單1() KKKJJ2 = "" : PA = "" End Sub Private Sub BBBToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BBBToolStripMenuItem.Click MsgBox("待開發。") ' 列印_零用金支付明細.ShowDialog() End Sub Private Sub 清除ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 清除ToolStripMenuItem.Click ComboBox1下拉表單資料載入() 月_ch.Items.Clear() 月_ch.Items.Add("01") : 月_ch.Items.Add("02") : 月_ch.Items.Add("03") : 月_ch.Items.Add("04") : 月_ch.Items.Add("05") : 月_ch.Items.Add("06") 月_ch.Items.Add("07") : 月_ch.Items.Add("08") : 月_ch.Items.Add("09") : 月_ch.Items.Add("10") : 月_ch.Items.Add("11") : 月_ch.Items.Add("12") KKK3 = "" : KKK4 = "" : KKKJJ3 = "" 清單_dgv.DataSource = Nothing : ds.Clear() End Sub Private Sub 重新整理ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新整理ToolStripMenuItem.Click Set_清單1() End Sub End Class