⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmdealdata.frm

📁 人事管理系统的一个比较不错的VB软件 有管理系统的功能
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      
         Set mrc = ExecuteSQL(txtSql)
         
         If Not mrc.EOF Then
            BeginEnd1 = True
            txtBegin1 = mrc.Fields(2).Value
         End If
            
      End If
      
      begintxt = DoubleToTimeStr(endTime)
      endtxt = DoubleToTimeStr(endTime + PaleTime)
      '下班刷卡
      txtSql = "select * from daydata where Id ='" & vtId & "' and BrushDate='" & vtDate & "' and BrushTime>='" & begintxt & "' and BrushTime <='" & endtxt & "'"
      
      Set mrc = Nothing
      
      Set mrc = ExecuteSQL(txtSql)
      
      If Not mrc.EOF Then
         FlagEnd = True
         txtEnd = mrc.Fields(2).Value
      Else
         begintxt = DoubleToTimeStr(endTime - LateTime)
         endtxt = DoubleToTimeStr(endTime)
         '下班早退刷卡
         txtSql = "select * from daydata where Id ='" & vtId & "' and BrushDate='" & vtDate & "' and BrushTime>='" & begintxt & "' and BrushTime <='" & endtxt & "'"
      
         Set mrc = Nothing
      
         Set mrc = ExecuteSQL(txtSql)
         
         If Not mrc.EOF Then
            FlagEnd1 = True
            txtEnd1 = mrc.Fields(2).Value
         End If
            
      End If
      
      If FlagBegin Then '正常上班
         If FlagEnd Then '正常下班
            JudgeDayData = arrayPeriod(i, 2) + JudgeDayData
         Else
            If FlagEnd1 Then '早退
               JudgeDayData = (TimeStrToDouble(txtEnd1) - arrayPeriod(i, 0)) / 60 + JudgeDayData
               n2 = n2 + 1 ' 早退一次
            Else  '下班未刷卡
               n3 = n3 + 1 '旷工一次
            End If
         End If
      
      Else
         If FlagBegin1 Then '迟到
            If FlagEnd Then '正常下班
               JudgeDayData = (arrayPeriod(i, 1) - TimeStrToDouble(txtBegin1)) / 60 + JudgeDayData
               n1 = n1 + 1 '迟到一次
            Else
               If FlagEnd1 Then '早退
                  JudgeDayData = (TimeStrToDouble(txtEnd1) - TimeStrToDouble(txtBegin1)) / 60 + JudgeDayData
                  n1 = n1 + 1  '迟到一次
                  n2 = n2 + 1  '早退一次
               Else  '下班未刷卡
                  n3 = n3 + 1 '旷工一次
               End If
            End If
         Else
            n3 = n3 + 1 '旷工一次
         End If
      
      End If
      
   Next i
   
   If n1 > 0 Then   '迟到
      txtSql = "select * from abnormity where Id ='" & vtId & "' and DealDate='" & vtDate & "' and AbnormityCode='01'"
      Set mrc = Nothing
      Set mrc = ExecuteSQL(txtSql)
      If Not mrc.EOF Then
         mrc.Fields(3) = n1
         mrc.Update
      Else
         txtSql = "select * from abnormity"
         Set mrc = Nothing
         Set mrc = ExecuteSQL(txtSql)
         mrc.Fields(0) = vtId
         mrc.Fields(1) = vtDate
         mrc.Fields(2) = "01"
         mrc.Fields(3) = n1
         mrc.Update
      End If
   Else
      txtSql = "delete from abnormity where Id ='" & vtId & "' and DealDate='" & vtDate & "' and AbnormityCode='01'"
      Set mrc = Nothing
      Set mrc = ExecuteSQL(txtSql)
   End If
      
   If n2 > 0 Then   '早退
      txtSql = "select * from abnormity where Id ='" & vtId & "' and DealDate='" & vtDate & "' and AbnormityCode='02'"
      Set mrc = Nothing
      Set mrc = ExecuteSQL(txtSql)
      If Not mrc.EOF Then
         mrc.Fields(3) = n2
         mrc.Update
      Else
         txtSql = "select * from abnormity"
         Set mrc = Nothing
         Set mrc = ExecuteSQL(txtSql)
         mrc.Fields(0) = vtId
         mrc.Fields(1) = vtDate
         mrc.Fields(2) = "02"
         mrc.Fields(3) = n2
         mrc.Update
      End If
   Else
      txtSql = "delete from abnormity where Id ='" & vtId & "' and DealDate='" & vtDate & "' and AbnormityCode='02'"
      Set mrc = Nothing
      Set mrc = ExecuteSQL(txtSql)
   End If
   
   If n3 > 0 Then   '旷工
      txtSql = "select * from abnormity where Id ='" & vtId & "' and DealDate='" & vtDate & "' and AbnormityCode='03'"
      Set mrc = Nothing
      Set mrc = ExecuteSQL(txtSql)
      If Not mrc.EOF Then
         mrc.Fields(3) = n3
         mrc.Update
      Else
         txtSql = "select * from abnormity"
         Set mrc = Nothing
         Set mrc = ExecuteSQL(txtSql)
         mrc.AddNew
         mrc.Fields(0) = vtId
         mrc.Fields(1) = vtDate
         mrc.Fields(2) = "03"
         mrc.Fields(3) = n3
         mrc.Update
      End If
   Else
      txtSql = "delete from abnormity where Id ='" & vtId & "' and DealDate='" & vtDate & "' and AbnormityCode='01'"
      Set mrc = Nothing
      Set mrc = ExecuteSQL(txtSql)
   End If
   
   
End Function
'将数字转成时间格式
Private Function DoubleToTimeStr(ByVal vtTime As Double) As String
   Dim temp1, temp2  As Integer
   Dim temp As Double
   Dim i As Integer
   Dim txt1, txt2 As String
   
   DoubleToTimeStr = ""
   temp = vtTime
   
   temp1 = temp / 60 '小时
   temp = temp - (temp1 * 60)
   temp2 = temp / 60 '分
   
   txt1 = Trim(str(temp1))
   txt2 = Trim(str(temp2))
   
   For i = Len(txt1) To 1
      txt1 = "0" + txt1
   Next i
   
   For i = Len(txt2) To 1
      txt2 = "0" + txt2
   Next i
   
   DoubleToTimeStr = txt1 + ":" + txt2 + ":00"
   
End Function
'将字串时间转换成分钟
Private Function TimeStrToDouble(ByVal vtTime As String) As Integer
   Dim txt As String
   Dim nTime As Integer
   
   TimeStrToDouble = 0
   nTime = 0
   txt = vtTime
   
   nTime = Val(Left(txt, 2)) * 60 + Val(Mid(txt, 4, 2))
   
   TimeStrToDouble = nTime

End Function

'存盘每日考勤资料
Private Function SaveDayData(vtId As String, vtMonth As String, vtday As Integer, vtCount As Double) As Boolean
   SaveDayData = True
   txtSql = "select * from dutdata where Id ='" & vtId & "' and  DealMonth ='" & vtMonth & "'"
   
   Set mrc = Nothing
   Set mrc = ExecuteSQL(txtSql)
    
   If Not mrc.EOF Then
      mrc.Fields(vtday + 1) = vtCount
      mrc.Update
   Else
      txtSql = "select * from dutdata"
      Set mrc = Nothing
      Set mrc = ExecuteSQL(txtSql)
      mrc.AddNew
      mrc.Fields(0) = vtId
      mrc.Fields(1) = vtMonth
      mrc.Fields(vtday + 1) = vtCount
      mrc.Update
   End If
       
End Function

'找请假原因
Private Function JudgeHoliday(vtId As String, vtDate As Date) As String
   
   JudgeHoliday = ""
   
   txtSql = "select * from holiday where Id ='" & vtId & "' and BeginDate >='" & vtDate & "' and EndDate <='" & vtDate & "'"
   
   Set mrc = Nothing
   Set mrc = ExecuteSQL(txtSql)
   
   If Not mrc.EOF Then
      JudgeHoliday = mrc.Fields(3).Value
   End If
      
   mrc.Close
   
End Function

Private Function JudgeWeekDay(vtDate As Date) As Boolean
   Dim i As Integer
   JudgeWeekDay = False
   i = Weekday(vtDate)
   Select Case i
      Case 1    '星期日
         JudgeWeekDay = False
      Case 2    '星期一
         JudgeWeekDay = True
      Case 3   '星期二
         JudgeWeekDay = True
      Case 4   '星期三
         JudgeWeekDay = True
      Case 5   '星期四
         JudgeWeekDay = True
      Case 6   '星期五
         JudgeWeekDay = True
      Case 7   '星期六
         JudgeWeekDay = False
   End Select
   
   
End Function
Private Function JudgeFeria(vtDate As Date, vFlag As Boolean) As Boolean
   JudgeFeria = vFlag
   txtSql = "select * from feria where  DealDate ='" & vtDate & "'"
   Set mrc = Nothing
   Set mrc = ExecuteSQL(txtSql)
   If Not mrc.EOF Then
          If mrc.Fields(1).Value >= "2" Then '为正常班 或加班
             JudgeFeria = True
          Else    '1 为 假日
             JudgeFeria = False
          End If
   End If

End Function

Private Sub Form_Load()
   Dim FlagEnabled As Boolean
   
   Me.Left = (Screen.Width - Me.Width) / 2
   Me.Top = (Screen.Height - Me.Height) / 2
   
   FlagEnabled = CheckProgramLimit("hrd204")
   cmdDeal.Enabled = FlagEnabled
   
   
   Call Init '初始化数据
End Sub

Private Sub Init()
   Dim i As Integer
   
   txtItem(0).Text = "000000"
   txtItem(1).Text = "999999"
   DTPDealDate(0).Value = Date
   DTPDealDate(1).Value = Date
   
   '找上班时段
   txtSql = "select * from period"
   Set mrc = Nothing
   Set mrc = ExecuteSQL(txtSql)
   nPeriodRecord = mrc.RecordCount
   ReDim arrayPeriod(nPeriodRecord - 1, 2)
   i = 0
   nCountPeriod = 0
   
   Do While Not mrc.EOF
      'arrayPeriod(i, 0) = mrc.Fields(0).Value
      'arrayPeriod(i, 1) = mrc.Fields(1).Value
      'arrayPeriod(i, 2) = mrc.Fields(2).Value
      arrayPeriod(i, 0) = Val(Left(Trim(mrc.Fields(0).Value), Len(Trim(mrc.Fields(0).Value)) - 3)) * 60 + Val(Right(mrc.Fields(0).Value, 2))
      arrayPeriod(i, 1) = Val(Left(Trim(mrc.Fields(1).Value), Len(Trim(mrc.Fields(1).Value)) - 3)) * 60 + Val(Right(mrc.Fields(1).Value, 2))
      arrayPeriod(i, 2) = mrc.Fields(2).Value
      nCountPeriod = nCountPeriod + mrc.Fields(2).Value '总计一天的上班时数
      i = i + 1
      mrc.MoveNext
   Loop
   
   
   
End Sub

Private Function check_dealData() As Boolean
   Dim i As Integer
   
   check_dealData = True
   For i = 0 To 1
      If txtItem(i).Text = "" Then
         MsgBox "输入的数据不能为空", vbCritical + vbOKOnly, "错误提示:"
         check_dealData = False
         txtItem(i).SetFocus
         Exit Function
      End If
      
      If DTPDealDate(i).Value = "" Then
         MsgBox "输入的数据不能为空", vbCritical + vbOKOnly, "错误提示:"
         check_dealData = False
         DTPDealDate(i).SetFocus
         Exit Function
      End If
   Next i
   
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -