123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- 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: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 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 考勤打卡資料補登_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
- ComboBox1下拉表單資料載入() : Set_人員清單()
- 年份_cb.Text = Year(Today) : 月份_cb.SelectedIndex = Month(Today) - 1
- 下午小時_cb.Enabled = False : 下午分鐘1_cb.Enabled = False : 下午分鐘2_cb.Enabled = False : 下午秒數1_cb.Enabled = False : 下午秒數2_cb.Enabled = False
- 上午小時_cb.Enabled = False : 上午分鐘1_cb.Enabled = False : 上午分鐘2_cb.Enabled = False : 上午秒數1_cb.Enabled = False : 上午秒數2_cb.Enabled = False
- 明細_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 : Set_考勤明細() : 入職日期_dtp.Value = 員工_dgv(3, e.RowIndex).Value.ToString
- Dim TSFM As Integer = DateDiff("d", 入職日期_dtp.Value, Today()) : 在職天數_tb.Text = TSFM
- 申請人_tb.Text = 員工_dgv(1, e.RowIndex).Value.ToString : 員工編號_tb.Text = 員工_dgv(0, e.RowIndex).Value.ToString
- End If
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 補登上午上班_bt.Click
- 補登上午上班_bt.Enabled = False : 補登下午下班_bt.Enabled = True : 選擇補登考勤時段_lb.Text = "選擇補登考勤時段 : 上午上班"
- 下午小時_cb.Enabled = False : 下午分鐘1_cb.Enabled = False : 下午分鐘2_cb.Enabled = False : 下午秒數1_cb.Enabled = False : 下午秒數2_cb.Enabled = False
- 上午小時_cb.Enabled = True : 上午分鐘1_cb.Enabled = True : 上午分鐘2_cb.Enabled = True : 上午秒數1_cb.Enabled = True : 上午秒數2_cb.Enabled = True
- End Sub
- Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 補登下午下班_bt.Click
- 補登上午上班_bt.Enabled = True : 補登下午下班_bt.Enabled = False : 選擇補登考勤時段_lb.Text = "選擇補登考勤時段 : 下午下班"
- 下午小時_cb.Enabled = True : 下午分鐘1_cb.Enabled = True : 下午分鐘2_cb.Enabled = True : 下午秒數1_cb.Enabled = True : 下午秒數2_cb.Enabled = True
- 上午小時_cb.Enabled = False : 上午分鐘1_cb.Enabled = False : 上午分鐘2_cb.Enabled = False : 上午秒數1_cb.Enabled = False : 上午秒數2_cb.Enabled = False
- End Sub
- Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 公事出差_bt.Click
- 選擇補登考勤特性_lb.Text = "選擇補登考勤特性 : 公事出差,考勤表會取消該次漏打卡紀錄"
- 漏打卡_bt.Enabled = True : 公事出差_bt.Enabled = False
- End Sub
- Private Sub Button4_Click(sender As Object, e As EventArgs) Handles 漏打卡_bt.Click
- 選擇補登考勤特性_lb.Text = "選擇補登考勤特性 : 漏打卡,考勤表不會取消該次漏打卡紀錄"
- 漏打卡_bt.Enabled = False : 公事出差_bt.Enabled = True
- End Sub
- Private Sub Button6_Click(sender As Object, e As EventArgs) Handles 確定補登考勤資料_bt.Click
- Dim 有無資料判別1 As String = "" : Dim 有無資料判別2 As String = "" : PA = ""
- SQL_員工編號補登()
- If dr.Read() Then : 有無資料判別1 = dr("員工編號").ToString : End If : conn.Close()
- SQL_員工補登()
- If dr.Read() Then : 有無資料判別2 = dr("員工編號").ToString : End If : conn.Close()
-
-
- If 有無資料判別1 = "" Then
- If 公事出差_bt.Enabled = False And 漏打卡_bt.Enabled = True Then
- PA = InputBox("請輸入公差原因")
- If PA = "" Then
- MsgBox("公差原因不可空白") : Exit Sub
- End If
- End If
- If 補登上午上班_bt.Enabled = False And 補登下午下班_bt.Enabled = True And 公事出差_bt.Enabled = False And 漏打卡_bt.Enabled = True Then
- SQL_公差補登()
- ElseIf 補登上午上班_bt.Enabled = False And 補登下午下班_bt.Enabled = True And 公事出差_bt.Enabled = True And 漏打卡_bt.Enabled = False Then
- SQL_漏打卡補登1()
- ElseIf 補登上午上班_bt.Enabled = True And 補登下午下班_bt.Enabled = False And 公事出差_bt.Enabled = False And 漏打卡_bt.Enabled = True Then
- SQL_公差補登()
- ElseIf 補登上午上班_bt.Enabled = True And 補登下午下班_bt.Enabled = False And 公事出差_bt.Enabled = True And 漏打卡_bt.Enabled = False Then
- SQL_漏打卡補登()
- End If
- Else
- If 補登上午上班_bt.Enabled = False And 補登下午下班_bt.Enabled = True And 公事出差_bt.Enabled = False And 漏打卡_bt.Enabled = True Then
- ElseIf 補登上午上班_bt.Enabled = False And 補登下午下班_bt.Enabled = True And 公事出差_bt.Enabled = True And 漏打卡_bt.Enabled = False Then
- SQL_更改上午補登()
- ElseIf 補登上午上班_bt.Enabled = True And 補登下午下班_bt.Enabled = False And 公事出差_bt.Enabled = False And 漏打卡_bt.Enabled = True Then
- ElseIf 補登上午上班_bt.Enabled = True And 補登下午下班_bt.Enabled = False And 公事出差_bt.Enabled = True And 漏打卡_bt.Enabled = False Then
- SQL_更改下午補登()
- End If
- End If
-
- ConnOpen()
- If 有無資料判別2 = "" Then
- If 補登上午上班_bt.Enabled = False And 補登下午下班_bt.Enabled = True Then
- SQL_補登上午()
- ElseIf 補登上午上班_bt.Enabled = True And 補登下午下班_bt.Enabled = False Then
- SQL_補登下午()
- End If
- Else
- If 補登上午上班_bt.Enabled = False And 補登下午下班_bt.Enabled = True Then
- SQL_更改上午補登1()
- ElseIf 補登上午上班_bt.Enabled = True And 補登下午下班_bt.Enabled = False Then
- SQL_更改下午補登1()
- End If
- End If
-
- Set_考勤明細() : MsgBox("補打卡成功")
- 漏打卡_bt.Enabled = True : 公事出差_bt.Enabled = True : 補登上午上班_bt.Enabled = True : 補登下午下班_bt.Enabled = True
- 下午小時_cb.Enabled = False : 下午分鐘1_cb.Enabled = False : 下午分鐘2_cb.Enabled = False : 下午秒數1_cb.Enabled = False : 下午秒數2_cb.Enabled = False
- 上午小時_cb.Enabled = False : 上午分鐘1_cb.Enabled = False : 上午分鐘2_cb.Enabled = False : 上午秒數1_cb.Enabled = False : 上午秒數2_cb.Enabled = False
- End Sub
-
- Private Sub 重新讀取_bt_Click(sender As Object, e As EventArgs) Handles 重新讀取_bt.Click
- Set_考勤明細() : Set_人員清單()
- End Sub
- End Class
|