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

📄 frmsetvac.frm

📁 考勤机管理软件,用于统计某段时间某个部门或者某个员工在某段内迟到与早退次数.
💻 FRM
📖 第 1 页 / 共 2 页
字号:
    
    con.BeginTrans
    i = 1
    con.Execute "delete from SetVac"
    
    If rstGrid.RecordCount > 0 Then
        rstGrid.MoveFirst
        Do While Not rstGrid.EOF
             
            SQL = "insert into SetVac(EmployeeID,BeginDate,EndDate,TimeMode,BeginTime,EndTime,TimePos,Memo1)"
            SQL = SQL & " Values(" & rstGrid.Fields("EmployeeID") & ","
            SQL = SQL & "'" & rstGrid.Fields("BeginDate") & "',"
            SQL = SQL & "'" & rstGrid.Fields("EndDate") & "',"
            SQL = SQL & "'" & rstGrid.Fields("TimeMode") & "',"
            SQL = SQL & "'" & rstGrid.Fields("BeginTime") & "',"
            SQL = SQL & "'" & rstGrid.Fields("EndTime") & "',"
            SQL = SQL & "'" & rstGrid.Fields("TimePos") & "',"
            SQL = SQL & "'" & rstGrid.Fields("Memo1") & "')"
             
            Debug.Print SQL
            
            con.Execute SQL
            
            rstGrid.MoveNext
        Loop

        m_Changed = False
    End If
    
    con.CommitTrans
    i = 2
    m_Changed = False
    Grid.AllowEdit = False
    Grid.Refresh
    SaveBill = True
'    Message "保存成功!"
    Exit Function
    
SaveErr:
    If i = 1 Then con.RollbackTrans
    Message Err.Description
End Function

Private Sub cmdSave_Click()
    SaveBill
    
End Sub

Public Sub AddRow()
    If Grid.RecordCount = 0 Then
        Message "没有可用信息!"
        Exit Sub
    End If
    
    If Grid.CurRow = -1 Then
        Message "请先选中数据!"
        Exit Sub
    End If
    
'    Dim sName As String
'    sName = Grid.Field("EmployeeName")
    
    Dim sID As Long
    sID = rstGrid.Fields("EmployeeID")
    
    Grid.InsertRow Grid.CurRow
'    rstGrid!EmployeeName = sName
    rstGrid!EmployeeID = sID
    
    
    Grid.RefreshCurRow
End Sub

Public Sub DelRow()
    If Grid.RecordCount = 0 Then
        Message "没有可用信息!"
        Exit Sub
    End If
    
    If Grid.CurRow = -1 Then
        Message "请先选中数据!"
        Exit Sub
    End If
    
    Grid.Delete
    m_Changed = True
End Sub


Private Sub Form_Load()
    Me.Icon = MDI.Icon
    Me.Caption = "休假登记"

'    Dim SQL As String
'
'    SQL = "select a.EmployeeID, b.name as EmployeeName," _
'        & " a.BeginDate,a.EndDate,a.timemode,a.Begintime ,a.Endtime ,a.classid,c.ClassName ,a.AddClass,a.Memo1  from setclass a ,employee b,class c" _
'        & " where a.AddClass=true and a.employeeid=b.employeeid and  a.classid=c.classid"
'
'    Debug.Print SQL
    
    If rstGrid.State = 1 Then rstGrid.Close
    Set rstGrid = Nothing
    rstGrid.CursorLocation = adUseClient
    rstGrid.Open "select * from SetVac", con, adOpenStatic, adLockBatchOptimistic
    
    Grid.AddBuf bufEmployee, -1, "EmployeeID"
    
    While bufEmployee.ExitLoadThread = 0
        Sleep 20
    Wend
    
    While bufClass.ExitLoadThread = 0
        Sleep 20
        
    Wend
    
    Grid.AddHeader "序号", "Serial", 40, -1, "Serial", False, sSerial
    
    Grid.AddHeader "员工名称", "Name", 120, 0, "name", False, sDefault
    Grid.AddHeader "员工卡号", "Card", 120, 0, "Card", False, sDefault
    
    Grid.AddHeader "开始日期", "BeginDate", 120, -1, "BeginDate", False, sDefault
    Grid.AddHeader "结束日期", "EndDate", 120, -1, "EndDate", False, sDefault
    
    Grid.AddHeader "模式", "TimeMode", 120, -1, "TimeMode", False, sDefault
    Grid.AddHeader "开始时间", "Begintime", 120, -1, "Begintime", False, sDefault
    Grid.AddHeader "结束时间", "Endtime", 120, -1, "Endtime", False, sDefault
    Grid.AddHeader "时间段", "TimePos", 120, -1, "TimePos", False, sDefault
    Grid.AddHeader "备注", "Memo1", 120, -1, "Memo1", False, sDefault
    Grid.GroupCol = "Name"
    Sleep 100
    Set Grid.DataSource = rstGrid
    
    cmbTimeMode.ShowHeadScale = "0,20"
    cmbTimeMode.ShowHeadValue = "DataID,时间模式"
    cmbTimeMode.ShowIndex = 1
    cmbTimeMode.Type = tNormal
    cmbTimeMode.DropWidth = cmbTimeMode.Width \ 15
    
    cmbTimeMode.AddString "每天" + vbLf
    cmbTimeMode.AddString "每周" + vbLf
    cmbTimeMode.AddString "每月" + vbLf
    
    cmbWeek.ShowHeadScale = "0,20"
    cmbWeek.ShowHeadValue = "DataID,星期几"
    cmbWeek.ShowIndex = 1
    cmbWeek.Type = tNormal
    cmbWeek.DropWidth = cmbTimeMode.Width \ 15
    
    Dim iWeek As Integer
    For iWeek = 1 To 7
        cmbWeek.AddString CStr(iWeek) + vbLf
    Next
    
    cmbMonth.ShowHeadScale = "0,20"
    cmbMonth.ShowHeadValue = "DataID,日"
    cmbMonth.ShowIndex = 1
    cmbMonth.Type = tNormal
    cmbMonth.DropWidth = cmbTimeMode.Width \ 15
    
    Dim iMonth As Integer
    For iMonth = 1 To 31
        cmbMonth.AddString CStr(iMonth) + vbLf
    Next
    
'=====================cmbTimePos=======================================
    
    cmbTimePos.ShowHeadScale = "0,20"
    cmbTimePos.ShowHeadValue = "DataID,时间段"
    cmbTimePos.ShowIndex = 1
    cmbTimePos.Type = tNormal
    cmbTimePos.SetBtns "查看"
    cmbTimePos.ButtonHeight = 20
    cmbTimePos.DropWidth = cmbTimePos.Width \ 15
    
    Dim lRow As Long
    Dim lRowCount As Long
    
    lRowCount = GetTimePosCount
    For lRow = 1 To lRowCount
        cmbTimePos.AddString "时间段" & CStr(lRow) + vbLf
    Next
    cmbTimePos.AddString "全天" + vbLf
    
    
    Grid.EditHwnd(ComboBox) = cmbTimePos.hWnd
    Grid.EditHwnd(ComboBox2) = cmbTimeMode.hWnd
    Grid.EditHwnd(ComboBox3) = cmbWeek.hWnd
    Grid.EditHwnd(ComboBox4) = cmbMonth.hWnd
    Grid.EditHwnd(DTPicker) = dtpTime.hWnd
    Grid.EditHwnd(TextBox) = txt.hWnd
    
    cmbTimeMode.RelateHwnd = Grid.hWnd
    cmbWeek.RelateHwnd = Grid.hWnd
    cmbMonth.RelateHwnd = Grid.hWnd
    txt.RelateHwnd = Grid.hWnd
    dtpTime.RelateHwnd = Grid.hWnd
    cmbTimePos.RelateHwnd = Grid.hWnd
    
    Grid.Col("BeginDate").EditType = DTPicker
    Grid.Col("EndDate").EditType = DTPicker
    Grid.Col("TimeMode").EditType = ComboBox2
'    Grid.Col("BeginTime").EditType = DTPicker
'    Grid.Col("EndTime").EditType = DTPicker
    Grid.Col("TimePos").EditType = ComboBox
    Grid.Col("Memo1").EditType = TextBox
    
    Grid.Col("Card").Visible = False
    Grid.Col("Name").Visible = False
    Grid.AllowAddNew = False
    Grid.AllowEdit = False

    m_Changed = False
    
End Sub

Public Sub RefreshGrid()
    rstGrid.Requery
    Grid.ReFetch
End Sub

Private Sub cmdClose_Click()
    m_Changed = False
    Unload Me
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Dim i As Integer
    If m_Changed = True Then
        i = MsgBox("记录已更改,是否保存!", vbInformation + vbYesNoCancel, "询问")
        If i = vbYes Then
            If SaveBill = False Then Cancel = 1
        ElseIf i = vbNo Then
            Cancel = 0
        Else
            Cancel = 1
        End If
    End If
End Sub

Private Sub Form_Resize()
    On Error Resume Next
    
    Grid.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight - cmdClose.Height - 100
    cmdClose.Move Me.ScaleWidth - cmdClose.Width - 60, Grid.Top + Grid.Height + 60
    cmdSave.Move cmdClose.Left - cmdSave.Width - 60, cmdClose.Top
    cmdEdit.Move cmdSave.Left - cmdEdit.Width - 60, cmdSave.Top
    cmdAdd.Move cmdEdit.Left - cmdAdd.Width - 60, cmdEdit.Top
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If rstGrid.State = 1 Then rstGrid.Close
    Set rstGrid = Nothing
End Sub

Private Sub Grid_AfterColEdit(ByVal ColIndex As Long)
    If Grid.IsInNewRow Then
        rstGrid.AddNew
        rstGrid.Fields("TimeMode") = cmbTimeMode.Text
        rstGrid.Update
        Grid.RefreshNew
    End If
    m_Changed = True
End Sub



Private Sub Grid_BeforeRowChange(ByVal NewRow As Long, Cancel As Long)
On Error Resume Next
    If Grid.FieldByKey(NewRow, "TimeMode") = "每周" Then
        Grid.Col("BeginTime").EditType = ComboBox3
        Grid.Col("EndTime").EditType = ComboBox3
        
    ElseIf Grid.FieldByKey(NewRow, "TimeMode") = "每月" Then
        Grid.Col("BeginTime").EditType = ComboBox4
        Grid.Col("EndTime").EditType = ComboBox4

    ElseIf Grid.FieldByKey(NewRow, "TimeMode") = "每天" Then
        Grid.Col("BeginTime").EditType = OtherHwnd
        Grid.Col("EndTime").EditType = OtherHwnd
    End If
End Sub

Private Sub Grid_RButtonUp(ByVal Area As SSUPERGRIDLib.sArea, ByVal X As Long, ByVal Y As Long)
    If Not Grid.AllowEdit Then Exit Sub
    If Area = sRowArea Or sBlankArea Then
        Set iFrom = Me
        Me.PopupMenu MNU.mnuSetClass
    End If
End Sub



⌨️ 快捷键说明

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