Option Strict Off Public Class 財務_收支單申請_ICS ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet Private DTP As String Private DTP1 As String Private WWEE As String Private 新流水1 As String Private 新項次 As String Private ReadOnly 新流水2 As String Dim NUM1, NUM2 As Integer : Dim 匯率1 As Double Private Sub Set_清單1() 營運收支單_dgv.DataSource = Nothing : ds1.Clear() 營運收支單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 營運收支單_dgv.ColumnHeadersHeight = 25 營運收支單_dgv.AllowUserToAddRows = False ConnOpen() If 未核准的收支單_rb.Checked = True And 作廢的收支單_rb.Checked = False And 已核准的收支單_rb.Checked = False Then WWEE = "WHERE (審核人 LIKE N'') " ElseIf 未核准的收支單_rb.Checked = False And 作廢的收支單_rb.Checked = True And 已核准的收支單_rb.Checked = False Then WWEE = "WHERE (審核人 LIKE N'作廢%') " ElseIf 未核准的收支單_rb.Checked = False And 作廢的收支單_rb.Checked = False And 已核准的收支單_rb.Checked = True Then WWEE = "WHERE (審核人 NOT LIKE N'作廢%') AND (審核人 NOT LIKE N'') " End If SQL1 = "SELECT 支付單號 AS 收支單號, 申請日期, 審核日期, 申請人 FROM 財務控制表_ICS " & WWEE & " ORDER BY 申請日期 DESC" CmdSet_For_DGV() : da.Fill(ds1) : 營運收支單_dgv.DataSource = ds1.Tables(0) : conn.Close() 營運收支單_dgv.Columns(0).FillWeight = 160 : 營運收支單_dgv.Columns(1).FillWeight = 100 : 營運收支單_dgv.Columns(2).FillWeight = 100 : 營運收支單_dgv.Columns(3).Visible = False End Sub Private Sub Set_費用清單() 明細表_dgv.DataSource = Nothing : ds.Clear() 明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細表_dgv.ColumnHeadersHeight = 25 明細表_dgv.AllowUserToAddRows = False 明細表_dgv.RowTemplate.Height = 35 ConnOpen() SQL1 = "SELECT 財務流水帳_ICS.支付單號, 財務流水帳_ICS.項次, 會計科目.會計科目, 財務流水帳_ICS.明細 AS 用途, 財務流水帳_ICS.零用金, 財務流水帳_ICS.支票數 AS 支票, Cast(財務流水帳_ICS.收入 AS money) AS 收入, Cast(財務流水帳_ICS.支出 AS money) AS 支出, 財務流水帳_ICS.備註 AS 票期, 財務流水帳_ICS.匯率, 財務流水帳_ICS.銀行 AS 幣別, 財務流水帳_ICS.類別, 財務流水帳_ICS.流水號, 財務流水帳_ICS.含稅 FROM 財務流水帳_ICS INNER JOIN 會計科目 ON 財務流水帳_ICS.類別 = 會計科目.編號 WHERE (財務流水帳_ICS.支付單號 LIKE N'" & 收支單號_tb.Text & "') ORDER BY 財務流水帳_ICS.項次" CmdSet_For_DGV() : da.Fill(ds) : 明細表_dgv.DataSource = ds.Tables(0) : conn.Close() 明細表_dgv.Columns(0).Visible = False : 明細表_dgv.Columns(1).FillWeight = 80 : 明細表_dgv.Columns(2).FillWeight = 250 : 明細表_dgv.Columns(3).FillWeight = 400 明細表_dgv.Columns(4).Visible = False : 明細表_dgv.Columns(5).Visible = False : 明細表_dgv.Columns(6).FillWeight = 165 : 明細表_dgv.Columns(7).FillWeight = 165 明細表_dgv.Columns(8).FillWeight = 150 : 明細表_dgv.Columns(9).FillWeight = 130 : 明細表_dgv.Columns(10).FillWeight = 140 : 明細表_dgv.Columns(11).Visible = False 明細表_dgv.Columns(12).Visible = False : 明細表_dgv.Columns(13).FillWeight = 80 明細表_dgv.Columns(1).ReadOnly = True : 明細表_dgv.Columns(2).ReadOnly = True : 明細表_dgv.Columns(9).ReadOnly = True : 明細表_dgv.Columns(10).ReadOnly = True 明細表_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 明細表_dgv.Columns(5).DefaultCellStyle.Format = "#,##0.00" : 明細表_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" 明細表_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" : 明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.00" 明細表_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細表_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細表_dgv.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細表_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細表_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細表_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細表_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細表_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細表_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter 收入_tb.Text = "0.00" : 支出_tb.Text = "0.00" : 合計_tb.Text = "0.00" : 零用金_tb.Text = "0" : 支票_tb.Text = "0.00" For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 收入_tb.Text = Val(收入_tb.Text) + Val(明細表_dgv.Rows(i).Cells("收入").Value) * 明細表_dgv.Rows(i).Cells("匯率").Value 支出_tb.Text = Val(支出_tb.Text) + Val(明細表_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 Next i 合計_tb.Text = Val(零用金_tb.Text) + Val(收入_tb.Text) - Val(支出_tb.Text) If Val(合計_tb.Text) > 0 Then : 合計_tb.ForeColor = Color.Blue : Else : 合計_tb.ForeColor = Color.Red : End If 收入_tb.Text = Format(Val(收入_tb.Text), "#,##0.00") : 支出_tb.Text = Format(Val(支出_tb.Text), "#,##0.00") : 合計_tb.Text = Format(Val(合計_tb.Text), "#,##0.00") 零用金_tb.Text = Format(Val(零用金_tb.Text), "#,##0.00") : 支票_tb.Text = Format(Val(支票_tb.Text), "#,##0.00") End Sub Private Sub ComboBox1下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT 會計科目, 編號 FROM 會計科目 WHERE (LEFT(編號, 7) LIKE N'" & 科目2_號_cb.Text & "') AND (停用 = 0) AND (統制科目 = 0) AND (顯示_ISC = 1) ORDER BY 編號" CmdSet_For_dr() : 科目3_名_cb.Items.Clear() : 科目3_號_cb.Items.Clear() While (dr.Read()) : 科目3_名_cb.Items.Add(dr("會計科目")) : 科目3_號_cb.Items.Add(dr("編號")) : End While : conn.Close() If 科目3_名_cb.Items.Count <> 0 Then : 科目3_名_cb.SelectedIndex = 0 : End If End Sub Private Sub ComboBox2下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT 第一階, LEFT(編號, 4) AS 編號 FROM 會計科目 WHERE (停用 = 0) AND (顯示_ISC = 1) GROUP BY 第一階, LEFT(編號, 4) ORDER BY 編號" CmdSet_For_dr() : 科目1_名_cb.Items.Clear() : 科目1_號_cb.Items.Clear() : 科目1_名_cb.Text = "" : 科目1_號_cb.Text = "" While (dr.Read()) : 科目1_名_cb.Items.Add(dr("第一階")) : 科目1_號_cb.Items.Add(dr("編號")) : End While : conn.Close() End Sub Private Sub ComboBox3下拉表單資料載入() conn.Close() ConnOpen() SQL1 = "SELECT LEFT(編號, 7) AS 編號, 第二階, 層級 FROM 會計科目 WHERE (LEFT(編號, 4) LIKE N'" & 科目1_號_cb.Text & "') AND (層級 NOT LIKE N'3') AND (停用 = 0) AND (顯示_ISC = 1) GROUP BY LEFT(編號, 7), 第二階, 層級 ORDER BY 編號" CmdSet_For_dr() : 科目2_名_cb.Items.Clear() : 科目2_號_cb.Items.Clear() : 科目2_名_cb.Text = "" : 科目2_號_cb.Text = "" While (dr.Read()) : 科目2_名_cb.Items.Add(dr("第二階")) : 科目2_號_cb.Items.Add(dr("編號")) : End While : conn.Close() End Sub Private Sub 匯率() PA48 = Strings.Left(Strings.Format(日期_dtp.Value, "yyyyMMdd"), 4) : PA49 = Strings.Mid(Strings.Format(日期_dtp.Value, "yyyyMMdd"), 5, 2) SQL_匯率查詢() If dr.Read() Then 人民幣匯率_tb.Text = dr("中心匯率").ToString : 美金匯率_tb.Text = dr("美金匯率").ToString : 印尼匯率_tb.Text = dr("印尼匯率").ToString : conn.Close() : dr.Close() Else conn.Close() : dr.Close() : 匯率修改.Close() : 匯率修改.Show() : 匯率修改.BringToFront() End If End Sub Private Sub 財務_收支單申請_ISC_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 未核准的收支單_rb.Checked = True : DateTimePicker2.Visible = False : 複製單據開單ToolStripMenuItem.Enabled = False : 科目3_號_cb.Visible = False 營運收支單_dgv.Visible = True : 視窗1_pl.Visible = False : Panel2.SendToBack() : Set_清單1() : ComboBox2下拉表單資料載入() 匯率() End Sub Private Sub 明細表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 明細表_dgv.CellEndEdit 收入_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 收入_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 支票_tb.Text = Val(支票_tb.Text) + 明細表_dgv.Rows(i).Cells("支票").Value * 明細表_dgv.Rows(i).Cells("匯率").Value Next i 合計_tb.Text = Val(零用金_tb.Text) + Val(收入_tb.Text) - Val(支出_tb.Text) If Val(合計_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") : 支票_tb.Text = Format(Val(支票_tb.Text), "#,##0") Dim EU As String EU = 明細表_dgv("票期", e.RowIndex).Value.ToString If EU = "" Then Else DateTimePicker2.Text = EU 明細表_dgv.Rows(e.RowIndex).Cells("票期").Value = Format(DateTimePicker2.Value, "yyyy/MM/dd") End If End Sub Private Sub 營運收支單_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 營運收支單_dgv.CellClick If e.RowIndex = -1 Then : Else 收支單號_tb.Text = 營運收支單_dgv(0, e.RowIndex).Value.ToString : 日期_dtp.Value = 營運收支單_dgv(1, e.RowIndex).Value.ToString : Set_費用清單() 申請人_tb.Text = 營運收支單_dgv(3, e.RowIndex).Value.ToString End If End Sub Private Sub 明細表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 明細表_dgv.CellClick If e.RowIndex = -1 Then : Else If 明細表_dgv.SelectedCells.Count = 1 Then If 明細表_dgv.SelectedCells(0).ColumnIndex = 4 Then 窗口表頭_lb.Text = "零用金-編輯指定" : 窗口說明1_lb.Text = "零用金" : NUM2 = 明細表_dgv.SelectedCells(0).RowIndex If 視窗1_pl.Visible = False Then : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If ElseIf 明細表_dgv.SelectedCells(0).ColumnIndex = 5 Then 窗口表頭_lb.Text = "支票-編輯指定" : 窗口說明1_lb.Text = "支票" : NUM2 = 明細表_dgv.SelectedCells(0).RowIndex If 視窗1_pl.Visible = False Then : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If End If End If 項次_tb.Text = 明細表_dgv(1, e.RowIndex).Value.ToString : 幣別_cb.Text = 明細表_dgv("幣別", e.RowIndex).Value.ToString 科目1_號_cb.Text = Strings.Left(明細表_dgv("類別", e.RowIndex).Value.ToString, 4) : 科目2_號_cb.Text = Strings.Left(明細表_dgv("類別", e.RowIndex).Value.ToString, 7) 科目3_號_cb.Text = 明細表_dgv("類別", e.RowIndex).Value.ToString End If End Sub Private Sub ComboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目1_名_cb.TextChanged 科目1_號_cb.SelectedIndex = 科目1_名_cb.SelectedIndex : 關鍵字查詢會計科目_tb.Text = "" : ComboBox3下拉表單資料載入() : ComboBox1下拉表單資料載入() End Sub Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目1_號_cb.TextChanged 科目1_名_cb.SelectedIndex = 科目1_號_cb.SelectedIndex : ComboBox3下拉表單資料載入() : ComboBox1下拉表單資料載入() End Sub Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目2_名_cb.TextChanged 科目2_號_cb.SelectedIndex = 科目2_名_cb.SelectedIndex : ComboBox1下拉表單資料載入() End Sub Private Sub ComboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目2_號_cb.TextChanged 科目2_名_cb.SelectedIndex = 科目2_號_cb.SelectedIndex : ComboBox1下拉表單資料載入() End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目3_名_cb.SelectedIndexChanged 科目3_號_cb.SelectedIndex = 科目3_名_cb.SelectedIndex End Sub Private Sub ComboBox6_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 科目3_號_cb.SelectedIndexChanged 科目3_名_cb.SelectedIndex = 科目3_號_cb.SelectedIndex End Sub Private Sub 關鍵字查詢會計科目_tb_TextChanged(sender As Object, e As EventArgs) Handles 關鍵字查詢會計科目_tb.TextChanged conn.Close() ConnOpen() SQL1 = "SELECT 會計科目, 編號 FROM 會計科目 WHERE (會計科目 LIKE N'%" & 關鍵字查詢會計科目_tb.Text & "%') AND (停用 = 0) AND (統制科目 = 0) ORDER BY 編號" CmdSet_For_dr() : 科目3_名_cb.Items.Clear() : 科目3_號_cb.Items.Clear() While (dr.Read()) : 科目3_名_cb.Items.Add(dr("會計科目")) : 科目3_號_cb.Items.Add(dr("編號")) : End While : conn.Close() If 科目3_名_cb.Items.Count <> 0 Then : 科目3_名_cb.SelectedIndex = 0 : End If End Sub Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick If Label62.Visible = True Then : Label62.Visible = False : Else : Label62.Visible = True : End If End Sub Private Sub Set_切換格式() 明細表_dgv.DataSource = Nothing : ds.Clear() : 收支單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = "" : 收入_tb.Text = "" : 支出_tb.Text = "" : 合計_tb.Text = "" 零用金_tb.Text = "" : 支票_tb.Text = "" : ComboBox1下拉表單資料載入() : Set_清單1() End Sub Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles 未核准的收支單_rb.Click 未核准的收支單_rb.Checked = True : 作廢的收支單_rb.Checked = False : 已核准的收支單_rb.Checked = False 申請完成ToolStripMenuItem.Enabled = True : 複製單據開單ToolStripMenuItem.Enabled = False 開立零用金支付單ToolStripMenuItem.Enabled = True : 申請_bt.Enabled = True : 新增一筆資料ToolStripMenuItem.Enabled = True 刪除支付單中選中的資料ToolStripMenuItem.Enabled = True : 刪除選中的零用金支付單ToolStripMenuItem.Enabled = True : Set_切換格式() End Sub Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles 作廢的收支單_rb.Click 未核准的收支單_rb.Checked = False : 作廢的收支單_rb.Checked = True : 已核准的收支單_rb.Checked = False 申請完成ToolStripMenuItem.Enabled = False : 複製單據開單ToolStripMenuItem.Enabled = False 開立零用金支付單ToolStripMenuItem.Enabled = False : 申請_bt.Enabled = False : 新增一筆資料ToolStripMenuItem.Enabled = False 刪除支付單中選中的資料ToolStripMenuItem.Enabled = False : 刪除選中的零用金支付單ToolStripMenuItem.Enabled = False : Set_切換格式() End Sub Private Sub RadioButton3_CheckedChanged(sender As Object, e As EventArgs) Handles 已核准的收支單_rb.Click If CC(28) = False Then 未核准的收支單_rb.Checked = False : 作廢的收支單_rb.Checked = False : 已核准的收支單_rb.Checked = True 申請完成ToolStripMenuItem.Enabled = False : 複製單據開單ToolStripMenuItem.Enabled = True 開立零用金支付單ToolStripMenuItem.Enabled = False : 申請_bt.Enabled = False : 新增一筆資料ToolStripMenuItem.Enabled = False 刪除支付單中選中的資料ToolStripMenuItem.Enabled = False : 刪除選中的零用金支付單ToolStripMenuItem.Enabled = False : Set_切換格式() Else 未核准的收支單_rb.Checked = False : 作廢的收支單_rb.Checked = False : 已核准的收支單_rb.Checked = True 申請完成ToolStripMenuItem.Enabled = True : 複製單據開單ToolStripMenuItem.Enabled = True 開立零用金支付單ToolStripMenuItem.Enabled = True : 申請_bt.Enabled = True : 新增一筆資料ToolStripMenuItem.Enabled = True 刪除支付單中選中的資料ToolStripMenuItem.Enabled = True : 刪除選中的零用金支付單ToolStripMenuItem.Enabled = True : Set_切換格式() End If End Sub Private Sub 存檔() For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 ConnOpen() SQL1 = "UPDATE 財務流水帳_ICS SET 明細 = N'" & 明細表_dgv.Rows(i).Cells("用途").Value & "', 支出 = N'" & 明細表_dgv.Rows(i).Cells("支出").Value & "', 備註 = N'" & 明細表_dgv.Rows(i).Cells("票期").Value & "' , 類別 = N'" & 明細表_dgv.Rows(i).Cells("類別").Value & "', 收入 = N'" & 明細表_dgv.Rows(i).Cells("收入").Value & "', 零用金 = N'" & 明細表_dgv.Rows(i).Cells("零用金").Value & "', 支票數 = N'" & 明細表_dgv.Rows(i).Cells("支票").Value & "', 匯率 = N'" & 明細表_dgv.Rows(i).Cells("匯率").Value & "', 含稅 = N'" & 明細表_dgv.Rows(i).Cells("含稅").Value & "' WHERE (支付單號 LIKE N'" & 收支單號_tb.Text & "' AND 項次 LIKE N'" & 明細表_dgv.Rows(i).Cells("項次").Value & "')" cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close() Next End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 申請_bt.Click Timer1.Enabled = False : Label62.Visible = False 開立零用金支付單ToolStripMenuItem.Enabled = True : 未核准的收支單_rb.Enabled = True : 作廢的收支單_rb.Enabled = True 營運收支單_dgv.Enabled = True : 已核准的收支單_rb.Enabled = True : 存檔() : Set_清單1() : MsgBox("申請完成,請通知主管審核。") End Sub Private Sub Set_日期格式轉換() If 補單_ch.Checked = False Then DTP = Format(Today(), "yyyy/MM/dd") : DTP1 = Format(Today(), "yyyyMMdd") Else DTP1 = Format(日期_dtp.Value, "yyyyMMdd") : DTP = Format(日期_dtp.Value, "yyyy/MM/dd") End If End Sub Private Sub Set_流水號() conn.Close() : dr.Close() Dim NUM1 As Integer For NUM1 = 0 To 99 Dim d As String : Dim f As String : Dim g As Integer = 1 If Month(Now) < 10 Then : d = "0" & CStr(Month(Now)) Else : d = CStr(Month(Now)) End If If Now.Day() < 10 Then : f = "0" & CStr(Now.Day()) Else : f = CStr(Now.Day()) End If If NUM1 < 10 Then : 新流水1 = "B" & Microsoft.VisualBasic.Right(CStr(Year(Now)), 2) & d & f & "0" & NUM1 Else : 新流水1 = "B" & Microsoft.VisualBasic.Right(CStr(Year(Now)), 2) & d & f & NUM1 End If ConnOpen() SQL1 = "SELECT 流水號 FROM 財務流水帳_ICS WHERE (流水號 ='" & 新流水1 & "')" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then : conn.Close() : Else : conn.Close() : NUM1 = 99 : End If Next End Sub Private Sub 開立零用金支付單() Dim NUM1 As Integer : Timer1.Enabled = True Set_日期格式轉換() For i As Integer = 1 To 999 NUM1 = 0 + i If NUM1 < 10 Then : 收支單號_tb.Text = "OE-" & DTP1 & "-00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 收支單號_tb.Text = "OE-" & DTP1 & "-0" & NUM1 ElseIf NUM1 > 99 Then : 收支單號_tb.Text = "OE-" & DTP1 & "-" & NUM1 End If conn.Close() ConnOpen() SQL1 = "SELECT TOP (1) 支付單號 FROM 財務控制表_ICS WHERE ( 支付單號 LIKE N'" & 收支單號_tb.Text & "')" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close() Next ConnOpen() SQL1 = "INSERT INTO 財務控制表_ICS (支付單號, 申請人, 申請日期, 審核人, 審核日期, 會計, 作帳日期, 出納, 出納日期, 備註, 公司編號) " & "VALUES (N'" & 收支單號_tb.Text & "', N'" & gUserName & "', N'" & DTP & "', N'', N'', N'', N'', N'', N'', N'', N'工巧明')" CmdSet_For_dr() 申請人_tb.Text = gUserName End Sub Private Sub 複製歷史單據重新開立_bt_Click(sender As Object, e As EventArgs) Handles 複製歷史單據重新開立_bt.Click 開立零用金支付單() : 開立零用金支付單ToolStripMenuItem.Enabled = False : 未核准的收支單_rb.Enabled = False : 作廢的收支單_rb.Enabled = False 已核准的收支單_rb.Enabled = False 營運收支單_dgv.Enabled = False : 未核准的收支單_rb.Checked = True : 作廢的收支單_rb.Checked = False : 已核准的收支單_rb.Checked = False 申請完成ToolStripMenuItem.Enabled = True 複製單據開單ToolStripMenuItem.Enabled = False : 開立零用金支付單ToolStripMenuItem.Enabled = True : 申請_bt.Enabled = True : 新增一筆資料ToolStripMenuItem.Enabled = True 刪除支付單中選中的資料ToolStripMenuItem.Enabled = True : 刪除選中的零用金支付單ToolStripMenuItem.Enabled = True Set_清單1() For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 Set_流水號() ConnOpen() SQL1 = "INSERT INTO 財務流水帳_ICS (流水號, 銀行, 日期, 類別, 收入, 支出, 明細, 人員, 支付單號, 項次, 會計, 出納, 現金, 備用金, 公帳, 支票, 出納日期, 零用金, 支票數, 匯率, 備註) VALUES (N'" & 新流水1 & "', N'" & 明細表_dgv.Rows(i).Cells("幣別").Value & "'', N'" & DTP & "', N'" & 明細表_dgv.Rows(i).Cells("類別").Value & "', N'" & 明細表_dgv.Rows(i).Cells("收入").Value & "', N'" & 明細表_dgv.Rows(i).Cells("支出").Value & "', N'" & 明細表_dgv.Rows(i).Cells("用途").Value & "', N'', N'" & gUserName & "', N'" & 收支單號_tb.Text & "', N'" & 明細表_dgv.Rows(i).Cells("項次").Value & "', N'1', N'0', N'0', N'0', N'0', N'0', N'" & DTP & "', N'" & 明細表_dgv.Rows(i).Cells("零用金").Value & "', N'" & 明細表_dgv.Rows(i).Cells("支票").Value & "', N'" & 明細表_dgv.Rows(i).Cells("匯率").Value & "', N'" & 明細表_dgv.Rows(i).Cells("票期").Value & "')" CmdSet_For_dr() Next Set_費用清單() : MsgBox("複製單據開立完成。") End Sub Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles 日期_dtp.ValueChanged 匯率() End Sub Private Sub 開立營運成本收支單_bt_Click(sender As Object, e As EventArgs) Handles 開立營運成本收支單_bt.Click 開立零用金支付單() : 開立零用金支付單ToolStripMenuItem.Enabled = False 未核准的收支單_rb.Enabled = False : 作廢的收支單_rb.Enabled = False 已核准的收支單_rb.Enabled = False : 營運收支單_dgv.Enabled = False 明細表_dgv.DataSource = Nothing : ds.Clear() : conn.Close() Set_清單1() End Sub Private Sub 刪除選中的營運成本收支單_bt_Click(sender As Object, e As EventArgs) Handles 刪除選中的營運成本收支單_bt.Click Dim aa As MsgBoxResult aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then ConnOpen() SQL1 = "DELETE FROM 財務控制表_ICS WHERE (支付單號 LIKE N'" & 收支單號_tb.Text & "')" cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close() ConnOpen() SQL1 = "DELETE FROM 財務流水帳_ICS WHERE (支付單號 LIKE N'" & 收支單號_tb.Text & "')" cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close() 收支單號_tb.Text = "" : 申請人_tb.Text = "" : 項次_tb.Text = "" 明細表_dgv.DataSource = Nothing : ds.Clear() Set_清單1() End If End Sub Private Sub 收支單中新增一筆空白資料_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料_bt.Click If 科目3_號_cb.Text = "" Or 幣別_cb.Text = "" Then MsgBox("沒有選擇會計科目或幣別。") Else If 收支單號_tb.Text = "" Then 開立零用金支付單() End If Set_日期格式轉換() : Set_流水號() 存檔() ConnOpen() SQL1 = "SELECT TOP(1) 項次 FROM 財務流水帳_ICS WHERE 支付單號 LIKE N'" & 收支單號_tb.Text & "' ORDER BY 項次 DESC" cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader If dr.Read() Then : 新項次 = dr("項次") : Else : 新項次 = "00" : End If : conn.Close() NUM1 = Double.Parse(新項次) + 1 If NUM1 < 10 Then : 新項次 = "0" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 End If ConnOpen() If 幣別_cb.Text = "台幣現金" Then : 匯率1 = 1 / CLng(印尼匯率_tb.Text) ElseIf 幣別_cb.Text = "人民幣現金" Then : 匯率1 = CLng(人民幣匯率_tb.Text) / CLng(印尼匯率_tb.Text) ElseIf 幣別_cb.Text = "美金" Then : 匯率1 = CLng(美金匯率_tb.Text) / CLng(印尼匯率_tb.Text) ElseIf 幣別_cb.Text = "印尼盾" Then : 匯率1 = 1 End If SQL1 = "INSERT INTO 財務流水帳_ICS (流水號, 銀行, 日期, 類別, 收入, 支出, 明細, 人員, 支付單號, 項次, 會計, 出納, 現金, 備用金, 公帳, 支票, 出納日期, 零用金, 支票數, 匯率, 備註) " & "VALUES (N'" & 新流水1 & "', N'" & 幣別_cb.Text & "', N'" & DTP & "', N'" & 科目3_號_cb.Text & "', N'0', N'0', N'', N'" & gUserName & "', N'" & 收支單號_tb.Text & "', N'" & 新項次 & "', N'0', N'0', N'0', N'0', N'0', N'0', N'" & DTP & "', N'0', N'0', N'" & 匯率1 & "', N'')" CmdSet_For_dr() Set_費用清單() End If End Sub Private Sub 刪除選中的一筆資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料_bt.Click If 項次_tb.Text = "" Then MsgBox("未選擇需要刪除的資料。") Else 存檔() ConnOpen() SQL1 = "DELETE FROM 財務流水帳_ICS WHERE (支付單號 LIKE N'" & 收支單號_tb.Text & "' AND 項次 LIKE N'" & 項次_tb.Text & "')" cmd.CommandText = SQL1 : cmd.Connection = conn : cmd.ExecuteNonQuery() : conn.Close() Set_費用清單() Dim NUM1 As Integer = 0 For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 NUM1 += 1 : If NUM1 < 10 Then : 新項次 = "0" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 新項次 = NUM1 : End If ConnOpen() SQL1 = "UPDATE 財務流水帳_ICS SET 項次 = N'" & 新項次 & "' WHERE (支付單號 LIKE N'" & 收支單號_tb.Text & "' AND 項次 LIKE N'" & 明細表_dgv.Rows(i).Cells("項次").Value & "')" cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() conn.Close() Next Set_費用清單() End If End Sub '----------------------滑鼠右鍵-------------------------------------------------------------------------------------------------------------------------------------------------------------------- Private Sub 重新讀取ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新讀取ToolStripMenuItem.Click Set_清單1() End Sub Private Sub 開立零用金支付單ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 開立零用金支付單ToolStripMenuItem.Click 開立營運成本收支單_bt.PerformClick() End Sub Private Sub 刪除選中的零用金支付單ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 刪除選中的零用金支付單ToolStripMenuItem.Click 刪除選中的營運成本收支單_bt.PerformClick() End Sub Private Sub 刪除支付單中選中的資料ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 刪除支付單中選中的資料ToolStripMenuItem.Click 刪除選中的一筆資料_bt.PerformClick() End Sub Private Sub 新增一筆資料ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 新增一筆資料ToolStripMenuItem.Click 收支單中新增一筆空白資料_bt.PerformClick() End Sub Private Sub 申請完成ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 申請完成ToolStripMenuItem.Click 申請_bt.PerformClick() End Sub Private Sub 複製單據開單ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 複製單據開單ToolStripMenuItem.Click 複製歷史單據重新開立_bt.PerformClick() End Sub '----------------------自創視窗滑鼠拖曳功能--------------------------------------------------------------------------------------------------------- Dim OldX, OldY As Long : Dim drag As Boolean Private Sub 收入_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 收入_cb.Click If 收入_cb.Checked = True Then 收入_cb.Checked = True : 支出_cb.Checked = False Else 收入_cb.Checked = False : 支出_cb.Checked = True End If End Sub Private Sub 支出_cb_CheckedChanged(sender As Object, e As EventArgs) Handles 支出_cb.Click If 支出_cb.Checked = True Then 收入_cb.Checked = False : 支出_cb.Checked = True Else 收入_cb.Checked = True : 支出_cb.Checked = False End If End Sub Private Sub 確定_bt_Click(sender As Object, e As EventArgs) Handles 確定_bt.Click If 收入_cb.Checked = False And 支出_cb.Checked = False Then MsgBox("請先選擇這筆資料是收入還是支出!!!") Else If 收入_cb.Checked = True Then 明細表_dgv.Rows(NUM2).Cells("收入").Value = 指定_ndp.Value If 窗口說明1_lb.Text = "支票" Then 明細表_dgv.Rows(NUM2).Cells("支票").Value = 指定_ndp.Value ElseIf 窗口說明1_lb.Text = "零用金" Then 明細表_dgv.Rows(NUM2).Cells("零用金").Value = 指定_ndp.Value End If Else 明細表_dgv.Rows(NUM2).Cells("支出").Value = 指定_ndp.Value If 窗口說明1_lb.Text = "支票" Then 明細表_dgv.Rows(NUM2).Cells("支票").Value = 指定_ndp.Value ElseIf 窗口說明1_lb.Text = "零用金" Then 明細表_dgv.Rows(NUM2).Cells("零用金").Value = 指定_ndp.Value End If End If : 指定_ndp.Value = 0 : 收入_cb.Checked = False : 支出_cb.Checked = False : Cancel_bt.PerformClick() End If End Sub Private Sub Cancel_bt_Click(sender As Object, e As EventArgs) Handles Cancel_bt.Click If 視窗1_pl.Visible = False Then : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If End Sub Private Sub 物料群組1_Panel_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseDown If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If End Sub Private Sub 物料群組1_Panel_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseMove If drag Then : 視窗1_pl.Left = 視窗1_pl.Left + e.X - OldX : 視窗1_pl.Top = 視窗1_pl.Top + e.Y - OldY : End If End Sub Private Sub 物料群組1_Panel_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseUp drag = False End Sub End Class