📄 frmsetvac.frm
字号:
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 + -