Option Strict Off Public Class 財務_對帳單_ICS 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 清單_dgv.RowTemplate.Height = 35 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 (財務流水帳_ICS.含稅 = 1)" ElseIf 全部_ch.Checked = False And 含稅_ch.Checked = False And 非稅_ch.Checked = True Then SQL2 = " AND (財務流水帳_ICS.含稅 = 0 OR 財務流水帳_ICS.含稅 IS NULL)" End If SQL1 = "SELECT 財務控制表_ICS.支付單號 AS 收支單號, 財務控制表_ICS.申請人, 財務控制表_ICS.申請日期, 財務控制表_ICS.審核人, 財務控制表_ICS.審核日期, 財務流水帳_ICS.項次, 會計科目.會計科目, 財務流水帳_ICS.明細 AS 用途與內容, 財務流水帳_ICS.零用金, 財務流水帳_ICS.支票數 AS 支票, Cast(財務流水帳_ICS.收入 AS money) AS 現金, Cast(財務流水帳_ICS.支出 AS money) AS 支出, 財務流水帳_ICS.備註 AS 票期, 財務流水帳_ICS.會計, 財務流水帳_ICS.日期 AS 作帳日期, 財務流水帳_ICS.出納 AS 點交, 財務流水帳_ICS.出納日期 AS 點交日期, 財務流水帳_ICS.備用金 AS 零用金點交, 財務流水帳_ICS.支票 AS 支票兌現, 財務流水帳_ICS.現金 AS 現金點交, 財務流水帳_ICS.公帳 AS 支出點交, 財務流水帳_ICS.匯率, 財務流水帳_ICS.銀行 AS 幣別 FROM 財務流水帳_ICS INNER JOIN 會計科目 ON 財務流水帳_ICS.類別 = 會計科目.編號 FULL OUTER JOIN 財務控制表_ICS ON 財務流水帳_ICS.支付單號 = 財務控制表_ICS.支付單號 WHERE (財務控制表_ICS.審核人 NOT LIKE N'') AND (會計科目.編號 NOT LIKE N'D%') AND (財務控制表_ICS.審核人 NOT LIKE N'作廢%') " & KKKJJ3 & KKKJJ & KKKJJ2 & SQL2 & " ORDER BY 收支單號 DESC, 財務流水帳_ICS.項次" 列印用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).Visible = False : 清單_dgv.Columns(9).Visible = False : 清單_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 財務_對帳單_ICS_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True Panel2.SendToBack() 收入_單_tb.Text = "0" : 支出_單_tb.Text = "0" : 損益_單_tb.Text = "0" : 零用金_單_tb.Text = "0" : 已兌現支票_單_tb.Text = "0" : 支票_單_tb.Text = "0" ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 會計 = N'0' WHERE (會計 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 出納 = N'0' WHERE (出納 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 現金 = N'0' WHERE (現金 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 備用金 = N'0' WHERE (備用金 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 公帳 = N'0' WHERE (公帳 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 支票 = N'0' WHERE (支票 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 日期 = N'' WHERE (日期 IS NULL)" : CmdSet_For_dr() : conn.Close() ConnOpen() : SQL1 = "UPDATE 財務流水帳_ICS SET 出納日期 = N'' WHERE (出納日期 IS NULL)" : CmdSet_For_dr() : conn.Close() ComboBox1下拉表單資料載入() 年_cb.Text = Year(Today) : 月_ch.SelectedIndex = Month(Today) - 1 KKKJJ3 = "AND (財務控制表_ICS.審核日期 LIKE N'" & 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 (財務控制表_ICS.審核日期 LIKE N'" & 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 (財務控制表_ICS.審核日期 LIKE N'" & 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 (財務流水帳_ICS.支票數 <> 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 財務流水帳_ICS SET 現金 = '" & 清單_dgv.Rows(i).Cells("現金點交").Value & "', 備用金 = '" & 清單_dgv.Rows(i).Cells("零用金點交").Value & "', 公帳 = '" & 清單_dgv.Rows(i).Cells("支出點交").Value & "', 支票 = '" & 清單_dgv.Rows(i).Cells("支票兌現").Value & "' WHERE 支付單號 LIKE N'" & 清單_dgv.Rows(i).Cells("收支單號").Value & "' AND 項次 LIKE N'" & 清單_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 (財務控制表_ICS.支付單號 LIKE N'%" & PA & "%' OR 財務控制表_ICS.申請人 LIKE N'%" & PA & "%' OR 財務控制表_ICS.審核人 LIKE N'%" & PA & "%' OR 財務流水帳_ICS.明細 LIKE N'%" & PA & "%' OR 財務控制表_ICS.備註 LIKE N'%" & PA & "%' OR 財務流水帳_ICS.備註 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