123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- Option Strict Off
- Public Class 人員考勤明細表
- ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet
- Dim 編號 As String
- ReadOnly T2 As String
- Private Sub Set_考勤明細()
- 月清單_DGV.DataSource = Nothing : ds.Clear()
- 月清單_DGV.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 月清單_DGV.ColumnHeadersHeight = 25
- 月清單_DGV.AllowUserToAddRows = False
- ConnOpen()
- SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, QQ.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班,
- QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, BB.公出事由, QQ.員工編號
- FROM 萬年曆 LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期
- FROM 人事請假單
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 LIKE N'" & ComboBox1.Text & "/" & ComboBox2.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期
- LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班
- FROM 人事考勤明細表
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 LIKE N'" & ComboBox1.Text & "/" & ComboBox2.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期
- LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 上午補登, 下午補登, 公出事由
- FROM 人事漏打卡補登紀錄
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 LIKE N'" & ComboBox1.Text & "/" & ComboBox2.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期
- WHERE (萬年曆.日期 LIKE N'" & ComboBox1.Text & "/" & ComboBox2.Text & "%') ORDER BY 萬年曆.日期"
- 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 = 85 : 月清單_DGV.Columns(1).FillWeight = 60 : 月清單_DGV.Columns(2).FillWeight = 90 : 月清單_DGV.Columns(3).FillWeight = 262
- 月清單_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 = 262 : 月清單_DGV.Columns(17).Visible = False
-
- Dim T, S, F, M, T1, S1, TT, SS, FF, MM, TT1, SS1, TTT, SSS, FFF, MMM, TTT1, SSS1 As Integer
- Dim S2, F2, M2, TT2, SS2, FF2, MM2, TTT2, SSS2, FFF2, MMM2 As String
- Dim 正常時1, 加班時1, 加班時2, 假常時1, 假加時1, 上午, 下午, 漏打 As Integer
- TextBox5.Text = "0" : TextBox6.Text = "0" : TextBox7.Text = "0" : TextBox8.Text = "0" : TextBox16.Text = "0" : TextBox9.Text = "0" : TextBox19.Text = "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
- 資料數 = 月清單_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
- S2 = T * 24 + S & "時" : F2 = F & "分" : 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:00:00"
- Dim TSFM As Integer = DateDiff("s", 月清單_DGV.Rows(i).Cells("下午上班").Value.ToString, 月清單_DGV.Rows(i).Cells("下午下班").Value)
- If TSFM > 23400 Then
- TSFM -= 5400
- End If
- T = TSFM \ 86400 : T1 = TSFM Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S & "時" : F2 = F & "分" : 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
- S2 = T * 24 + S & "時" : F2 = F & "分" : M2 = M & "秒"
- 月清單_DGV.Rows(i).Cells("整日工時").Value = T2 & S2 & F2 & M2
- End If
-
- If 月清單_DGV.Rows(i).Cells("日期").Value < Today() Then
- If 月清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期日" Or 月清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期六" Then
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString <> "" Then
- Else
- If 月清單_DGV.Rows(i).Cells("日期").Value >= 入職日期_dtp.Value Then
- If 月清單_DGV.Rows(i).Cells("上午上班").Value.ToString = "" Then : 漏打 += 1 : End If
- If 月清單_DGV.Rows(i).Cells("下午下班").Value.ToString = "" Then : 漏打 += 1 : End If
- End If
- End If
- End If
- If 月清單_DGV.Rows(i).Cells("上午補登").Value.ToString = "1" Then : 漏打 += 1 : End If
- If 月清單_DGV.Rows(i).Cells("下午補登").Value.ToString = "1" Then : 漏打 += 1 : End If
- TextBox4.Text = 漏打
-
- If 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "育嬰假一天" Then : TextBox5.Text = Val(TextBox5.Text) + 1
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "育嬰假半天" Then : TextBox5.Text = Val(TextBox5.Text) + 0.5
- End If
- If 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "事假一天" Then : TextBox6.Text = Val(TextBox6.Text) + 1
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "事假半天" Then : TextBox6.Text = Val(TextBox6.Text) + 0.5
- End If
- If 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "病假一天" Then : TextBox7.Text = Val(TextBox7.Text) + 1
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "病假半天" Then : TextBox7.Text = Val(TextBox7.Text) + 0.5
- End If
- If 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "婚嫁一天" Then : TextBox8.Text = Val(TextBox8.Text) + 1
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "婚嫁半天" Then : TextBox8.Text = Val(TextBox8.Text) + 0.5
- End If
- If 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "特休一天" Then : TextBox16.Text = Val(TextBox16.Text) + 1
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "特休半天" Then : TextBox16.Text = Val(TextBox16.Text) + 0.5
- End If
- If 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "喪假一天" Then : TextBox9.Text = Val(TextBox9.Text) + 1
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "喪假半天" Then : TextBox9.Text = Val(TextBox9.Text) + 0.5
- End If
-
- '---------平日上班計算-----------------------------------------------------------------------------------------------------------------------------
- Dim 正常時, 加班時, 上午1, 下午1 As Integer
- If 月清單_DGV.Rows(i).Cells("星期").Value.ToString <> "星期六" And 月清單_DGV.Rows(i).Cells("星期").Value.ToString <> "星期日" And
- 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString <> "國定假日" And Strings.Right(月清單_DGV.Rows(i).Cells("請假類別").Value.ToString, 2) = "半天" And
- 月清單_DGV.Rows(i).Cells("整日工時").Value.ToString <> "" Then
- 當月平日天_tb.Text = Val(當月平日天_tb.Text) + 0.5
- 上午1 = 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) : 上午1 = TSFM
- End If
- 下午1 = 0
- If 月清單_DGV.Rows(i).Cells("下午下班").Value.ToString <> "" Then
- 月清單_DGV.Rows(i).Cells("下午上班").Value = "13:00:00"
- Dim TSFM As Integer = DateDiff("s", 月清單_DGV.Rows(i).Cells("下午上班").Value.ToString, 月清單_DGV.Rows(i).Cells("下午下班").Value)
- If TSFM > 23400 Then : TSFM -= 5400 : End If : 下午1 = TSFM
- End If
- 正常時 = (上午1 + 下午1)
- If 正常時 >= 28800 Then : 加班時 = 正常時 - 28800 : 正常時 = 28800 : Else : 加班時 = 0 : End If
- 正常時1 += 正常時 : 加班時1 += 加班時
- ElseIf 月清單_DGV.Rows(i).Cells("星期").Value.ToString <> "星期六" And 月清單_DGV.Rows(i).Cells("星期").Value.ToString <> "星期日" And
- 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString <> "國定假日" And Strings.Right(月清單_DGV.Rows(i).Cells("請假類別").Value.ToString, 2) = "" And
- 月清單_DGV.Rows(i).Cells("整日工時").Value.ToString <> "" Then
- 當月平日天_tb.Text = Val(當月平日天_tb.Text) + 1
- 上午1 = 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) : 上午1 = TSFM
- End If
- 下午1 = 0
- If 月清單_DGV.Rows(i).Cells("下午下班").Value.ToString <> "" Then
- 月清單_DGV.Rows(i).Cells("下午上班").Value = "13:00:00"
- Dim TSFM As Integer = DateDiff("s", 月清單_DGV.Rows(i).Cells("下午上班").Value.ToString, 月清單_DGV.Rows(i).Cells("下午下班").Value)
- If TSFM > 23400 Then : TSFM -= 5400 : End If : 下午1 = TSFM
- End If
- 正常時 = (上午1 + 下午1)
- If 正常時 >= 28800 Then : 加班時 = 正常時 - 28800 : 正常時 = 28800 : Else : 加班時 = 0 : End If
- 正常時1 += 正常時 : 加班時1 += 加班時
- End If
-
- '---------假日上班計算-----------------------------------------------------------------------------------------------------------------------------
- Dim 假常時, 假加時 As Integer
- If (月清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期六" Or 月清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期日" Or
- 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "國定假日") And 月清單_DGV.Rows(i).Cells("整日工時").Value.ToString <> "" Then
- 當月假日天_tb.Text = Val(當月假日天_tb.Text) + 1
- Dim 上午2 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) : 上午2 = TSFM
- End If
- Dim 下午2 As Integer = 0
- If 月清單_DGV.Rows(i).Cells("下午下班").Value.ToString <> "" Then
- 月清單_DGV.Rows(i).Cells("下午上班").Value = "13:00:00"
- Dim TSFM As Integer = DateDiff("s", 月清單_DGV.Rows(i).Cells("下午上班").Value.ToString, 月清單_DGV.Rows(i).Cells("下午下班").Value)
- If TSFM > 23400 Then : TSFM -= 5400 : End If : 下午2 = TSFM
- End If
- 假常時 = (上午2 + 下午2)
- If 假常時 >= 28800 Then : 假加時 = 假常時 - 28800 : 假常時 = 28800 : Else : 假加時 = 0 : End If
- 假常時1 += 假常時 : 假加時1 += 假加時
- End If
-
- If 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "國定假日" Then : TextBox19.Text = Val(TextBox19.Text) + 1
- End If
- If 月清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期六" Then : 月清單_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
- ElseIf 月清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期日" Then : 月清單_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "國定假日" Then : 月清單_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightPink
- ElseIf 月清單_DGV.Rows(i).Cells("請假類別").Value.ToString <> "" Then : 月清單_DGV.Rows(i).DefaultCellStyle.BackColor = Color.LightYellow
- End If
- Next : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
- T = 上午 \ 86400 : T1 = 上午 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S & "時" : F2 = F & "分" : M2 = M & "秒"
- TextBox1.Text = S2 & F2 & M2
-
- T = 下午 \ 86400 : T1 = 下午 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S & "時" : F2 = F & "分" : M2 = M & "秒"
- TextBox2.Text = S2 & F2 & M2
-
- T = (上午 + 下午) \ 86400 : T1 = (上午 + 下午) Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S & "時" : F2 = F & "分" : M2 = M & "秒"
- 上班總工時_tb.Text = S2 & F2 & M2
-
- TT = 正常時1 \ 86400 : TT1 = 正常時1 Mod 86400 : SS = TT1 \ 3600 : SS1 = TT1 Mod 3600 : FF = SS1 \ 60 : MM = SS1 Mod 60
- SS2 = TT * 24 + SS & "時" : FF2 = FF & "分" : MM2 = MM & "秒"
- 當月平日上班時_tb.Text = SS2 & FF2 & MM2
-
- If 加班時1 > Val(當月平日天_tb.Text) * 2 * 60 * 60 Then
- 加班時2 = 加班時1 - (Val(當月平日天_tb.Text) * 2 * 60 * 60)
- 加班時1 = Val(當月平日天_tb.Text) * 2 * 60 * 60
- End If
-
- TT = 加班時1 \ 86400 : TT2 = 加班時1 Mod 86400 : SS = TT2 \ 3600 : SS1 = TT2 Mod 3600 : FF = SS1 \ 60 : MM = SS1 Mod 60
- SS2 = TT * 24 + SS & "時" : FF2 = FF & "分" : MM2 = MM & "秒"
- 當月平日一段_tb.Text = SS2 & FF2 & MM2
-
- TT = 加班時2 \ 86400 : TT2 = 加班時2 Mod 86400 : SS = TT2 \ 3600 : SS1 = TT2 Mod 3600 : FF = SS1 \ 60 : MM = SS1 Mod 60
- SS2 = TT * 24 + SS & "時" : FF2 = FF & "分" : MM2 = MM & "秒"
- 當月平日二段_tb.Text = SS2 & FF2 & MM2
-
- TTT = 假常時1 \ 86400 : TTT1 = 假常時1 Mod 86400 : SSS = TTT1 \ 3600 : SSS1 = TTT1 Mod 3600 : FFF = SSS1 \ 60 : MMM = SSS1 Mod 60
- SSS2 = TTT * 24 + SSS & "時" : FFF2 = FFF & "分" : MMM2 = MMM & "秒"
- 一段假日加_tb.Text = SSS2 & FFF2 & MMM2
-
- TTT = 假加時1 \ 86400 : TTT2 = 假加時1 Mod 86400 : SSS = TTT2 \ 3600 : SSS1 = TTT2 Mod 3600 : FFF = SSS1 \ 60 : MMM = SSS1 Mod 60
- SSS2 = TTT * 24 + SSS & "時" : FFF2 = FFF & "分" : MMM2 = MMM & "秒"
- 二段假日加_tb.Text = SSS2 & FFF2 & MMM2
- End Sub
- Private Sub Set_人員清單()
- 人員_dgv.DataSource = Nothing : ds1.Clear()
- 人員_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 人員_dgv.ColumnHeadersHeight = 25
- 人員_dgv.AllowUserToAddRows = False
- ConnOpen()
- SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期, 人事資料表.離職日期
- FROM 使用者權限管理表 LEFT OUTER JOIN
- 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND
- 使用者權限管理表.姓名 = 人事資料表.系統登入姓名
- WHERE (使用者權限管理表.CC27 = 0) AND (人事資料表.員工編號 IS NOT NULL) AND (人事資料表.離職日期 LIKE N'在職')
- ORDER BY 使用者權限管理表.姓名"
- CmdSet_For_DGV() : da.Fill(ds1) : 人員_dgv.DataSource = ds1.Tables(0) : conn.Close() : Set_grid1()
- End Sub
- Private Sub Set_grid1()
- 人員_dgv.Columns(0).FillWeight = 150 : 人員_dgv.Columns(1).FillWeight = 150 : 人員_dgv.Columns(2).Visible = False : 人員_dgv.Columns(3).Visible = False
- 人員_dgv.Columns(4).Visible = False
- End Sub
- Private Sub Set_年度考勤明細()
- 年清單_DGV.DataSource = Nothing : ds2.Clear()
- 年清單_DGV.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 年清單_DGV.ColumnHeadersHeight = 25
- 年清單_DGV.AllowUserToAddRows = False
- ConnOpen()
- If Val(ComboBox1.Text) > 2019 Then
- SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, QQ.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班,
- QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, QQ.員工編號
- FROM 萬年曆 LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期
- FROM 人事請假單
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 LIKE N'" & ComboBox1.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期
- LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班
- FROM 人事考勤明細表
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 LIKE N'" & ComboBox1.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期
- LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 上午補登, 下午補登
- FROM 人事漏打卡補登紀錄
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 LIKE N'" & ComboBox1.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期
- WHERE (萬年曆.日期 LIKE N'" & ComboBox1.Text & "%') ORDER BY 萬年曆.日期"
- ElseIf Val(ComboBox1.Text) = 2019 Then
- SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, QQ.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班,
- QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, QQ.員工編號
- FROM 萬年曆 LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期
- FROM 人事請假單
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 BETWEEN '2019/11/01' AND '2019/12/31')) AS AA ON 萬年曆.日期 = AA.日期
- LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班
- FROM 人事考勤明細表
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 BETWEEN '2019/11/01' AND '2019/12/31')) AS QQ ON 萬年曆.日期 = QQ.日期
- LEFT OUTER JOIN
- (SELECT 員工編號, 日期, 上午補登, 下午補登
- FROM 人事漏打卡補登紀錄
- WHERE (員工編號 LIKE N'" & 編號 & "') AND (日期 BETWEEN '2019/11/01' AND '2019/12/31')) AS BB ON 萬年曆.日期 = BB.日期
- WHERE (萬年曆.日期 BETWEEN '2019/11/01' AND '2019/12/31') ORDER BY 萬年曆.日期"
- End If
- CmdSet_For_DGV() : da.Fill(ds2) : 年清單_DGV.DataSource = ds2.Tables(0) : conn.Close() : Set_grid2()
- End Sub
- Private Sub Set_grid2()
- Dim 漏打 As Integer = 0
- TextBox15.Text = "0" : TextBox14.Text = "0" : TextBox13.Text = "0" : TextBox12.Text = "0" : TextBox17.Text = "0" : TextBox11.Text = "0" : TextBox20.Text = "0"
- For i As Integer = 0 To 年清單_DGV.Rows.Count - 1
- 資料數 = 年清單_DGV.Rows.Count : MyModule1.進度條()
- If 年清單_DGV.Rows(i).Cells("日期").Value < Today() Then
- If 年清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期日" Or 年清單_DGV.Rows(i).Cells("星期").Value.ToString = "星期六" Then
- ElseIf 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString <> "" Then
- Else
- If 年清單_DGV.Rows(i).Cells("日期").Value >= 入職日期_dtp.Value Then
- If 年清單_DGV.Rows(i).Cells("上午上班").Value.ToString = "" Then : 漏打 += 1 : End If
- If 年清單_DGV.Rows(i).Cells("下午下班").Value.ToString = "" Then : 漏打 += 1 : End If
- End If
- End If
- End If
- If 年清單_DGV.Rows(i).Cells("上午補登").Value.ToString = "1" Then : 漏打 += 1 : End If
- If 年清單_DGV.Rows(i).Cells("下午補登").Value.ToString = "1" Then : 漏打 += 1 : End If
- TextBox10.Text = 漏打
-
- If 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "育嬰假一天" Then : TextBox15.Text = Val(TextBox15.Text) + 1
- ElseIf 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "育嬰假半天" Then : TextBox15.Text = Val(TextBox15.Text) + 0.5
- End If
- If 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "事假一天" Then : TextBox14.Text = Val(TextBox14.Text) + 1
- ElseIf 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "事假半天" Then : TextBox14.Text = Val(TextBox14.Text) + 0.5
- End If
- If 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "病假一天" Then : TextBox13.Text = Val(TextBox13.Text) + 1
- ElseIf 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "病假半天" Then : TextBox13.Text = Val(TextBox13.Text) + 0.5
- End If
- If 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "婚嫁一天" Then : TextBox12.Text = Val(TextBox12.Text) + 1
- ElseIf 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "婚嫁半天" Then : TextBox12.Text = Val(TextBox12.Text) + 0.5
- End If
- If 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "特休一天" Then : TextBox17.Text = Val(TextBox17.Text) + 1
- ElseIf 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "特休半天" Then : TextBox17.Text = Val(TextBox17.Text) + 0.5
- End If
- If 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "喪假一天" Then : TextBox11.Text = Val(TextBox11.Text) + 1
- ElseIf 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "喪假半天" Then : TextBox11.Text = Val(TextBox11.Text) + 0.5
- End If
- If 年清單_DGV.Rows(i).Cells("請假類別").Value.ToString = "國定假日" Then : TextBox20.Text = Val(TextBox20.Text) + 1
- End If
- Next : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
- End Sub
- Private Sub ComboBox1下拉表單資料載入()
- conn.Close()
- ConnOpen()
- SQL1 = "SELECT 年份 FROM 年份清單 ORDER BY 年份 DESC"
- CmdSet_For_dr()
- ComboBox1.Items.Clear()
- While (dr.Read()) : ComboBox1.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
- Set_人員清單() : ComboBox1下拉表單資料載入() : 年清單_DGV.Visible = False
- ComboBox1.Text = Year(Today) : ComboBox2.SelectedIndex = Month(Today) - 1
- TextBox5.Text = "0" : TextBox6.Text = "0" : TextBox7.Text = "0" : TextBox8.Text = "0" : TextBox16.Text = "0" : TextBox9.Text = "0"
- TextBox15.Text = "0" : TextBox14.Text = "0" : TextBox13.Text = "0" : TextBox12.Text = "0" : TextBox17.Text = "0" : TextBox11.Text = "0"
- End Sub
- Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
- timeNow = 0
- GCM_ERP_SYS.Timer1.Enabled = False
- GCM_ERP_SYS.Timer1.Enabled = True
- End Sub
- Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
- timeNow = 0
- GCM_ERP_SYS.Timer1.Enabled = False
- GCM_ERP_SYS.Timer1.Enabled = True
- End Sub
- Private Sub 人員_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 人員_dgv.CellClick
- If e.RowIndex = -1 Then : Else
- 編號 = 人員_dgv(0, e.RowIndex).Value.ToString : 入職日期_dtp.Value = 人員_dgv(3, e.RowIndex).Value.ToString
- Dim TSFM As Integer = DateDiff("d", 入職日期_dtp.Value, Today()) : TextBox18.Text = TSFM
- Set_考勤明細() : Set_年度考勤明細()
- End If
- End Sub
- Private Sub 重新讀取_bt_Click(sender As Object, e As EventArgs) Handles 重新讀取_bt.Click
- Set_考勤明細() : Set_年度考勤明細()
- End Sub
- End Class
|