📄 frmviewclass.frm
字号:
If Val(rstGrid.Fields("BeginTime")) > Val(rstGrid.Fields("EndTime")) Then
Message "结束时间不能比开始时间早!"
Exit Function
End If
End If
If Trim(rstGrid.Fields("ClassID")) = "" _
Or IsNull(rstGrid.Fields("ClassID")) Then
Message "请选择班次!"
Exit Function
End If
rstGrid.MoveNext
Wend
End If
con.BeginTrans
i = 1
con.Execute "delete from SetClass where AddClass=false"
con.Execute "update Employee set ClassFlag=0"
If rstGrid.RecordCount > 0 Then
rstGrid.MoveFirst
Do While Not rstGrid.EOF
SQL = "insert into SetClass(EmployeeID,BeginDate,EndDate,TimeMode,BeginTime,EndTime,ClassID,Memo1,AddClass)"
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("ClassID") & ","
SQL = SQL & "'" & rstGrid.Fields("Memo1") & "',"
SQL = SQL & CStr(0) & ")"
Debug.Print SQL
con.Execute SQL
SQL = "update Employee set ClassFlag=1 where EmployeeID= " & rstGrid.Fields("EmployeeID")
Debug.Print SQL
con.Execute SQL
rstGrid.MoveNext
Loop
End If
con.CommitTrans
i = 2
m_Changed = False
SaveBill = True
Grid.AllowEdit = False
Grid.Refresh
' Message "保存成功!"
Exit Function
SaveErr:
If i = 1 Then con.RollbackTrans
Message Err.Description
End Function
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 = Grid.Field("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 cmdSave_Click()
If SaveBill = False Then Exit Sub
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.timemode,a.classid," _
' & "a.Begintime ,a.Endtime ,c.ClassName ,a.Memo1 from setclass a " _
' & "left outer join employee b on a.employeeid=b.employeeid " _
' & "left outer join class c on a.classid=c.classid "
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=false and a.employeeid=b.employeeid and a.classid=c.classid"
Debug.Print SQL
If rstGrid.State = 1 Then
rstGrid.Close
Set rstGrid = Nothing
End If
rstGrid.CursorLocation = adUseClient
rstGrid.Open SQL, con, adOpenStatic, adLockBatchOptimistic
Grid.AddHeader "序号", "Serial", 40, -1, "Serial", False, sSerial
Grid.AddHeader "员工编号", "EmployeeID", 120, -1, "EmployeeID", False, sDefault
Grid.AddHeader "员工名称", "EmployeeName", 120, -1, "EmployeeName", 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 "班次名称", "ClassName", 120, -1, "ClassName", False, sDefault
Grid.AddHeader "备注", "Memo1", 120, -1, "Memo1", False, sDefault
Set Grid.DataSource = rstGrid
Grid.GroupCol = 2
' Grid.Col("EmployeeID").Visible = False
' Grid.Col("EmployeeName").Visible = False
' Grid.Col("Serial").SumText = "合计"
' Grid.Col("serial").FixType = sLeftPos
cmbClass.ShowHeadScale = "0,20"
cmbClass.ShowHeadValue = "ClassID,名称"
cmbClass.ShowIndex = 1
cmbClass.Type = tStatic
cmbClass.SetBtns "刷新"
cmbClass.ButtonHeight = 20
cmbClass.DropWidth = cmbClass.Width \ 15
cmbClass.DataSource = bufClass
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
' cmbTimeMode.SetItemData 1, 1
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
Grid.EditHwnd(ComboBox) = cmbClass.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
'' Grid.EditHwnd(ComboTree) = cbm
cmbTimeMode.RelateHwnd = Grid.hWnd
cmbClass.RelateHwnd = Grid.hWnd
cmbWeek.RelateHwnd = Grid.hWnd
cmbMonth.RelateHwnd = Grid.hWnd
txt.RelateHwnd = Grid.hWnd
dtpTime.RelateHwnd = Grid.hWnd
Grid.Col("BeginDate").EditType = DTPicker
Grid.Col("EndDate").EditType = DTPicker
Grid.Col("ClassName").EditType = ComboBox
Grid.Col("TimeMode").EditType = ComboBox2
' Grid.Col("BeginTime").EditType = DTPicker
' Grid.Col("EndTime").EditType = DTPicker
Grid.Col("Memo1").EditType = TextBox
Grid.Col("EmployeeID").Visible = False
Grid.Col("EmployeeName").Visible = False
Grid.AllowAddNew = False
Grid.AllowEdit = False
' Grid.MainCol = "TimeMode"
m_Changed = False
End Sub
Public Sub RefreshGrid()
rstGrid.Requery
Grid.ReFetch
' Grid.Refresh
End Sub
Private Sub cmdClose_Click()
m_Changed = False
Unload Me
End Sub
Private Sub cmdSetClass_Click()
If ChangedMsg = False Then Exit Sub
frmViewClassBatchEdit.ZOrder
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
' cmdRefresh.Move cmdClose.Left - cmdRefresh.Width - 60, cmdClose.Top
cmdSetClass.Move cmdClose.Left - cmdSetClass.Width - 60, cmdClose.Top
cmdSave.Move cmdSetClass.Left - cmdSave.Width - 60, cmdSetClass.Top
cmdEdit.Move cmdSave.Left - cmdEdit.Width - 60, cmdSave.Top
cmdAdd.Move cmdEdit.Left - cmdAdd.Width - 60, cmdEdit.Top
' cmdRefresh.Move cmdClose.Left - cmdRefresh.Width - 60, cmdClose.Top
' cmdSetClass.Move cmdRefresh.Left - cmdSetClass.Width - 60, cmdRefresh.Top
' cmdSave.Move cmdSetClass.Left - cmdSave.Width - 60, cmdSetClass.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_BeforeColUpdate(ByVal ColIndex As Long, ByVal OldValue As String, Cancel As SSUPERGRIDLib.sBool)
' If Grid.Col("timemodename").ColIndex = ColIndex Then
' Cancel = True
' 'rstGrid!timemodename = cmbTimeMode.Text
' Dim lSel As Long
' lSel = cmbTimeMode.GetCurSel
' rstGrid!TimeMode = cmbTimeMode.GetItemData(lSel)
' rstGrid.Update
' Grid.RefreshCurRow
' End If
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 + -