Option Strict Off Public Class 人事請假申請 Private ReadOnly ds, ds1 As New DataSet Private Sub Set_考勤明細() 日期_dgv.DataSource = Nothing : ds.Clear() 日期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 日期_dgv.ColumnHeadersHeight = 25 日期_dgv.AllowUserToAddRows = False SQL_日期查詢() da.Fill(ds) : 日期_dgv.DataSource = ds.Tables(0) : conn.Close() 日期_dgv.Columns(0).FillWeight = 85 : 日期_dgv.Columns(1).FillWeight = 60 : 日期_dgv.Columns(2).FillWeight = 90 : 日期_dgv.Columns(3).FillWeight = 180 日期_dgv.Columns(4).FillWeight = 80 : 日期_dgv.Columns(5).FillWeight = 65 : 日期_dgv.Columns(6).FillWeight = 90 : 日期_dgv.Columns(7).FillWeight = 75 日期_dgv.Columns(8).FillWeight = 75 : 日期_dgv.Columns(9).FillWeight = 80 : 日期_dgv.Columns(10).FillWeight = 75 : 日期_dgv.Columns(11).FillWeight = 75 日期_dgv.Columns(12).FillWeight = 80 : 日期_dgv.Columns(13).FillWeight = 90 : 日期_dgv.Columns(14).FillWeight = 70 : 日期_dgv.Columns(15).FillWeight = 70 日期_dgv.Columns(16).FillWeight = 150 : 日期_dgv.Columns(17).Visible = False Dim T, S, F, M, T1, S1, 上午, 下午 As Integer Dim T2, S2, F2, M2 As String For i As Integer = 0 To 日期_dgv.Rows.Count - 1 資料數 = 日期_dgv.Rows.Count : MyModule1.進度條() Dim QASW As Integer = 0 If 日期_dgv.Rows(i).Cells("上午上班").Value.ToString <> "" Then 日期_dgv.Rows(i).Cells("上午下班").Value = "12:00:00" Dim TSFM As Integer = DateDiff("s", 日期_dgv.Rows(i).Cells("上午上班").Value.ToString, 日期_dgv.Rows(i).Cells("上午下班").Value) T = TSFM \ 86400 : T1 = TSFM Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60 If T = 0 Then : T2 = "" : Else : T2 = T & "天" : End If : If S = 0 Then : S2 = "" : Else : S2 = S & "時" : End If : If F = 0 Then : F2 = "" Else : F2 = F & "分" : End If : M2 = M & "秒" 日期_dgv.Rows(i).Cells("上午工時").Value = T2 & S2 & F2 & M2 QASW += TSFM : 上午 += TSFM End If If 日期_dgv.Rows(i).Cells("下午下班").Value.ToString <> "" Then 日期_dgv.Rows(i).Cells("下午上班").Value = "13:30:00" Dim TSFM As Integer = DateDiff("s", 日期_dgv.Rows(i).Cells("下午上班").Value.ToString, 日期_dgv.Rows(i).Cells("下午下班").Value) T = TSFM \ 86400 : T1 = TSFM Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60 If T = 0 Then : T2 = "" : Else : T2 = T & "天" : End If : If S = 0 Then : S2 = "" : Else : S2 = S & "時" : End If : If F = 0 Then : F2 = "" Else : F2 = F & "分" : End If : M2 = M & "秒" 日期_dgv.Rows(i).Cells("下午工時").Value = T2 & S2 & F2 & M2 QASW += TSFM : 下午 += TSFM End If If QASW = 0 Then : Else T = QASW \ 86400 : T1 = QASW Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60 If T = 0 Then : T2 = "" : Else : T2 = T & "天" : End If : If S = 0 Then : S2 = "" : Else : S2 = S & "時" : End If : If F = 0 Then : F2 = "" Else : F2 = F & "分" : End If : M2 = M & "秒" 日期_dgv.Rows(i).Cells("整日工時").Value = T2 & S2 & F2 & M2 End If Next : WINPROFIT_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 End Sub Private Sub Set_人員清單() 員工_dgv.DataSource = Nothing : ds1.Clear() 員工_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 員工_dgv.ColumnHeadersHeight = 25 員工_dgv.AllowUserToAddRows = False SQL_員工清單() da.Fill(ds1) : 員工_dgv.DataSource = ds1.Tables(0) : conn.Close() 員工_dgv.Columns(0).Visible = False : 員工_dgv.Columns(1).FillWeight = 150 : 員工_dgv.Columns(2).Visible = False : 員工_dgv.Columns(3).Visible = False 員工_dgv.Columns(4).Visible = False End Sub Private Sub ComboBox1下拉表單資料載入() SQL_年份查詢() 年份_cb.Items.Clear() : While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : End While : conn.Close() End Sub Private Sub ComboBox3下拉表單資料載入() SQL_請假() 請假_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 = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True Set_人員清單() : ComboBox1下拉表單資料載入() : ComboBox3下拉表單資料載入() 年份_cb.Text = Year(Today) : 月份_cb.SelectedIndex = Month(Today) - 1 If CC(49) = True Then 員工_dgv.Enabled = True Else 員工_dgv.Enabled = False 編號 = 員工編號 : Set_考勤明細() 員工編號_tb.Text = 員工編號 : 申請人_tb.Text = gUserName : 員工部門_tb.Text = 登入人部門 End If 日期_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 員工_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) End Sub Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 日期_dgv.CellClick If e.RowIndex = -1 Then : Else 請假_tb.Text = 日期_dgv(0, e.RowIndex).Value.ToString End If End Sub Private Sub DataGridView2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 員工_dgv.CellClick If e.RowIndex = -1 Then : Else 編號 = 員工_dgv(0, e.RowIndex).Value.ToString : 員工編號_tb.Text = 員工_dgv(0, e.RowIndex).Value.ToString 入職日期_dtp.Value = 員工_dgv(3, e.RowIndex).Value.ToString : 申請人_tb.Text = 員工_dgv(1, e.RowIndex).Value.ToString Set_考勤明細() Dim TSFM As Integer = DateDiff("d", 入職日期_dtp.Value, Today()) : 在職天數_tb.Text = TSFM SQL_使用者權限() If dr.Read() Then : 員工部門_tb.Text = dr("部門").ToString : End If : conn.Close() End If End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 開立請假單_bt.Click If 申請人_tb.Text = "" Or 請假_tb.Text = "" Or 事由_tb.Text = "" Or 請假_cb.Text = "" Then MsgBox("請檢查資料是否有填選完畢") Else SQL_人事請假() If dr.Read() Then MsgBox("該日期已有寫過請假單") Else SQL_人事請假新增() Set_考勤明細() End If End If End Sub End Class