📄 frmviewclassbatchedit.frm
字号:
' cmbTimeMode.SetItemData 1, 1
' cmbTimeMode.SetItemData 2, 2
'
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.MainCol = "TimeMode"
Grid.AddBuf bufClass, -1, "ClassID"
'Grid.AddBuf bufEmployee, -1, "Employeeid"
Grid.AddHeader "序号", "Serial", 60, -1, "Serial", False, sSerial
'Grid.AddHeader "员工", "EmployeeName", 120, 1, "Name", 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, 0, "ClassName", False, sDefault
Grid.AddHeader "备注", "Memo1", 120, -1, "Memo1", False, sDefault
' Grid.Col("TimeMode").EditType = TextBox
' Grid.Col("BeginTime").EditType = TextBox
' Grid.Col("EndTime").EditType = TextBox
' Grid.Col("ClassName").EditType = ComboBox
' Grid.Col("Memo").EditType = TextBox
' Grid.EditHwnd(ComboBox) = cmbClass.hWnd
' Grid.EditHwnd(TextBox) = txt.hWnd
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
' cmbClass.RelateHwnd = Grid.hWnd
' txt.RelateHwnd = Grid.hWnd
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.AllowAddNew = True
Grid.AllowEdit = True
Grid.ColAutoResize = True
Grid.MainCol = "BeginDate"
Set Grid.DataSource = rstGrid
optAdd = True
m_Changed = False
End Sub
Public Function SaveBill() As Boolean
On Error GoTo SaveErr:
Dim i As Integer, j As Integer, intKey As Integer
Dim SQL As String
If rstGrid.RecordCount > 0 Then
rstGrid.MoveFirst
While Not rstGrid.EOF
If Trim(rstGrid.Fields("BeginDate")) = "" _
Or IsNull(rstGrid.Fields("BeginDate")) Then
Message "请选择开始日期!"
Exit Function
End If
If Trim(rstGrid.Fields("EndDate")) = "" _
Or IsNull(rstGrid.Fields("EndDate")) Then
Message "请选择结束日期!"
Exit Function
End If
If CDate(rstGrid.Fields("BeginDate")) > CDate(rstGrid.Fields("EndDate")) Then
Message "结束日期不能比开始日期早!"
Exit Function
End If
If Trim(rstGrid.Fields("TimeMode")) = "" _
Or IsNull(rstGrid.Fields("TimeMode")) Then
Message "请选择时间模式!"
Exit Function
End If
If Trim(rstGrid.Fields("TimeMode")) <> "每天" Then
If Trim(rstGrid.Fields("BeginTime")) = "" _
Or IsNull(rstGrid.Fields("BeginTime")) Then
Message "选择开始时间!"
Exit Function
End If
If Trim(rstGrid.Fields("EndTime")) = "" _
Or IsNull(rstGrid.Fields("EndTime")) Then
Message "选择结束时间!"
Exit Function
End If
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
If lvwEmployee.ListItems.Count > 0 Then
con.BeginTrans
j = 1
For i = 1 To lvwEmployee.ListItems.Count
If lvwEmployee.ListItems.Item(i).Checked Then
intKey = Val(Left(lvwEmployee.ListItems.Item(i).Key, Len(lvwEmployee.ListItems.Item(i).Key) - 1))
If optCover = True Then con.Execute "delete from SetClass where EmployeeID=" & intKey & "and AddClass=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 (' " & CStr(intKey)
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
rstGrid.MoveNext
Loop
con.Execute "update Employee set ClassFlag=1 where EmployeeID=" & intKey
Else
con.Execute "update Employee set ClassFlag=0 where EmployeeID=" & intKey
End If
End If
Next
j = 2
If intKey = 0 Then
Message "请先选择员工!"
Exit Function
End If
Else
Message "没有可选员工!"
Exit Function
End If
con.CommitTrans
SaveBill = True
If FindWindow("frmViewClass") = True Then frmViewClass.RefreshGrid
' Message "保存成功!"
m_Changed = False
Unload Me
Exit Function
SaveErr:
If j = 1 Then con.RollbackTrans
Message Err.Description
End Function
Private Sub cmdSave_Click()
SaveBill
End Sub
Private Sub cmbClass_Selected()
rstGrid.Fields("classid") = cmbClass.ID
rstGrid.Update
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
lvwEmployee.Move 0, 0, Me.ScaleWidth * (2 / 10), Me.ScaleHeight - cmdSave.Height - 100
Grid.Move lvwEmployee.Left + lvwEmployee.Width, 0, Me.ScaleWidth * (8 / 10), Me.ScaleHeight - cmdSave.Height - 100
cmdClose.Move Me.ScaleWidth - cmdClose.Width - 60, Grid.Top + Grid.Height + 60
cmdSave.Move cmdClose.Left - cmdSave.Width - 60, cmdClose.Top
optCover.Move cmdSave.Left - optCover.Width - 60, cmdSave.Top
optAdd.Move optCover.Left - optCover.Width - 60, optCover.Top
End Sub
Private Sub Form_Unload(Cancel As Integer)
If rstExec.State = 1 Then rstExec.Close
Set rstExec = Nothing
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("BeginDate") = Format(dtpTime.Value, "yyyy-mm-dd")
rstGrid.Update
Grid.RefreshNew
End If
m_Changed = True
End Sub
Public Sub DelRecord()
Grid.Delete
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 Area <> sRowArea Then Exit Sub
Set iFrom = Me
MNU.PopupMenu MNU.mnuClassEdit
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -