dataeditfrm.frm
来自「guan yu pai ke xi tong de ruan jian」· FRM 代码 · 共 746 行 · 第 1/3 页
FRM
746 行
TemDataSet.Tables(8).Rows(TemDataSet.Tables(8).RowCount - 1).Items(ColIndex + 1).Value = Me.Combo3(ColIndex).ListIndex
Next
TemDataSet.Tables(8).Rows(TemDataSet.Tables(8).RowCount - 1).Items(6).Value = Val(Me.Combo3(5).Text)
TemDataSet.Tables(8).Rows(TemDataSet.Tables(8).RowCount - 1).Items(7).Value = Text2.Text
End If
Next
'使当前显示位置为新添加的数据。
Me.VScroll1.Value = Me.VScroll1.Max
Me.VScroll1.Max = TemDataSet.Tables(8).RowCount - 1
RowSelectIndex = Me.VScroll1.Value + 1
ColSelectIndex = -1
Me.DataRefresh
If Me.Combo3(0).ListIndex < 0 Then
MsgBox "已经添加课程数据,但未对任课教师进行指派!" & Chr(13) & "请记得对相关课程数据进行修改!", vbOKOnly, "提示..."
Else
If Me.Combo3(1).ListIndex < 0 Then
MsgBox "已经添加课程数据,但未对相关科目进行指派!" & Chr(13) & "请记得对相关课程数据进行修改!", vbOKOnly, "提示..."
End If
End If
End If
Case 4: '删除.
TemDataSet.Tables(8).DelRow (RowSelectIndex)
Me.VScroll1.Max = TemDataSet.Tables(8).RowCount - 1
Me.DataRefresh
Case 5: '清空.
TemDataSet.Tables(8).ClearRows
Me.VScroll1.Max = TemDataSet.Tables(8).RowCount - 1
Me.DataRefresh
Case 6: '取消.
Me.MousePointer = 0
Unload Me
Exit Sub
Case 7: '公式生成。
'MsgBox "注册后方可使用该功能!" & Chr(13) & "时限公式:" & TemDataSet.Tables(8).Rows(RowSelectIndex).Items(ColSelectIndex).Value
Dim TemFrm As New FormulaBuildFrm
Set TemFrm.TemDataSet = TemDataSet
TemFrm.AbsolutePosition = RowSelectIndex
TemFrm.Show 1
Me.DataRefresh
Case 8: '确定。
MyDataSet.Updatable = False
Call Command1_Click(1)
If MyDataSet.Updatable = True Then
Me.MousePointer = 0
Unload Me
Exit Sub
End If
End Select
Me.MousePointer = 0
End Sub
Public Sub DataRefresh()
On Error Resume Next
Dim RowIndex As Long
Dim FieldIndex As Long
Dim TemStr As String
Dim LeftStr As String
Dim TemIndex As Long
Me.Picture1.Cls '清显示.
'画列标题。
Me.Picture1.ForeColor = Me.TitleColor
For FieldIndex = Me.HScroll1.Value To 7
TemStr = Left(TemDataSet.Tables(8).Fields.Items(FieldIndex).Name, Me.ColWidth \ Me.Picture1.TextWidth("正"))
Me.Picture1.CurrentX = Me.ColWidth * (FieldIndex - Me.HScroll1.Value) + (Me.ColWidth - Me.Picture1.TextWidth(TemStr)) / 2
Me.Picture1.CurrentY = (Me.RowHeight - Me.Picture1.TextHeight(TemStr)) / 2
Me.Picture1.Print TemStr
Next
Me.Picture1.ForeColor = Me.TextColor
'画行线。
For RowIndex = 0 To Me.Picture1.ScaleHeight \ Me.RowHeight
Me.Picture1.Line (0, RowIndex * Me.RowHeight)-(Me.Picture1.ScaleWidth, RowIndex * Me.RowHeight), Me.LineColor
Next
'画列线。
For FieldIndex = 0 To 7 - Me.HScroll1.Value
Me.Picture1.Line (FieldIndex * Me.ColWidth, 0)-(FieldIndex * Me.ColWidth, Me.Picture1.ScaleHeight), Me.LineColor
Next
'确定时否显示编辑框。
Me.Combo1.Visible = False: Me.Text1.Visible = False: Me.Command1(7).Visible = False
If RowSelectIndex >= 0 And RowSelectIndex < TemDataSet.Tables(8).RowCount And ColSelectIndex >= 0 And ColSelectIndex < TemDataSet.Tables(8).Fields.FieldCount Then
If (ColSelectIndex >= 0 And ColSelectIndex < 8 And RowSelectIndex >= 0 And RowSelectIndex < TemDataSet.Tables(8).RowCount) Then
If ColSelectIndex - Me.HScroll1.Value >= 0 And RowSelectIndex - Me.VScroll1.Value >= 0 And RowSelectIndex - Me.VScroll1.Value < Me.HScroll1.Top \ Me.RowHeight Then
If ColSelectIndex < 6 Then
Me.Combo1.Clear
For RowIndex = 0 To TemDataSet.Tables(ColSelectIndex).RowCount - 1
Me.Combo1.AddItem TemDataSet.Tables(ColSelectIndex).Rows(RowIndex).Items(0).Value
Next
Me.Combo1.ListIndex = TemDataSet.Tables(8).Rows(RowSelectIndex).Items(ColSelectIndex).Value
Me.Combo1.Left = (ColSelectIndex - Me.HScroll1.Value) * Me.ColWidth
Me.Combo1.Top = (RowSelectIndex - Me.VScroll1.Value + 1) * Me.RowHeight
Me.Combo1.Visible = True: Me.Combo1.SetFocus
Else
Me.Text1.Text = TemDataSet.Tables(8).Rows(RowSelectIndex).Items(ColSelectIndex).Value
Text1.SelStart = Len(Text1.Text)
Me.Text1.Top = (RowSelectIndex - Me.VScroll1.Value + 1) * Me.RowHeight
Me.Text1.Left = (ColSelectIndex - Me.HScroll1.Value) * Me.ColWidth
If ColSelectIndex = 7 Then
'Me.Text1.MaxLength = 250 '公式字符串长度.
Me.Text1.Width = Me.Picture1.ScaleWidth - Me.Text1.Left
Else
'Me.Text1.MaxLength = 5 '排课节数长度.
Me.Text1.Width = Me.ColWidth
End If
Text1.Visible = True
If Text1.Width > Me.Command1(7).Width And ColSelectIndex = 7 Then '显示按钮。
Text1.Width = Text1.Width - Me.Command1(7).Width
Me.Command1(7).Height = Me.RowHeight
Me.Command1(7).Left = Me.Text1.Left + Me.Text1.Width
Me.Command1(7).Top = (RowSelectIndex - Me.VScroll1.Value + 1) * Me.RowHeight
Me.Command1(7).Visible = True
End If
Text1.SetFocus
End If
End If
End If
End If
Me.Picture1.ForeColor = Me.TextColor
For RowIndex = Me.VScroll1.Value To TemDataSet.Tables(8).RowCount - 1
If RowIndex = RowSelectIndex Then
Me.Picture1.ForeColor = Me.SelectColor
Else
Me.Picture1.ForeColor = Me.TextColor
End If
For FieldIndex = Me.HScroll1.Value To 7
SelectX = Me.ColWidth * (FieldIndex - Me.HScroll1.Value)
SelectY = (RowIndex - Me.VScroll1 + 1) * Me.RowHeight
TemStr = "": LeftStr = ""
If FieldIndex < 6 Then
TemStr = TemDataSet.Tables(FieldIndex).Rows(TemDataSet.Tables(8).Rows(RowIndex).Items(FieldIndex).Value).Items(0).Value
Else
TemStr = CStr(TemDataSet.Tables(8).Rows(RowIndex).Items(FieldIndex).Value)
End If
Me.Picture1.CurrentX = SelectX + Me.Picture1.TextWidth("正") / 3
Me.Picture1.CurrentY = SelectY + (Me.RowHeight - Me.Picture1.TextHeight(TemStr)) / 2
If FieldIndex < 7 Then
For TemIndex = 1 To Len(TemStr)
If Me.Picture1.TextWidth(Left(TemStr, TemIndex)) < Me.ColWidth Then LeftStr = Left(TemStr, TemIndex)
Next
Me.Picture1.Print LeftStr
Else
Me.Picture1.Print TemStr
End If
Next
If Me.Picture1.CurrentY > Me.HScroll1.Top Then Exit For
Next
Me.Picture1.Refresh
If RowSelectIndex >= 0 And RowSelectIndex < TemDataSet.Tables(8).RowCount Then
Me.Caption = App.ProductName & "<课程计划>——当前记录:" & RowSelectIndex
Else
Me.Caption = App.ProductName & "<课程计划>"
End If
End Sub
Private Sub Form_Resize()
Dim ForIndex As Long
On Error Resume Next
If Me.ScaleWidth > Me.Command1(8).Left + Me.Command1(8).Width Then Me.Frame1.Width = Me.ScaleWidth
Me.Frame1.Top = Me.ScaleHeight - Me.Frame1.Height
Me.Frame1.Left = 0
Me.VScroll1.Height = Me.Frame1.Top - Me.HScroll1.Height
Me.VScroll1.Left = Me.ScaleWidth - Me.VScroll1.Width - Me.Frame2.Width - 50
Me.VScroll1.Top = 0
Me.HScroll1.Width = Me.VScroll1.Left
Me.HScroll1.Left = 0
Me.HScroll1.Top = Me.VScroll1.Height
Me.Command1(0).Width = Me.VScroll1.Width
Me.Command1(0).Height = Me.HScroll1.Height
Me.Command1(0).Left = Me.VScroll1.Left
Me.Command1(0).Top = Me.HScroll1.Top
Me.Picture1.Width = Me.VScroll1.Left
Me.Picture1.Height = Me.HScroll1.Top
Me.Picture1.Left = 0
Me.Picture1.Top = 0
Me.Frame2.Height = Me.HScroll1.Top + Me.HScroll1.Height
Me.Frame2.Left = Me.VScroll1.Left + Me.VScroll1.Width + 50
Me.Frame2.Top = 0
Me.DataRefresh
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set TemDataSet = New MDD_Data
rv = SetWindowLong(Me.hWnd, GWL_WNDPROC, PROROC) '消息为默认的窗口处理函数.
End Sub
Private Sub List1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim ForIndex As Long
If (KeyCode = Asc("a") Or KeyCode = Asc("A")) And Shift = 2 Then
For ForIndex = 0 To List1.ListCount - 1
List1.Selected(ForIndex) = True
Next
End If
End Sub
Private Sub VScroll1_Change()
Me.DataRefresh
End Sub
Private Sub VScroll1_Scroll()
VScroll1_Change
End Sub
Private Sub HScroll1_Change()
VScroll1_Change
End Sub
Private Sub HScroll1_Scroll()
HScroll1_Change
End Sub
Private Sub Picture1_DblClick()
If RowSelectIndex - VScroll1.Value < 0 Then '双击列标题。
If ColSelectIndex < 7 Then
TemDataSet.Tables(8).IndexUpdate ColSelectIndex
Else
TemDataSet.Tables(8).IndexUpdate 7
End If
End If
DataRefresh
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Text1.Visible = False: Me.Combo1.Visible = False
If Y > Me.RowHeight Then
RowSelectIndex = Y \ Me.RowHeight - 1 + Me.VScroll1.Value
Else
RowSelectIndex = -1
End If
If Button = 1 Then
ColSelectIndex = X \ Me.ColWidth + Me.HScroll1.Value: If ColSelectIndex > 7 Then ColSelectIndex = 7 '字段索引最大为7。
Else
ColSelectIndex = -1
End If
DataRefresh
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If ColSelectIndex <> 7 Then '如果不是时限公式编辑,则不允许输入非数字字符.
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End If
End Sub
Private Sub Text1_Change()
Dim TemStr As String
Dim ForIndex As Long
Dim FormatUpdata As Boolean
If ColSelectIndex >= 7 Then '表示时限公式字段.
If RowSelectIndex >= 0 And RowSelectIndex < TemDataSet.Tables(8).RowCount And ColSelectIndex >= 0 And ColSelectIndex < TemDataSet.Tables(8).Fields.FieldCount Then TemDataSet.Tables(8).Rows(RowSelectIndex).Items(ColSelectIndex).Value = Text1.Text
If TemDataSet.TestLimit(Text1.Text, TemDataSet) = True Then Text1.ToolTipText = "时限公式错误!" Else Text1.ToolTipText = "直接输入数据进行修改."
Exit Sub
End If
If RowSelectIndex >= 0 And RowSelectIndex < TemDataSet.Tables(8).RowCount And ColSelectIndex >= 0 And ColSelectIndex < TemDataSet.Tables(8).Fields.FieldCount Then TemDataSet.Tables(8).Rows(RowSelectIndex).Items(ColSelectIndex).Value = Val(Text1.Text)
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?