Option Strict Off Imports System.IO Public Class 零用金支付單一覽表 Private ReadOnly ds, ds1, ds2, ds3, ds4 As New DataSet Dim 已超出 As Boolean Private Sub Set_財務單清單() 明細_dgv.DataSource = Nothing : ds.Clear() 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細_dgv.ColumnHeadersHeight = 25 明細_dgv.AllowUserToAddRows = False PA1 = 零用金單號_tb.Text : SQL_財務帳清單() : 列印用SQL2 = SQL1 da.Fill(ds) : 明細_dgv.DataSource = ds.Tables(0) : conn.Close() 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).Width = 80 : 明細_dgv.Columns(2).Width = 342 明細_dgv.Columns(3).Width = 140 : 明細_dgv.Columns(4).Width = 350 明細_dgv.Columns(3).DefaultCellStyle.Format = "#,##0.00" 明細_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter 總金額_tb.Text = "0.00" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 總金額_tb.Text = Val(總金額_tb.Text) + 明細_dgv.Rows(i).Cells("金額").Value Next i 總金額_tb.Text = Format(Val(總金額_tb.Text), "#,##0.00") End Sub Private Sub Set_清單3() 已審核_dgv.DataSource = Nothing : ds3.Clear() 已審核_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 已審核_dgv.ColumnHeadersHeight = 25 已審核_dgv.AllowUserToAddRows = False SQL_已審核清單1() da.Fill(ds3) : 已審核_dgv.DataSource = ds3.Tables(0) : conn.Close() : Set_grid3() End Sub Private Sub Set_grid3() 已審核_dgv.Columns(0).Width = 120 : 已審核_dgv.Columns(1).Width = 114 : 已審核_dgv.Columns(2).Visible = False : 已審核_dgv.Columns(3).Width = 115 : 已審核_dgv.Columns(4).Width = 115 已審核_dgv.Columns(5).Width = 115 : 已審核_dgv.Columns(6).Width = 115 : 已審核_dgv.Columns(7).Width = 115 : 已審核_dgv.Columns(8).Visible = False 已審核_dgv.Columns(9).Visible = False : 已審核_dgv.Columns(10).Width = 113 For i As Integer = 0 To 已審核_dgv.Rows.Count - 1 If 已審核_dgv.Rows(i).Cells("已出納").Value Is DBNull.Value Then 已審核_dgv.Rows(i).Cells("已出納").Value = False End If Next End Sub Private Sub ComboBox1下拉表單資料載入() SQL_帳本下拉清單() 帳本名稱_cb.Items.Clear() : 帳本編號_cb.Items.Clear() : While (dr.Read()) : 帳本名稱_cb.Items.Add(dr("帳本名稱")) : 帳本編號_cb.Items.Add(dr("編號")) : End While : conn.Close() End Sub Private Sub 零用金支付單列印_Load(sender As Object, e As EventArgs) Handles MyBase.Load WINPROFIT_ERP_SYS.WindowState = 2 : Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 總經理已核准的零用金支付單_tb.Visible = False : 帳本編號_cb.Visible = False ComboBox1下拉表單資料載入() : 帳本名稱_cb.SelectedIndex = 0 : PA19 = 帳本編號_cb.Text : Set_清單3() End Sub Private Sub DataGridView4_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 已審核_dgv.CellClick If e.RowIndex = -1 Then : Else 零用金單號_tb.Text = 已審核_dgv(0, e.RowIndex).Value.ToString : 申請部門_tb.Text = 已審核_dgv(1, e.RowIndex).Value.ToString : 申請人_tb.Text = 已審核_dgv(2, e.RowIndex).Value.ToString 審核_tb.Text = 已審核_dgv(4, e.RowIndex).Value.ToString : 核准_tb.Text = 已審核_dgv(6, e.RowIndex).Value.ToString : 驗證碼_tb.Text = 已審核_dgv(9, e.RowIndex).Value.ToString 總經理已核准的零用金支付單_tb.Text = 已審核_dgv(8, e.RowIndex).Value.ToString : 打勾_ch.Checked = 已審核_dgv(10, e.RowIndex).Value DateTimePicker1.Value = 已審核_dgv(3, e.RowIndex).Value.ToString : DateTimePicker2.Value = 已審核_dgv(5, e.RowIndex).Value.ToString DateTimePicker3.Value = 已審核_dgv(7, e.RowIndex).Value.ToString 列印用SQL = 已審核_dgv(0, e.RowIndex).Value.ToString 簽核圖片編號 = 總經理已核准的零用金支付單_tb.Text Set_財務單清單() PA = 已審核_dgv(8, e.RowIndex).Value.ToString SQL_簽名檔管理3() While dr.Read() = True Dim bytes As Byte() = New Byte(-1) {} bytes = DirectCast(dr.Item("簽名檔圖片"), Byte()) Dim oStream As New MemoryStream(bytes) PictureBox1.Image = Bitmap.FromStream(oStream) End While conn.Close() PictureBox1.SizeMode = 4 End If End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click If 列印用SQL2 = "" Then MsgBox("沒有選擇零用金支付單") Else 列印_零用金支付單.ShowDialog() : 列印用SQL = "" : 列印用SQL2 = "" End If End Sub Private Sub Set_日期格式轉換() DTP = Format(Today(), "yyyy/MM/dd") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 出納確認_bt.Click Set_日期格式轉換() For i As Integer = 0 To 已審核_dgv.Rows.Count - 1 資料數 = 已審核_dgv.Rows.Count : MyModule1.進度條() PA = 已審核_dgv.Rows(i).Cells("已出納").Value : PA1 = 已審核_dgv.Rows(i).Cells("流水號").Value SQL_修改零用金支付明細2() : conn.Close() SQL_修改零用金支付表3() : conn.Close() Next : WINPROFIT_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 MsgBox("存檔完成") End Sub Private Sub 帳本名稱_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 帳本名稱_cb.SelectedIndexChanged 帳本編號_cb.SelectedIndex = 帳本名稱_cb.SelectedIndex : PA19 = 帳本編號_cb.Text : Set_清單3() 審核_tb.Text = "" : 核准_tb.Text = "" : 驗證碼_tb.Text = "" : 總經理已核准的零用金支付單_tb.Text = "" 零用金單號_tb.Text = "" : 申請部門_tb.Text = "" : 申請人_tb.Text = "" : Set_財務單清單() End Sub Private Sub 帳本編號_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 帳本編號_cb.SelectedIndexChanged 帳本名稱_cb.SelectedIndex = 帳本編號_cb.SelectedIndex : PA19 = 帳本編號_cb.Text : Set_清單3() 審核_tb.Text = "" : 核准_tb.Text = "" : 驗證碼_tb.Text = "" : 總經理已核准的零用金支付單_tb.Text = "" 零用金單號_tb.Text = "" : 申請部門_tb.Text = "" : 申請人_tb.Text = "" : Set_財務單清單() End Sub Private Sub 明細_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 明細_dgv.MouseUp If 明細_dgv.SelectedCells.Count = 1 Then 已超出 = False End If If 明細_dgv.SelectedCells.Count > 0 Then '設定滑鼠點擊DGV時候的範圍,超出範圍時有可能不是數字所以不計算 If 明細_dgv.SelectedCells(0).ColumnIndex = 3 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1 '明細_dgv.SelectedCells.Item(i).ColumnIndex + 8 是因為該DGV顯示項與計算像剛好差8格,使用時要注意可直接計算的不需要加數字。 x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i '將計算好的資料放置到指定的控件中 WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0.00") Else WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0.00") End If Else 已超出 = True WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0.00") End If End If End Sub End Class