123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779 |
- Option Strict Off
- Public Class 考勤明細表
- ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet : ReadOnly ds3 As New DataSet : ReadOnly ds4 As New DataSet : ReadOnly ds5 As New DataSet
- ReadOnly ds6 As New DataSet : ReadOnly ds7 As New DataSet : ReadOnly ds8 As New DataSet
- Dim 編號 As String
-
- Dim T, S, F, M, T1, S1, TT, SS, FF, MM, FFF, MMM, 平日班, 假日班, 假加, 假加一, 假加二, 假加時1, 假加分1, 假加時2, 假加分2, 國假, 國假1, 國假2, 平日加, 平日加1, 平日加2,
- 正常時, 正常時1, 正常時2, 正常時3, 正常時4, 加班時, 加班時1, 加班時2, 加班時3, 加班時4, 加班時5, 加班時6, 加班時7, 加班時8, 加班時9, 加班時10, 加班時11, 加班時12,
- 加班時13, 加班時14, 加班時15, 加班時16, 加班時17, 加班時18, 加班時19, 加班時20, 加班時21, 加班時22, 加班時23, 加班時24, 加班時25, 加班時26, 加班時27, 加班時28, 加班時29,
- 當天總分, 彈性扣時, 請假日 As Double
- Private Sub 讀取人員資料表()
- 人員_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 = 70 : 人員_dgv.Columns(1).FillWeight = 80 : 人員_dgv.Columns(2).FillWeight = 100 : 人員_dgv.Columns(3).Visible = False
- For i As Integer = 0 To 人員_dgv.Rows.Count - 1
- 人員_dgv.Rows(i).Cells("No.").Value = i + 1
- Next
- End Sub
- Private Sub Set_考勤明細()
- 月清單_dgv.DataSource = Nothing : ds1.Clear()
- 月清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 月清單_dgv.ColumnHeadersHeight = 40
- 月清單_dgv.AllowUserToAddRows = False
- PA = 編號 : PA1 = 年份_cb.Text : PA2 = 月份_cb.Text : SQL_考勤明細表_月份考勤()
- da.Fill(ds1) : 月清單_dgv.DataSource = ds1.Tables(0) : conn.Close()
-
- 月清單_dgv.Columns(0).FillWeight = 100 : 月清單_dgv.Columns(1).FillWeight = 60 : 月清單_dgv.Columns(2).FillWeight = 90 : 月清單_dgv.Columns(3).FillWeight = 80
- 月清單_dgv.Columns(4).FillWeight = 60 : 月清單_dgv.Columns(5).Visible = False : 月清單_dgv.Columns(6).Visible = False : 月清單_dgv.Columns(7).Visible = False
- 月清單_dgv.Columns(8).FillWeight = 100 : 月清單_dgv.Columns(9).FillWeight = 100 : 月清單_dgv.Columns(10).FillWeight = 60 : 月清單_dgv.Columns(11).FillWeight = 100
- 月清單_dgv.Columns(12).FillWeight = 100 : 月清單_dgv.Columns(13).FillWeight = 60 : 月清單_dgv.Columns(14).FillWeight = 100 : 月清單_dgv.Columns(15).FillWeight = 100
- 月清單_dgv.Columns(16).FillWeight = 60 : 月清單_dgv.Columns(17).FillWeight = 60 : 月清單_dgv.Columns(18).Visible = False : 月清單_dgv.Columns(19).FillWeight = 60
- 月清單_dgv.Columns(20).FillWeight = 60 : 月清單_dgv.Columns(21).FillWeight = 40 : 月清單_dgv.Columns(22).FillWeight = 40 : 月清單_dgv.Columns(23).FillWeight = 100
- 月清單_dgv.Columns(24).FillWeight = 80 : 月清單_dgv.Columns(25).FillWeight = 150
-
- Dim S2, F2 As String
- For I As Integer = 0 To 月清單_dgv.Rows.Count - 1
- MyModule1.進度條()
- 月清單_dgv.Rows(I).Cells("一段工時").Value = "" : 月清單_dgv.Rows(I).Cells("二段工時").Value = "" : 月清單_dgv.Rows(I).Cells("加班工時").Value = ""
- 月清單_dgv.Rows(I).Cells("休息1").Value = "" : 月清單_dgv.Rows(I).Cells("休息2").Value = "" : 月清單_dgv.Rows(I).Cells("一段加班").Value = ""
- 月清單_dgv.Rows(I).Cells("二段加班").Value = "" : 月清單_dgv.Rows(I).Cells("加班下班").Value = "" : 月清單_dgv.Rows(I).Cells("加班上班").Value = ""
- 月清單_dgv.Rows(I).Cells("二段下班").Value = "" : 月清單_dgv.Rows(I).Cells("二段上班").Value = "" : 月清單_dgv.Rows(I).Cells("一段下班").Value = ""
- If IsDBNull(月清單_dgv.Rows(I).Cells("半天").Value) = True Then : 月清單_dgv.Rows(I).Cells("半天").Value = False : End If
- If IsDBNull(月清單_dgv.Rows(I).Cells("班別").Value) = True Then : 月清單_dgv.Rows(I).Cells("班別").Value = "" : End If
- If 月清單_dgv.Rows(I).Cells("班別").Value.ToString = "休" Then : Else : 月清單_dgv.Rows(I).Cells("班別").Value = Strings.Right(月清單_dgv.Rows(I).Cells("班別").Value, 2) : End If
- '---------------------------讀入資料------------------------------------------------------------------------------------------------------------------------------------
- PA3 = Val(Strings.Right(月清單_dgv.Rows(I).Cells("日期").Value, 2))
- PA4 = DateAdd("D", 1, 月清單_dgv.Rows(I).Cells("日期").Value.ToString)
- 讀取打卡時間1()
- If 時間讀取1_dgv.Rows.Count > 0 Then
- 月清單_dgv.Rows(I).Cells("一段上班").Value = 時間讀取1_dgv.Rows(0).Cells("打卡時間").Value
- For II As Integer = 0 To 班別_dgv.Rows.Count - 1
- If FormatDateTime(班別_dgv.Rows(II).Cells("時段1").Value.ToString, DateFormat.ShortTime) <
- FormatDateTime(月清單_dgv.Rows(I).Cells("一段上班").Value.ToString, DateFormat.ShortTime) And
- FormatDateTime(班別_dgv.Rows(II).Cells("時段2").Value.ToString, DateFormat.ShortTime) >
- FormatDateTime(月清單_dgv.Rows(I).Cells("一段上班").Value.ToString, DateFormat.ShortTime) Then
- 月清單_dgv.Rows(I).Cells("班別判斷").Value = 班別_dgv.Rows(II).Cells("時段").Value.ToString
- 月清單_dgv.Rows(I).Cells("休息1").Value = 班別_dgv.Rows(II).Cells("一段休息").Value.ToString
- 月清單_dgv.Rows(I).Cells("休息2").Value = 班別_dgv.Rows(II).Cells("二段休息").Value.ToString
- DTPS(0) = 班別_dgv.Rows(II).Cells("時段2").Value.ToString : DTPS(1) = 班別_dgv.Rows(II).Cells("時段4").Value.ToString()
- DTPS(2) = 班別_dgv.Rows(II).Cells("時段4").Value.ToString : DTPS(3) = 班別_dgv.Rows(II).Cells("時段6").Value.ToString()
- DTPS(4) = 班別_dgv.Rows(II).Cells("時段6").Value.ToString
- Exit For
- End If
- If II = 班別_dgv.Rows.Count - 1 Then
- For III As Integer = 0 To 班別_dgv.Rows.Count - 1
- If Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段上班").Value.ToString, 2)) <= Val(Strings.Left(班別_dgv.Rows(III).Cells("時段").Value.ToString, 2)) Then
- 月清單_dgv.Rows(I).Cells("班別判斷").Value = 班別_dgv.Rows(III).Cells("時段").Value.ToString
- 月清單_dgv.Rows(I).Cells("休息1").Value = 班別_dgv.Rows(II).Cells("一段休息").Value.ToString
- 月清單_dgv.Rows(I).Cells("休息2").Value = 班別_dgv.Rows(II).Cells("二段休息").Value.ToString
- DTPS(0) = 班別_dgv.Rows(III).Cells("時段2").Value.ToString : DTPS(1) = 班別_dgv.Rows(III).Cells("時段4").Value.ToString()
- DTPS(2) = 班別_dgv.Rows(III).Cells("時段4").Value.ToString : DTPS(3) = 班別_dgv.Rows(III).Cells("時段6").Value.ToString()
- DTPS(4) = 班別_dgv.Rows(III).Cells("時段6").Value.ToString
- Exit For
- End If
- 月清單_dgv.Rows(I).Cells("班別判斷").Value = "打卡異常"
- Next
- End If
- Next
- Else
- 月清單_dgv.Rows(I).Cells("一段上班").Value = "" : 月清單_dgv.Rows(I).Cells("班別判斷").Value = ""
- End If
-
- Dim SD(2) As Integer
- 讀取打卡時間2()
- If 時間讀取2_dgv.Rows.Count = 1 Then
- If Val(Strings.Left(時間讀取2_dgv.Rows(0).Cells("打卡時間").Value, 2)) >= Val(Strings.Left(DTPS(1), 2)) Then
- 月清單_dgv.Rows(I).Cells("二段上班").Value = 時間讀取2_dgv.Rows(0).Cells("打卡時間").Value : 月清單_dgv.Rows(I).Cells("一段下班").Value = ""
- Else
- 月清單_dgv.Rows(I).Cells("一段下班").Value = 時間讀取2_dgv.Rows(0).Cells("打卡時間").Value : 月清單_dgv.Rows(I).Cells("二段上班").Value = ""
- End If
- ElseIf 時間讀取2_dgv.Rows.Count = 2 Then
- 月清單_dgv.Rows(I).Cells("一段下班").Value = 時間讀取2_dgv.Rows(0).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段上班").Value = 時間讀取2_dgv.Rows(1).Cells("打卡時間").Value
- ElseIf 時間讀取2_dgv.Rows.Count = 3 Then
- 月清單_dgv.Rows(I).Cells("一段下班").Value = 時間讀取2_dgv.Rows(0).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段上班").Value = 時間讀取2_dgv.Rows(1).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段下班").Value = 時間讀取2_dgv.Rows(2).Cells("打卡時間").Value
- ElseIf 時間讀取2_dgv.Rows.Count = 4 Then
- 月清單_dgv.Rows(I).Cells("一段下班").Value = 時間讀取2_dgv.Rows(0).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段上班").Value = 時間讀取2_dgv.Rows(1).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段下班").Value = 時間讀取2_dgv.Rows(2).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("加班上班").Value = 時間讀取2_dgv.Rows(3).Cells("打卡時間").Value
- ElseIf 時間讀取2_dgv.Rows.Count = 5 Then
- 月清單_dgv.Rows(I).Cells("一段下班").Value = 時間讀取2_dgv.Rows(0).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段上班").Value = 時間讀取2_dgv.Rows(1).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段下班").Value = 時間讀取2_dgv.Rows(2).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("加班上班").Value = 時間讀取2_dgv.Rows(3).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("加班下班").Value = 時間讀取2_dgv.Rows(4).Cells("打卡時間").Value
- ElseIf 時間讀取2_dgv.Rows.Count = 6 Then
- 月清單_dgv.Rows(I).Cells("一段下班").Value = 時間讀取2_dgv.Rows(1).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段上班").Value = 時間讀取2_dgv.Rows(2).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("二段下班").Value = 時間讀取2_dgv.Rows(3).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("加班上班").Value = 時間讀取2_dgv.Rows(4).Cells("打卡時間").Value
- 月清單_dgv.Rows(I).Cells("加班下班").Value = 時間讀取2_dgv.Rows(5).Cells("打卡時間").Value
- Else
- 月清單_dgv.Rows(I).Cells("一段下班").Value = "" : 月清單_dgv.Rows(I).Cells("二段上班").Value = ""
- End If
-
- 讀取打卡時間3()
- If 時間讀取3_dgv.Rows.Count > 1 Then
- SD(1) = 時間讀取3_dgv.Rows.Count - 1
- If Strings.Left(月清單_dgv.Rows(I).Cells("二段下班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("二段下班").Value = 時間讀取3_dgv.Rows(0).Cells("打卡時間").Value
- End If
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班上班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班上班").Value = 時間讀取3_dgv.Rows(SD(1)).Cells("打卡時間").Value
- End If
- ElseIf 時間讀取3_dgv.Rows.Count = 1 Then
- If 月清單_dgv.Rows(I).Cells("二段下班").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("加班上班").Value.ToString = "" Then
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班上班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班上班").Value = 時間讀取3_dgv.Rows(0).Cells("打卡時間").Value
- End If
- If Strings.Left(月清單_dgv.Rows(I).Cells("二段下班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("二段下班").Value = ""
- End If
- ElseIf 月清單_dgv.Rows(I).Cells("二段下班").Value.ToString = "" And 月清單_dgv.Rows(I).Cells("加班上班").Value.ToString = "" Then
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班上班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班上班").Value = ""
- End If
- If Strings.Left(月清單_dgv.Rows(I).Cells("二段下班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("二段下班").Value = 時間讀取3_dgv.Rows(0).Cells("打卡時間").Value
- End If
- End If
- Else
- If Strings.Left(月清單_dgv.Rows(I).Cells("二段下班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("二段下班").Value = ""
- End If
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班上班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班上班").Value = ""
- End If
- End If
-
- 讀取打卡時間4()
- If 時間讀取4_dgv.Rows.Count > 1 Then
- SD(2) = 時間讀取4_dgv.Rows.Count - 1
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班上班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班上班").Value = 時間讀取4_dgv.Rows(0).Cells("打卡時間").Value
- End If
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班下班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班下班").Value = 時間讀取4_dgv.Rows(SD(2)).Cells("打卡時間").Value
- End If
- ElseIf 時間讀取4_dgv.Rows.Count = 1 Then
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班下班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班下班").Value = 時間讀取4_dgv.Rows(SD(2)).Cells("打卡時間").Value
- End If
- Else
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班下班").Value, 2) = "星期" Then
- 月清單_dgv.Rows(I).Cells("加班下班").Value = ""
- End If
- End If
- '---------------------------打卡位置調整------------------------------------------------------------------------------------------------------------------------------------
- If 月清單_dgv.Rows(I).Cells("一段下班").Value.ToString = 月清單_dgv.Rows(I).Cells("一段上班").Value.ToString Then
- 月清單_dgv.Rows(I).Cells("一段下班").Value = ""
- End If
- For d As Integer = 1 To 4
- If 月清單_dgv.Rows(I).Cells("加班上班").Value.ToString = "" And 月清單_dgv.Rows(I).Cells("加班下班").Value.ToString <> "" Then
- 月清單_dgv.Rows(I).Cells("加班上班").Value = 月清單_dgv.Rows(I).Cells("加班下班").Value.ToString : 月清單_dgv.Rows(I).Cells("加班下班").Value = ""
- End If
- If 月清單_dgv.Rows(I).Cells("二段下班").Value.ToString = "" And 月清單_dgv.Rows(I).Cells("加班上班").Value.ToString <> "" Then
- 月清單_dgv.Rows(I).Cells("二段下班").Value = 月清單_dgv.Rows(I).Cells("加班上班").Value.ToString : 月清單_dgv.Rows(I).Cells("加班上班").Value = ""
- End If
- If 月清單_dgv.Rows(I).Cells("二段上班").Value.ToString = "" And 月清單_dgv.Rows(I).Cells("二段下班").Value.ToString <> "" Then
- 月清單_dgv.Rows(I).Cells("二段上班").Value = 月清單_dgv.Rows(I).Cells("二段下班").Value.ToString : 月清單_dgv.Rows(I).Cells("二段下班").Value = ""
- End If
- If 月清單_dgv.Rows(I).Cells("一段下班").Value.ToString = "" And 月清單_dgv.Rows(I).Cells("二段上班").Value.ToString <> "" Then
- 月清單_dgv.Rows(I).Cells("一段下班").Value = 月清單_dgv.Rows(I).Cells("二段上班").Value.ToString : 月清單_dgv.Rows(I).Cells("二段上班").Value = ""
- End If
- Next
-
- '---------------------------工時計算------------------------------------------------------------------------------------------------------------------------------------
- Dim QASW1 As Integer : Dim QASW2 As Integer : Dim QASW3 As Integer
- Dim DD As String
- '--如果下班時間超過晚上12點時的分段計算------------------------------------------
- If Strings.Left(月清單_dgv.Rows(I).Cells("一段下班").Value.ToString, 2) = "00" Then
- DD = "23:59:59" : Dim TSFM As Integer = DateDiff("s", "00:00:00", 月清單_dgv.Rows(I).Cells("一段下班").Value) : QASW1 = TSFM
- Else : DD = 月清單_dgv.Rows(I).Cells("一段下班").Value.ToString : QASW1 = 0 : End If
- '--第一段上班時間正常打卡計算------------------------------------------
- If 月清單_dgv.Rows(I).Cells("一段上班").Value.ToString <> "" And DD <> "" Then
- Dim TSFM As Integer = DateDiff("s", 月清單_dgv.Rows(I).Cells("一段上班").Value.ToString, DD)
- TSFM += QASW1
- If 時薪制_ch.Checked = False Then
- If 月清單_dgv.Rows(I).Cells("半天").Value = False Then
- '--第二段上下班都沒打卡,但是累計工時大於4小時(14400),先扣除一小時休息,第一段工時等於4小時,在把時數放到第二段工時------------------------------------------
- If (月清單_dgv.Rows(I).Cells("二段上班").Value.ToString = "" Or 月清單_dgv.Rows(I).Cells("二段下班").Value = "") And TSFM > 14400 Then
- QASW2 = TSFM - 14400 - (Val(月清單_dgv.Rows(I).Cells("休息1").Value) * 3600)
- If QASW2 < 0 Then : QASW2 = 0 : End If
- TSFM = 14400
- '--如果加班上下班都沒打卡,但扣除第一段時數的累計工時還是大於4小時(14400),先扣除一小時休息,第二段工時等於4小時,在把時數放到加班段工時------------------------------------------
- If (月清單_dgv.Rows(I).Cells("加班上班").Value.ToString = "" Or 月清單_dgv.Rows(I).Cells("加班下班").Value = "") And QASW2 > 14400 Then
- QASW3 = QASW2 - 14400 - (Val(月清單_dgv.Rows(I).Cells("休息2").Value) * 3600)
- If QASW3 < 0 Then : QASW3 = 0 : End If
- QASW2 = 14400
- T = QASW3 \ 86400 : T1 = QASW3 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("加班工時").Value = S2 & " : " & F2
- End If
- T = QASW2 \ 86400 : T1 = QASW2 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("二段工時").Value = S2 & " : " & F2
- End If
- Else
- If (月清單_dgv.Rows(I).Cells("二段上班").Value.ToString = "" Or 月清單_dgv.Rows(I).Cells("二段下班").Value = "") And TSFM > 14400 Then
- QASW2 = TSFM - 14400
- If QASW2 < 0 Then : QASW2 = 0 : End If
- TSFM = 14400
- '--如果加班上下班都沒打卡,但扣除第一段時數的累計工時還是大於4小時(14400),先扣除一小時休息,第二段工時等於4小時,在把時數放到加班段工時------------------------------------------
- If (月清單_dgv.Rows(I).Cells("加班上班").Value.ToString = "" Or 月清單_dgv.Rows(I).Cells("加班下班").Value = "") And QASW2 > 14400 Then
- QASW3 = QASW2 - 14400
- If QASW3 < 0 Then : QASW3 = 0 : End If
- QASW2 = 14400
- T = QASW3 \ 86400 : T1 = QASW3 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("加班工時").Value = S2 & " : " & F2
- End If
- T = QASW2 \ 86400 : T1 = QASW2 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("二段工時").Value = S2 & " : " & F2
- End If
- End If
- Else
- If (月清單_dgv.Rows(I).Cells("二段上班").Value.ToString = "" Or 月清單_dgv.Rows(I).Cells("二段下班").Value = "") And TSFM > 14400 Then
- QASW2 = TSFM - 14400
- If QASW2 < 0 Then : QASW2 = 0 : End If
- TSFM = 14400
- If (月清單_dgv.Rows(I).Cells("加班上班").Value.ToString = "" Or 月清單_dgv.Rows(I).Cells("加班下班").Value = "") And QASW2 > 14400 Then
- QASW3 = QASW2 - 14400
- If QASW3 < 0 Then : QASW3 = 0 : End If
- QASW2 = 14400
- T = QASW3 \ 86400 : T1 = QASW3 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("加班工時").Value = S2 & " : " & F2
- End If
- T = QASW2 \ 86400 : T1 = QASW2 Mod 86400 : S = T1 \ 3600 : S1 = T1 Mod 3600 : F = S1 \ 60 : M = S1 Mod 60
- S2 = T * 24 + S : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("二段工時").Value = S2 & " : " & F2
- End If
- 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 : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("一段工時").Value = S2 & " : " & F2
- End If
-
- '--如果下班時間超過晚上12點時的分段計算------------------------------------------
- If Strings.Left(月清單_dgv.Rows(I).Cells("二段下班").Value.ToString, 2) = "00" Then
- DD = "23:59:59" : Dim TSFM As Integer = DateDiff("s", "00:00:00", 月清單_dgv.Rows(I).Cells("二段下班").Value) : QASW1 = TSFM
- Else : DD = 月清單_dgv.Rows(I).Cells("二段下班").Value.ToString : QASW1 = 0 : End If
- '--第二段上班時間正常打卡計算------------------------------------------
- If 月清單_dgv.Rows(I).Cells("二段上班").Value.ToString <> "" And DD <> "" Then
- Dim TSFM As Integer = DateDiff("s", 月清單_dgv.Rows(I).Cells("二段上班").Value.ToString, DD)
- TSFM += QASW1
- 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 : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("二段工時").Value = S2 & " : " & F2
- End If
-
- '--如果下班時間超過晚上12點時的分段計算------------------------------------------
- If Strings.Left(月清單_dgv.Rows(I).Cells("加班下班").Value.ToString, 2) = "00" Then
- DD = "23:59:59" : Dim TSFM As Integer = DateDiff("s", "00:00:00", 月清單_dgv.Rows(I).Cells("二段下班").Value) : QASW1 = TSFM
- Else : DD = 月清單_dgv.Rows(I).Cells("加班下班").Value.ToString : QASW1 = 0 : End If
- '--加班上班時間正常打卡計算------------------------------------------
- If 月清單_dgv.Rows(I).Cells("加班上班").Value.ToString <> "" And DD <> "" Then
- Dim TSFM As Integer = DateDiff("s", 月清單_dgv.Rows(I).Cells("加班上班").Value.ToString, DD)
- TSFM += QASW1
- 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 : If M > 30 Then : F += 1 : End If : F2 = F
- 月清單_dgv.Rows(I).Cells("加班工時").Value = S2 & " : " & F2
- End If
-
- 當天總分 = (Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2)) +
- Val(Strings.Left(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2)) +
- Val(Strings.Left(月清單_dgv.Rows(I).Cells("加班工時").Value.ToString, 2))) * 60 +
- (Val(Strings.Right(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2)) +
- Val(Strings.Right(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2)) +
- Val(Strings.Right(月清單_dgv.Rows(I).Cells("加班工時").Value.ToString, 2)))
- If 當天總分 <= 240 Then
- 月清單_dgv.Rows(I).Cells("一段工時").Value = 當天總分 \ 60 & " : " & 當天總分 Mod 60
- 月清單_dgv.Rows(I).Cells("二段工時").Value = "" : 月清單_dgv.Rows(I).Cells("加班工時").Value = ""
- ElseIf 當天總分 > 240 Then
- 月清單_dgv.Rows(I).Cells("一段工時").Value = "4 : 0"
- 月清單_dgv.Rows(I).Cells("二段工時").Value = (當天總分 - 240) \ 60 & " : " & (當天總分 - 240) Mod 60
- If (當天總分 - 240) <= 240 Then : Else
- 月清單_dgv.Rows(I).Cells("二段工時").Value = "4 : 0"
- 月清單_dgv.Rows(I).Cells("一段加班").Value = (當天總分 - 240 - 240) \ 60 & " : " & (當天總分 - 240 - 240) Mod 60
- If (當天總分 - 240 - 240) <= 120 Then : Else
- 月清單_dgv.Rows(I).Cells("一段加班").Value = "2 : 0"
- 月清單_dgv.Rows(I).Cells("二段加班").Value = (當天總分 - 240 - 240 - 120) \ 60 & " : " & (當天總分 - 240 - 240 - 120) Mod 60
- If (當天總分 - 240 - 240 - 120) <= 120 Then : Else
- 月清單_dgv.Rows(I).Cells("二段加班").Value = "2 : 0"
- End If
- End If
- End If
- End If
- If 月清單_dgv.Rows(I).Cells("一段工時").Value.ToString = "0 : 0" Then
- 月清單_dgv.Rows(I).Cells("一段工時").Value = ""
- 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
-
- '---------------------------加班未申請去除------------------------------------------------------------------------------------------------------------------------------------
- If 月清單_dgv.Rows(I).Cells("申請狀態").Value.ToString <> "已核准" And 月清單_dgv.Rows(I).Cells("星期").Value.ToString <> "星期六" And
- 月清單_dgv.Rows(I).Cells("星期").Value.ToString <> "星期日" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "國定假日" Then
- 月清單_dgv.Rows(I).Cells("一段加班").Value = "" : 月清單_dgv.Rows(I).Cells("二段加班").Value = ""
- End If
- Next
-
- 平日班 = 0 : 正常時1 = 0 : 正常時2 = 0 : 正常時3 = 0 : 正常時4 = 0 : 加班時9 = 0 : 加班時10 = 0 : 加班時11 = 0 : 加班時12 = 0 : 加班時8 = 0 : 加班時21 = 0
- 加班時17 = 0 : 加班時18 = 0 : 加班時19 = 0 : 加班時20 = 0 : 加班時23 = 0 : 加班時24 = 0 : 加班時25 = 0 : 加班時26 = 0 : 假日班 = 0 : 加班時27 = 0 : 請假日 = 0
- For I As Integer = 0 To 月清單_dgv.Rows.Count - 1
- If 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "國定假日" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "" And
- 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "特休" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "未到" And
- 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "離職" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "補上班" Then
- 請假日 += 1
- End If
- ''---------------------------平日
- Dim 是否平日 As Boolean = True
- If 月清單_dgv.Rows(I).Cells("星期").Value.ToString = "星期六" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString = "補上班" Then : 是否平日 = True
- ElseIf 月清單_dgv.Rows(I).Cells("星期").Value.ToString = "星期六" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "補上班" Then : 是否平日 = False
- ElseIf 月清單_dgv.Rows(I).Cells("星期").Value.ToString = "星期日" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString = "補上班" Then : 是否平日 = True
- ElseIf 月清單_dgv.Rows(I).Cells("星期").Value.ToString = "星期日" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "補上班" Then : 是否平日 = False
- End If
-
- If 是否平日 = True And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "國定假日" And
- (月清單_dgv.Rows(I).Cells("休假類別").Value.ToString = "" Or 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString = "補上班") Then
- 加班時27 += 1
- If 月清單_dgv.Rows(I).Cells("一段工時").Value.ToString <> "" Then
- 平日班 += 1
- 正常時1 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2)) : 正常時2 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2))
- End If
- If 月清單_dgv.Rows(I).Cells("二段工時").Value.ToString <> "" Then
- 正常時3 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2)) : 正常時4 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2))
- End If
- If 月清單_dgv.Rows(I).Cells("一段加班").Value.ToString <> "" Then
- 加班時9 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段加班").Value.ToString, 2)) : 加班時10 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("一段加班").Value.ToString, 2))
- End If
- If 月清單_dgv.Rows(I).Cells("二段加班").Value.ToString <> "" Then
- 加班時11 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("二段加班").Value.ToString, 2)) : 加班時12 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("二段加班").Value.ToString, 2))
- End If
- End If
- ''---------------------------星期六
- If 月清單_dgv.Rows(I).Cells("星期").Value.ToString = "星期六" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "補上班" Then
- If 月清單_dgv.Rows(I).Cells("一段工時").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("一段工時").Value.ToString <> "0 : 0" Then
- 假日班 += 1
- 加班時3 = Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2)) : 加班時4 = Val(Strings.Right(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2))
- 加班時7 = 加班時3 + (加班時4 / 60)
- If 加班時7 > 2 Then
- 加班時8 += 2 : 加班時21 += (加班時7 - 2)
- Else
- 加班時8 += 加班時7
- End If
- End If
- If 月清單_dgv.Rows(I).Cells("二段工時").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("二段工時").Value.ToString <> "0 : 0" Then
- 加班時5 = Val(Strings.Left(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2)) : 加班時6 = Val(Strings.Right(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2))
- 加班時21 += 加班時5 + (加班時6 / 60)
- End If
- If 月清單_dgv.Rows(I).Cells("一段加班").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("一段加班").Value.ToString <> "0 : 0" Then
- 加班時13 = Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段加班").Value.ToString, 2)) : 加班時14 = Val(Strings.Right(月清單_dgv.Rows(I).Cells("一段加班").Value.ToString, 2))
- 加班時21 += (加班時13 + (加班時14 / 60))
- End If
- If 月清單_dgv.Rows(I).Cells("二段加班").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("二段加班").Value.ToString <> "0 : 0" Then
- 加班時15 = Val(Strings.Left(月清單_dgv.Rows(I).Cells("二段加班").Value.ToString, 2)) : 加班時16 = Val(Strings.Right(月清單_dgv.Rows(I).Cells("二段加班").Value.ToString, 2))
- 加班時21 += (加班時15 + (加班時16 / 60))
- End If
- End If
-
- '---------------------------星期日或國定假日
- If (月清單_dgv.Rows(I).Cells("星期").Value.ToString = "星期日" And 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString <> "補上班") Or
- 月清單_dgv.Rows(I).Cells("休假類別").Value.ToString = "國定假日" Then
- If 月清單_dgv.Rows(I).Cells("一段工時").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("一段工時").Value.ToString <> "0 : 0" Then
- 假日班 += 1
- 加班時17 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2)) : 加班時18 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("一段工時").Value.ToString, 2))
- End If
- If 月清單_dgv.Rows(I).Cells("二段工時").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("二段工時").Value.ToString <> "0 : 0" Then
- 加班時19 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2)) : 加班時20 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("二段工時").Value.ToString, 2))
- End If
- If 月清單_dgv.Rows(I).Cells("一段加班").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("一段加班").Value.ToString <> "0 : 0" Then
- 月清單_dgv.Rows(I).Cells("一段加班").Value = "0 : 0"
- 加班時23 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("一段加班").Value.ToString, 2)) : 加班時24 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("一段加班").Value.ToString, 2))
- End If
- If 月清單_dgv.Rows(I).Cells("二段加班").Value.ToString <> "" And 月清單_dgv.Rows(I).Cells("二段加班").Value.ToString <> "0 : 0" Then
- 月清單_dgv.Rows(I).Cells("二段加班").Value = "0 : 0"
- 加班時25 += Val(Strings.Left(月清單_dgv.Rows(I).Cells("二段加班").Value.ToString, 2)) : 加班時26 += Val(Strings.Right(月清單_dgv.Rows(I).Cells("二段加班").Value.ToString, 2))
- End If
- End If
-
- Next
- FF = (正常時2 + 正常時4) / 60
- 正常時 = 正常時1 + 正常時3 + FF
- 當月平日天_tb.Text = 平日班 + 假日班 : 當月假日天_tb.Text = 請假日
- 常日總_tb.Text = Format(正常時, "#,##0.00")
- 當月平日一段_tb.Text = Format((加班時9 + (加班時10 / 60)), "#,##0.00")
- 當月平日二段_tb.Text = Format((加班時11 + (加班時12 / 60)), "#,##0.00")
- 一段假日加_tb.Text = Format(加班時8, "#,##0.00")
- 二段假日加_tb.Text = Format(加班時21, "#,##0.00")
- 國假日加_tb.Text = Format(加班時17 + 加班時19 + 加班時23 + 加班時25 + (加班時18 + 加班時20 + 加班時24 + 加班時26) / 60, "#,##0.00")
- Set_時薪制() : Set_彈性工時()
-
- 加班總_tb.Text = Format((加班時9 + (加班時10 / 60)) + (加班時11 + (加班時12 / 60)) + 加班時8 + 加班時21 +
- (加班時17 + 加班時19 + 加班時23 + 加班時25 + (加班時18 + 加班時20 + 加班時24 + 加班時26) / 60), "#,##0.00")
- End Sub
- Private Sub Set_時薪制()
- If 時薪制_ch.Checked = False Then
- 當月應上天數_tb.Text = 加班時27
- 上班總工時_tb.Text = Format(加班時27 * 8, "#,##0.00")
- 應上未上時數_tb.Text = Format((加班時27 * 8) - 正常時, "#,##0.00")
- Else
- 當月應上天數_tb.Text = "0" : 上班總工時_tb.Text = "0.00" : 應上未上時數_tb.Text = "0.00"
- End If
- End Sub
- Private Sub Set_彈性工時()
- If 彈性工時_ch.Checked = False Then
- 當月平日一段1_tb.Text = 當月平日一段_tb.Text : 當月平日二段1_tb.Text = 當月平日二段_tb.Text : 一段假日加1_tb.Text = 一段假日加_tb.Text
- 二段假日加1_tb.Text = 二段假日加_tb.Text : 國假日加1_tb.Text = 國假日加_tb.Text
- Else
- 彈性扣時 = 應上未上時數_tb.Text
- If Val(國假日加_tb.Text) >= 彈性扣時 Then
- 國假日加1_tb.Text = Format(Val(國假日加_tb.Text) - 彈性扣時, "#,##0.00")
- 當月平日一段1_tb.Text = 當月平日一段_tb.Text : 當月平日二段1_tb.Text = 當月平日二段_tb.Text : 一段假日加1_tb.Text = 一段假日加_tb.Text : 二段假日加1_tb.Text = 二段假日加_tb.Text
- ElseIf Val(國假日加_tb.Text) <彈性扣時 Then
- 彈性扣時 -= Val(國假日加_tb.Text) : 國假日加1_tb.Text = "0.00"
- If Val(二段假日加_tb.Text) >= 彈性扣時 Then
- 二段假日加1_tb.Text = Format(Val(二段假日加_tb.Text) - 彈性扣時, "#,##0.00")
- 當月平日一段1_tb.Text = 當月平日一段_tb.Text : 當月平日二段1_tb.Text = 當月平日二段_tb.Text : 一段假日加1_tb.Text = 一段假日加_tb.Text
- ElseIf Val(二段假日加_tb.Text) < 彈性扣時 Then
- 彈性扣時 -= Val(二段假日加_tb.Text) : 二段假日加1_tb.Text = "0.00"
- If Val(當月平日二段_tb.Text) >= 彈性扣時 Then
- 當月平日二段1_tb.Text = Format(Val(當月平日二段_tb.Text) - 彈性扣時, "#,##0.00")
- 當月平日一段1_tb.Text = 當月平日一段_tb.Text : 一段假日加1_tb.Text = 一段假日加_tb.Text
- ElseIf Val(當月平日二段_tb.Text) < 彈性扣時 Then
- 彈性扣時 -= Val(當月平日二段_tb.Text) : 當月平日二段1_tb.Text = "0.00"
- If Val(一段假日加_tb.Text) >= 彈性扣時 Then
- 一段假日加1_tb.Text = Format(Val(一段假日加_tb.Text) - 彈性扣時, "#,##0.00")
- 當月平日一段1_tb.Text = 當月平日一段_tb.Text
- ElseIf Val(一段假日加_tb.Text) < 彈性扣時 Then
- 彈性扣時 -= Val(一段假日加_tb.Text) : 一段假日加1_tb.Text = "0.00"
- If Val(當月平日一段_tb.Text) >= 彈性扣時 Then
- 當月平日一段1_tb.Text = Format(Val(當月平日一段_tb.Text) - 彈性扣時, "#,##0.00")
- ElseIf Val(當月平日一段_tb.Text) < 彈性扣時 Then
- 當月平日一段1_tb.Text = "0.00"
- End If
- End If
- End If
- End If
- End If
- End If
- End Sub
- Private Sub Set_考勤流水()
- 考勤流水_dgv.DataSource = Nothing : ds5.Clear()
- 考勤流水_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 考勤流水_dgv.ColumnHeadersHeight = 25
- 考勤流水_dgv.AllowUserToAddRows = False
- SQL_考勤明細表_考勤流水()
- da.Fill(ds5) : 考勤流水_dgv.DataSource = ds5.Tables(0) : conn.Close()
- 考勤流水_dgv.Columns(0).FillWeight = 30 : 考勤流水_dgv.Columns(1).FillWeight = 30 : 考勤流水_dgv.Columns(2).FillWeight = 100
- For i As Integer = 0 To 考勤流水_dgv.Rows.Count - 1
- 考勤流水_dgv.Rows(i).Cells("No.").Value = i + 1
- Next
- End Sub
- Private Sub 讀取班別()
- 班別_dgv.DataSource = Nothing : ds7.Clear()
- 班別_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 班別_dgv.ColumnHeadersHeight = 25
- 班別_dgv.AllowUserToAddRows = False
- SQL_考勤明細表_班別()
- da.Fill(ds7) : 班別_dgv.DataSource = ds7.Tables(0) : conn.Close()
- 班別_dgv.Columns(0).FillWeight = 80 : 班別_dgv.Columns(1).FillWeight = 130 : 班別_dgv.Columns(2).FillWeight = 130 : 班別_dgv.Columns(3).FillWeight = 100
- 班別_dgv.Columns(4).FillWeight = 130 : 班別_dgv.Columns(5).FillWeight = 100 : 班別_dgv.Columns(6).FillWeight = 100 : 班別_dgv.Columns(7).FillWeight = 100
- 班別_dgv.Columns(8).FillWeight = 100 : 班別_dgv.Columns(9).Visible = False : 班別_dgv.Columns(10).FillWeight = 100 : 班別_dgv.Columns(11).Visible = False
- 班別_dgv.Columns(12).FillWeight = 100 : 班別_dgv.Columns(13).Visible = False : 班別_dgv.Columns(14).Visible = False
- End Sub
- Private Sub 讀取打卡時間1()
- 時間讀取1_dgv.DataSource = Nothing : ds2.Clear()
- 時間讀取1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 時間讀取1_dgv.ColumnHeadersHeight = 25
- 時間讀取1_dgv.AllowUserToAddRows = False
- SQL_考勤明細表_打卡讀取_上午上班()
- da.Fill(ds2) : 時間讀取1_dgv.DataSource = ds2.Tables(0) : conn.Close()
- End Sub
- Private Sub 讀取打卡時間2()
- 時間讀取2_dgv.DataSource = Nothing : ds3.Clear()
- 時間讀取2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 時間讀取2_dgv.ColumnHeadersHeight = 25
- 時間讀取2_dgv.AllowUserToAddRows = False
- SQL_考勤明細表_打卡讀取_中午下上班()
- da.Fill(ds3) : 時間讀取2_dgv.DataSource = ds3.Tables(0) : conn.Close()
- End Sub
- Private Sub 讀取打卡時間3()
- 時間讀取3_dgv.DataSource = Nothing : ds4.Clear()
- 時間讀取3_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 時間讀取3_dgv.ColumnHeadersHeight = 25
- 時間讀取3_dgv.AllowUserToAddRows = False
- SQL_考勤明細表_打卡讀取_晚上下上班()
- da.Fill(ds4) : 時間讀取3_dgv.DataSource = ds4.Tables(0) : conn.Close()
- End Sub
- Private Sub 讀取打卡時間4()
- 時間讀取4_dgv.DataSource = Nothing : ds6.Clear()
- 時間讀取4_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 時間讀取4_dgv.ColumnHeadersHeight = 25
- 時間讀取4_dgv.AllowUserToAddRows = False
- SQL_考勤明細表_打卡讀取_加班下班()
- da.Fill(ds6) : 時間讀取4_dgv.DataSource = ds6.Tables(0) : conn.Close()
- End Sub
- Private Sub 讀取日期()
- 日期_dgv.DataSource = Nothing : ds8.Clear()
- 日期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 日期_dgv.ColumnHeadersHeight = 25
- 日期_dgv.AllowUserToAddRows = False
- SQL_讀取日期()
- da.Fill(ds8) : 日期_dgv.DataSource = ds8.Tables(0) : conn.Close()
- End Sub
- Private Sub 年份_下拉表單資料載入()
- SQL_考勤明細表_年份_下拉()
- 年份_cb.Items.Clear()
- While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : End While
- conn.Close()
- End Sub
- Private Sub 讀取彙總表()
- For I As Integer = 0 To 整體考勤_dgv.Rows.Count - 1 : 整體考勤_dgv.Rows.RemoveAt(0) : Next
- For I As Integer = 0 To 排班彙總_dgv.Rows.Count - 1 : 排班彙總_dgv.Rows.RemoveAt(0) : Next
-
- Dim QA As Integer = 0
- For I As Integer = 0 To 日期_dgv.Rows.Count - 1
- For II As Integer = 0 To 班別_dgv.Rows.Count - 1
- 排班彙總_dgv.Rows.Add()
- 排班彙總_dgv.Rows(QA).Cells("日期").Value = 日期_dgv("日期", I).Value.ToString
- 排班彙總_dgv.Rows(QA).Cells("星期").Value = 日期_dgv("星期", I).Value.ToString
- 排班彙總_dgv.Rows(QA).Cells("班別").Value = 班別_dgv("時段", II).Value.ToString
- 排班彙總_dgv.Rows(QA).Cells("姓名").Value = ""
- QA += 1
- Next
- Next
- For I As Integer = 0 To 人員_dgv.Rows.Count - 1
- 資料數 = 31 * 人員_dgv.Rows.Count
- 編號 = 人員_dgv("編號", I).Value.ToString : 姓名_tb.Text = 人員_dgv("姓名", I).Value.ToString
- Set_考勤明細()
- For II As Integer = 0 To 月清單_dgv.Rows.Count - 1
- For III As Integer = 0 To 排班彙總_dgv.Rows.Count - 1
- If 月清單_dgv.Rows(II).Cells("日期").Value.ToString = 排班彙總_dgv.Rows(III).Cells("日期").Value.ToString And
- 月清單_dgv.Rows(II).Cells("班別判斷").Value.ToString = 排班彙總_dgv.Rows(III).Cells("班別").Value.ToString Then
- If 排班彙總_dgv.Rows(III).Cells("姓名").Value.ToString = "" Then
- 排班彙總_dgv.Rows(III).Cells("姓名").Value = 姓名_tb.Text
- Else
- 排班彙總_dgv.Rows(III).Cells("姓名").Value = 排班彙總_dgv.Rows(III).Cells("姓名").Value.ToString & " , " & 姓名_tb.Text
- End If
- End If
- Next
- Next
-
- 整體考勤_dgv.Rows.Add()
- 整體考勤_dgv.Rows(I).Cells("No").Value = I + 1 : 整體考勤_dgv.Rows(I).Cells("姓名").Value = 人員_dgv("姓名", I).Value.ToString
- 整體考勤_dgv.Rows(I).Cells("年份").Value = 年份_cb.Text : 整體考勤_dgv.Rows(I).Cells("月份").Value = 月份_cb.Text
- 整體考勤_dgv.Rows(I).Cells("漏打卡次數").Value = "0 次"
- If 常日總_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("平日總工時").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("平日總工時").Value = Val(Strings.Left(常日總_tb.Text, 3)) & " 時 " & Val(Strings.Right(常日總_tb.Text, 2)) & " 分"
- End If
- If 加班總_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("加班總工時").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("加班總工時").Value = Val(Strings.Left(加班總_tb.Text, 2)) & " 時 " & Val(Strings.Right(加班總_tb.Text, 2)) & " 分"
- End If
- If 上班總工時_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("總工時").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("總工時").Value = Val(Strings.Left(上班總工時_tb.Text, 3)) & " 時 " & Val(Strings.Right(上班總工時_tb.Text, 2)) & " 分"
- End If
- 整體考勤_dgv.Rows(I).Cells("平日上班天數").Value = 當月平日天_tb.Text & " 天" : 整體考勤_dgv.Rows(I).Cells("假日上班天數").Value = 當月假日天_tb.Text & " 天"
- If 常日總_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("平日上班時數").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("平日上班時數").Value = Val(Strings.Left(常日總_tb.Text, 3)) & " 時 " & Val(Strings.Right(常日總_tb.Text, 2)) & " 分"
- End If
- If 當月平日一段_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("平日一段加班").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("平日一段加班").Value = Val(Strings.Left(當月平日一段_tb.Text, 2)) & " 時 " & Val(Strings.Right(當月平日一段_tb.Text, 2)) & " 分"
- End If
- If 當月平日二段_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("平日二段加班").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("平日二段加班").Value = Val(Strings.Left(當月平日二段_tb.Text, 2)) & " 時 " & Val(Strings.Right(當月平日二段_tb.Text, 2)) & " 分"
- End If
- If 一段假日加_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("一段假日加班時數").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("一段假日加班時數").Value = Val(Strings.Left(一段假日加_tb.Text, 2)) & " 時 " & Val(Strings.Right(一段假日加_tb.Text, 2)) & " 分"
- End If
- If 二段假日加_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("二段假日加班時數").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("二段假日加班時數").Value = Val(Strings.Left(二段假日加_tb.Text, 2)) & " 時 " & Val(Strings.Right(二段假日加_tb.Text, 2)) & " 分"
- End If
- If 國假日加_tb.Text = "0 : 0" Then : 整體考勤_dgv.Rows(I).Cells("國定假日加班時數").Value = "" : Else
- 整體考勤_dgv.Rows(I).Cells("國定假日加班時數").Value = Val(Strings.Left(國假日加_tb.Text, 2)) & " 時 " & Val(Strings.Right(國假日加_tb.Text, 2)) & " 分"
- End If
- Next : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
-
- Set_考勤流水()
- 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
- GCM_ERP_SYS.WindowState = 2
- 年份_下拉表單資料載入() : 讀取班別()
- 年份_cb.Text = Year(Today) : 月份_cb.SelectedIndex = Month(Today) - 1
- PA1 = 年份_cb.Text : PA2 = 月份_cb.Text
- Dim DB01, DB02, DB03, DB04, DB05, DB06, DB07, DB08, DB09, DB10, DB11, DB12, DB13, DB14, DB15, DB16 As New DataGridViewTextBoxColumn
- DB01.HeaderText = "No" : DB01.Name = "No" : 整體考勤_dgv.Columns.Insert(0, DB01)
- DB02.HeaderText = "姓名" : DB02.Name = "姓名" : 整體考勤_dgv.Columns.Insert(1, DB02)
- DB03.HeaderText = "年份" : DB03.Name = "年份" : 整體考勤_dgv.Columns.Insert(2, DB03)
- DB04.HeaderText = "月份" : DB04.Name = "月份" : 整體考勤_dgv.Columns.Insert(3, DB04)
- DB05.HeaderText = "漏打卡次數" : DB05.Name = "漏打卡次數" : 整體考勤_dgv.Columns.Insert(4, DB05)
- DB06.HeaderText = "平日總工時" : DB06.Name = "平日總工時" : 整體考勤_dgv.Columns.Insert(5, DB06)
- DB07.HeaderText = "加班總工時" : DB07.Name = "加班總工時" : 整體考勤_dgv.Columns.Insert(6, DB07)
- DB08.HeaderText = "總工時" : DB08.Name = "總工時" : 整體考勤_dgv.Columns.Insert(7, DB08)
- DB09.HeaderText = "平日上班天數" : DB09.Name = "平日上班天數" : 整體考勤_dgv.Columns.Insert(8, DB09)
- DB10.HeaderText = "平日上班時數" : DB10.Name = "平日上班時數" : 整體考勤_dgv.Columns.Insert(9, DB10)
- DB11.HeaderText = "平日一段加班" : DB11.Name = "平日一段加班" : 整體考勤_dgv.Columns.Insert(10, DB11)
- DB12.HeaderText = "平日二段加班" : DB12.Name = "平日二段加班" : 整體考勤_dgv.Columns.Insert(11, DB12)
- DB13.HeaderText = "假日上班天數" : DB13.Name = "假日上班天數" : 整體考勤_dgv.Columns.Insert(12, DB13)
- DB14.HeaderText = "一段假日加班時數" : DB14.Name = "一段假日加班時數" : 整體考勤_dgv.Columns.Insert(13, DB14)
- DB15.HeaderText = "二段假日加班時數" : DB15.Name = "二段假日加班時數" : 整體考勤_dgv.Columns.Insert(14, DB15)
- DB16.HeaderText = "國定假日加班時數" : DB16.Name = "國定假日加班時數" : 整體考勤_dgv.Columns.Insert(15, DB16)
- 整體考勤_dgv.ColumnHeadersHeight = 40 : 整體考勤_dgv.AllowUserToAddRows = False
- 整體考勤_dgv.Columns(0).FillWeight = 50 : 整體考勤_dgv.Columns(1).FillWeight = 70 : 整體考勤_dgv.Columns(2).FillWeight = 50 : 整體考勤_dgv.Columns(3).FillWeight = 50
- 整體考勤_dgv.Columns(4).FillWeight = 100 : 整體考勤_dgv.Columns(5).FillWeight = 100 : 整體考勤_dgv.Columns(6).FillWeight = 100 : 整體考勤_dgv.Columns(7).FillWeight = 100
- 整體考勤_dgv.Columns(8).FillWeight = 100 : 整體考勤_dgv.Columns(9).FillWeight = 100 : 整體考勤_dgv.Columns(10).FillWeight = 100 : 整體考勤_dgv.Columns(11).FillWeight = 100
- 整體考勤_dgv.Columns(12).FillWeight = 100 : 整體考勤_dgv.Columns(13).FillWeight = 100 : 整體考勤_dgv.Columns(14).FillWeight = 100 : 整體考勤_dgv.Columns(15).FillWeight = 100
- For I As Integer = 0 To 15
- 整體考勤_dgv.Columns(I).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
- Next
-
- Dim DE01, DE02, DE03, DE04, DE05, DE06, DE07, DE08, DE09, DE10, DE11, DE12, DE13, DE14, DE15, DE16 As New DataGridViewTextBoxColumn
- DE01.HeaderText = "日期" : DE01.Name = "日期" : 排班彙總_dgv.Columns.Insert(0, DE01)
- DE02.HeaderText = "星期" : DE02.Name = "星期" : 排班彙總_dgv.Columns.Insert(1, DE02)
- DE03.HeaderText = "班別" : DE03.Name = "班別" : 排班彙總_dgv.Columns.Insert(2, DE03)
- DE04.HeaderText = "姓名" : DE04.Name = "姓名" : 排班彙總_dgv.Columns.Insert(3, DE04)
- 排班彙總_dgv.ColumnHeadersHeight = 40 : 排班彙總_dgv.AllowUserToAddRows = False
- 排班彙總_dgv.Columns(0).FillWeight = 80 : 排班彙總_dgv.Columns(1).FillWeight = 70 : 排班彙總_dgv.Columns(2).FillWeight = 90 : 排班彙總_dgv.Columns(3).FillWeight = 300
- 讀取日期()
-
- If BB(16) = False Then
- 考勤資料編輯_bt.Enabled = False : 時薪制_ch.Enabled = False : 彈性工時_ch.Enabled = False
- 人員_dgv.Enabled = False : 整體考勤彙總_bt.Enabled = False : 排班彙總_bt.Enabled = False : 重新讀取_bt.Enabled = False
- 姓名_tb.Text = gUserName : 資料數 = 31
- For i As Integer = 0 To 人員_dgv.Rows.Count - 1 : If 姓名_tb.Text = 人員_dgv("姓名", i).Value.ToString Then : 時薪制_ch.Checked = 人員_dgv("CC18", i).Value : End If : Next
- SQL_考勤明細表_讀取編號() : If dr.Read() Then : 編號 = dr("DIN") : End If
- Set_考勤明細() : Set_考勤流水() : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
- End If
- End Sub
- Private Sub 考勤明細表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
- GCM_ERP_SYS.WindowState = 0
- End Sub
- Private Sub 人員_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 人員_dgv.CellClick
- If e.RowIndex = -1 Then : Else
- 編號 = 人員_dgv("編號", e.RowIndex).Value.ToString : 姓名_tb.Text = 人員_dgv("姓名", e.RowIndex).Value.ToString
- 時薪制_ch.Checked = 人員_dgv("CC18", e.RowIndex).Value
- 資料數 = 31 : Set_考勤明細() : Set_考勤流水() : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
- End If
- End Sub
- Private Sub 考勤流水_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 考勤流水_dgv.CellClick
- If e.RowIndex = -1 Then : Else
- ID_tb.Text = 考勤流水_dgv("ID", e.RowIndex).Value.ToString : 時間_tb.Text = 考勤流水_dgv("打卡時間", e.RowIndex).Value.ToString
- PA6 = 考勤流水_dgv("打卡時間", e.RowIndex).Value.ToString : PA3 = 考勤流水_dgv("ID", e.RowIndex).Value.ToString
- End If
- End Sub
- Private Sub 月清單_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 月清單_dgv.CellClick
- If e.RowIndex = -1 Then : Else
- ID_tb.Text = "" : 時間_tb.Text = ""
- 時間_tb.Text = Strings.Left(月清單_dgv("日期", e.RowIndex).Value, 4) & "-" & Strings.Mid(月清單_dgv("日期", e.RowIndex).Value, 6, 2) &
- "-" & Strings.Right(月清單_dgv("日期", e.RowIndex).Value, 2)
- If e.ColumnIndex = 8 Or e.ColumnIndex = 9 Or e.ColumnIndex = 11 Or e.ColumnIndex = 12 Or e.ColumnIndex = 14 Or e.ColumnIndex = 15 Then
- 時間_tb.Text = 時間_tb.Text & " " & 月清單_dgv(e.ColumnIndex, e.RowIndex).Value
- For i As Integer = 0 To 考勤流水_dgv.Rows.Count - 1
- If Len(時間_tb.Text) > 11 Then
- If 時間_tb.Text = 考勤流水_dgv("打卡時間", i).Value.ToString Then
- ID_tb.Text = 考勤流水_dgv("ID", i).Value : PA3 = 考勤流水_dgv("ID", i).Value : PA6 = 考勤流水_dgv("打卡時間", i).Value.ToString : Exit For
- End If
- ElseIf Len(時間_tb.Text) = 11 Then
- If Strings.Left(時間_tb.Text, 10) = Strings.Left(考勤流水_dgv("打卡時間", i).Value.ToString, 10) Then
- ID_tb.Text = 考勤流水_dgv("ID", i).Value : PA3 = 考勤流水_dgv("ID", i).Value : PA6 = 考勤流水_dgv("打卡時間", i).Value.ToString : Exit For
- End If
- End If
- Next
- If ID_tb.Text = "" Then
- If 考勤流水_dgv.Rows.Count > 0 Then
- ID_tb.Text = 考勤流水_dgv("ID", 0).Value : PA3 = 考勤流水_dgv("ID", 0).Value : PA6 = 考勤流水_dgv("打卡時間", 0).Value.ToString
- Else
- MsgBox("一筆考勤都沒有的情況下無法編輯!!!!")
- End If
- End If
- Else
- 時間_tb.Text = "" : ID_tb.Text = ""
- End If
- End If
- End Sub
- Private Sub 月清單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 月清單_dgv.RowPostPaint
- For I As Integer = 0 To 月清單_dgv.Rows.Count - 1
- 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
- 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 Strings.Left(考勤流水_dgv("打卡時間", e.RowIndex).Value.ToString, 10) <> Strings.Left(考勤流水_dgv("打卡時間", e.RowIndex + 1).Value.ToString, 10) 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
- 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("星期", e.RowIndex).Value.ToString <> 排班彙總_dgv("星期", 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
- End Sub
- Private Sub 月份_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份_cb.SelectedIndexChanged
- PA1 = 年份_cb.Text : PA2 = 月份_cb.Text : 讀取人員資料表()
- If 編號 <> "" Then
- 資料數 = 31 : Set_考勤明細() : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
- 讀取日期()
- End If
- End Sub
- Private Sub 個人考勤明細_bt_Click(sender As Object, e As EventArgs) Handles 個人考勤明細_bt.Click
- 個人考勤明細_bt.Enabled = False : 整體考勤彙總_bt.Enabled = True : 排班彙總_bt.Enabled = True : 整體考勤_dgv.Visible = False : 排班彙總_dgv.Visible = False : 月清單_dgv.Visible = True
- End Sub
- Private Sub 整體考勤彙總_bt_Click(sender As Object, e As EventArgs) Handles 整體考勤彙總_bt.Click
- 整體考勤彙總_bt.Enabled = False : 個人考勤明細_bt.Enabled = True : 排班彙總_bt.Enabled = True : 整體考勤_dgv.Visible = True : 排班彙總_dgv.Visible = False : 月清單_dgv.Visible = False
- If 整體考勤_dgv.Rows.Count > 0 Then : Else : 讀取彙總表() : End If
- End Sub
- Private Sub 排班彙總_bt_Click(sender As Object, e As EventArgs) Handles 排班彙總_bt.Click
- 排班彙總_bt.Enabled = False : 個人考勤明細_bt.Enabled = True : 整體考勤彙總_bt.Enabled = True : 整體考勤_dgv.Visible = False : 排班彙總_dgv.Visible = True : 月清單_dgv.Visible = False
- If 排班彙總_dgv.Rows.Count > 0 Then : Else : 讀取彙總表() : End If
- End Sub
- Private Sub 重新讀取_bt_Click(sender As Object, e As EventArgs) Handles 重新讀取_bt.Click
- 讀取彙總表()
- End Sub
- Private Sub 考勤資料編輯_bt_Click(sender As Object, e As EventArgs) Handles 考勤資料編輯_bt.Click
- If PA6 <> "" And PA3 <> "" And IsNumeric(PA3) <> False Then
- PA4 = PA6 : PA = 年份_cb.Text : PA1 = 月份_cb.Text : PA2 = Strings.Mid(PA6, 9, 2)
- PA5 = 姓名_tb.Text : PA7 = 編號
- 考勤明細表_編輯.ShowDialog()
-
- PA = 編號 : PA1 = 年份_cb.Text : PA2 = 月份_cb.Text
- Set_考勤流水() : 資料數 = 31 : Set_考勤明細() : GCM_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
- Else
- MsgBox("請選擇右下方的時間,做為修改的依據!!")
- End If
- End Sub
- Private Sub 排班資料_bt_Click(sender As Object, e As EventArgs) Handles 排班資料_bt.Click
- PA = 年份_cb.Text : PA1 = 月份_cb.Text : PA2 = 姓名_tb.Text : 個人班表.Close() : 個人班表.Show()
- End Sub
- Private Sub 時薪制_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 時薪制_ch.Click
- Set_時薪制()
- End Sub
- Private Sub 彈性工時_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 彈性工時_ch.Click
- Set_彈性工時()
- End Sub
- End Class
|