📄 frmtestverify_2.frm
字号:
VERSION 5.00
Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
Object = "{0ECD9B60-23AA-11D0-B351-00A0C9055D8E}#6.0#0"; "MSHFLXGD.OCX"
Object = "{5C4592BE-A01B-11D3-AFAF-BF3F431B043C}#1.0#0"; "Toolbar2.ocx"
Begin VB.Form frmTestVerify_2
Caption = "试卷审核向导"
ClientHeight = 7695
ClientLeft = 60
ClientTop = 345
ClientWidth = 9255
LinkTopic = "Form1"
MDIChild = -1 'True
ScaleHeight = 7695
ScaleWidth = 9255
WindowState = 2 'Maximized
Begin VB.Frame frTestDescription
BorderStyle = 0 'None
Height = 1095
Left = 0
TabIndex = 5
Top = 0
Width = 9255
Begin VB.Label lMaxmark
AutoSize = -1 'True
Caption = "试卷总分:"
Height = 180
Left = 360
TabIndex = 8
Top = 840
Width = 900
End
Begin VB.Label lDuration
AutoSize = -1 'True
Caption = "建议答题时间:"
Height = 180
Left = 360
TabIndex = 7
Top = 480
Width = 1260
End
Begin VB.Label lName
AutoSize = -1 'True
Caption = "试卷名称:"
Height = 180
Left = 360
TabIndex = 6
Top = 120
Width = 900
End
End
Begin VB.PictureBox picItemContent
Height = 3015
Left = 240
ScaleHeight = 2955
ScaleWidth = 7875
TabIndex = 0
TabStop = 0 'False
Top = 3720
Width = 7935
Begin RichTextLib.RichTextBox rtfTextQuestion
Height = 1995
Left = 120
TabIndex = 1
Top = 360
Width = 3000
_ExtentX = 5292
_ExtentY = 3519
_Version = 393217
ReadOnly = -1 'True
ScrollBars = 3
TextRTF = $"frmTestVerify_2.frx":0000
End
Begin RichTextLib.RichTextBox rtfTextAnswer
Height = 1995
Left = 3480
TabIndex = 2
Top = 360
Width = 3000
_ExtentX = 5292
_ExtentY = 3519
_Version = 393217
ReadOnly = -1 'True
ScrollBars = 3
TextRTF = $"frmTestVerify_2.frx":009D
End
Begin VB.Label lQuestion
AutoSize = -1 'True
Caption = "题目内容:"
Height = 180
Left = 120
TabIndex = 4
Top = 120
Width = 900
End
Begin VB.Label lAnswer
AutoSize = -1 'True
Caption = "参考答案:"
Height = 180
Left = 3480
TabIndex = 3
Top = 120
Width = 900
End
End
Begin AIFCmp1.asxToolbar myToolbar
Height = 615
Left = 240
Top = 6960
Width = 9915
_ExtentX = 17489
_ExtentY = 1085
BeginProperty ToolTipFont {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ButtonGap = 10
BorderStyle = 0
DoubleBottomBorder= -1 'True
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ButtonCount = 3
BoldOnChecked = -1 'True
ButtonCaption1 = "审核通过"
ButtonKey1 = "ok"
ButtonPicture1 = "frmTestVerify_2.frx":013A
ButtonToolTipText1= "Ok"
ButtonCaption2 = "无效试卷"
ButtonKey2 = "delete"
ButtonPicture2 = "frmTestVerify_2.frx":0D8C
ButtonToolTipText2= "Not Valid"
ButtonCaption3 = "关闭"
ButtonKey3 = "close"
ButtonPicture3 = "frmTestVerify_2.frx":19DE
ButtonToolTipText3= "Close"
End
Begin MSHierarchicalFlexGridLib.MSHFlexGrid gItemList
Height = 2055
Left = 360
TabIndex = 9
Top = 1440
Width = 6015
_ExtentX = 10610
_ExtentY = 3625
_Version = 393216
SelectionMode = 1
AllowUserResizing= 1
_NumberOfBands = 1
_Band(0).Cols = 2
End
End
Attribute VB_Name = "frmTestVerify_2"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Const MARGIN_SIZE = 60 ' 单位为缇
Private rtfRS As adodb.Recordset
Private Sub Form_Terminate()
On Error Resume Next
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
If Not rtfRS Is Nothing Then
rtfRS.Close
Set rtfRS = Nothing
End If
If Not cnn Is Nothing Then
cnn.Close
Set cnn = Nothing
End If
End Sub
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
sSQL = "select NAME, DURATION, MAXMARK" _
& " from TEST where TEST_ID = " & testId
' 打开连接
Set cnn = New Connection
cnn.Open sConnect
' 使用提供的集合创建 recordset
Set rs = New Recordset
rs.CursorLocation = adUseClient
rs.Open sSQL, cnn, adOpenForwardOnly, adLockReadOnly
lName = "试卷名称: " & rs!Name
lDuration = "建议答题时间: " & rs!DURATION
lMaxmark = "试卷总分: " & rs!MAXMARK
rs.Close
If categoryId = 1 Then
sSQL = "select ITEM.ITEM_ID, ITEM_TYPE.NAME as 题型, " _
& "CATEGORY_VIEW.CATEGORY_NAME as 类别名称, CATEGORY_VIEW.FIELD_NAME as 科目名称, " _
& "CATEGORY_VIEW.COURSE_NAME as 课程名称, CATEGORY_VIEW.POINT_NAME as 知识点名称, " _
& "ITEM_LEVEL.NAME as 难度, ITEM_TARGET.NAME as 目标层次, ITEM.SERIAL as 题号, " _
& "ITEM.QUES_CONTENT, ITEM.ANSWER " _
& "from TEST_ITEM, ITEM, ITEM_TYPE, ITEM_LEVEL, ITEM_TARGET, CATEGORY_VIEW" _
& " where TEST_ITEM.TEST_ID = " & testId _
& " and ITEM.ITEM_ID = TEST_ITEM.ITEM_ID " _
& " and ITEM_TYPE.TYPE_ID = ITEM.TYPE_ID " _
& " and ITEM_TYPE.CATEGORY_ID = " & categoryId _
& " and ITEM_LEVEL.LEVEL_ID = ITEM.LEVEL_ID " _
& " and ITEM_LEVEL.CATEGORY_ID = " & categoryId _
& " and ITEM_TARGET.TARGET_ID = ITEM.TARGET_ID " _
& " and ITEM_TARGET.CATEGORY_ID = " & categoryId _
& " and ITEM.CATEGORY_ID = CATEGORY_VIEW.POINT_ID" _
& " order by ITEM.TYPE_ID"
ElseIf categoryId = 2 Then
sSQL = "select ITEM.ITEM_ID, ITEM_TYPE.NAME as 题型, " _
& "CATEGORY_VIEW.CATEGORY_NAME as 类别名称, CATEGORY_VIEW.FIELD_NAME as 专业名称, " _
& "CATEGORY_VIEW.COURSE_NAME as 课程名称, CATEGORY_VIEW.POINT_NAME as 知识点名称, " _
& "ITEM_LEVEL.NAME as 难度, ITEM_TARGET.NAME as 目标层次, ITEM.SERIAL as 题号, " _
& "ITEM.QUES_CONTENT, ITEM.ANSWER " _
& "from TEST_ITEM, ITEM, ITEM_TYPE, ITEM_LEVEL, ITEM_TARGET, CATEGORY_VIEW" _
& " where TEST_ITEM.TEST_ID = " & testId _
& " and ITEM.ITEM_ID = TEST_ITEM.ITEM_ID " _
& " and ITEM_TYPE.TYPE_ID = ITEM.TYPE_ID " _
& " and ITEM_TYPE.CATEGORY_ID = " & categoryId _
& " and ITEM_LEVEL.LEVEL_ID = ITEM.LEVEL_ID " _
& " and ITEM_LEVEL.CATEGORY_ID = " & categoryId _
& " and ITEM_TARGET.TARGET_ID = ITEM.TARGET_ID " _
& " and ITEM_TARGET.CATEGORY_ID = " & categoryId _
& " and ITEM.CATEGORY_ID = CATEGORY_VIEW.POINT_ID" _
& " order by ITEM.TYPE_ID"
ElseIf categoryId = 3 Then
sSQL = "select ITEM.ITEM_ID, " _
& "CATEGORY_MS_VIEW.CATEGORY_NAME as 类别名称, CATEGORY_MS_VIEW.FIELD_NAME as 评价要素名称, " _
& "ITEM_LEVEL.NAME as 难度, ITEM.SERIAL as 题号, " _
& "ITEM.QUES_CONTENT, ITEM.ANSWER " _
& "from TEST_ITEM, ITEM, ITEM_LEVEL, CATEGORY_MS_VIEW" _
& " where TEST_ITEM.TEST_ID = " & testId _
& " and ITEM.ITEM_ID = TEST_ITEM.ITEM_ID " _
& " and ITEM_LEVEL.LEVEL_ID = ITEM.LEVEL_ID " _
& " and ITEM_LEVEL.CATEGORY_ID = " & categoryId _
& " and ITEM.CATEGORY_ID = CATEGORY_MS_VIEW.FIELD_ID" _
& " order by CATEGORY_MS_VIEW.FIELD_ID"
End If
rs.CursorLocation = adUseClient
rs.Open sSQL, cnn, adOpenForwardOnly, adLockReadOnly
Set gItemList.DataSource = rs
setGridFormat
setRTFText (CInt(gItemList.Text))
Screen.MousePointer = vbDefault
End Sub
Private Sub gItemList_Click()
setRTFText (CInt(gItemList.Text))
End Sub
Private Sub gItemList_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 Or KeyCode = 40 Then
setRTFText (CInt(gItemList.Text))
End If
End Sub
Private Sub setRTFText(itemId As Integer)
sSQL = "select QUES_CONTENT, ANSWER from ITEM where ITEM_ID = " & itemId
Set rtfRS = New Recordset
rtfRS.CursorLocation = adUseClient
rtfRS.Open sSQL, cnn, adOpenForwardOnly, adLockReadOnly
rtfTextQuestion.Text = rtfRS!QUES_CONTENT
rtfTextAnswer.Text = rtfRS!ANSWER
rtfRS.Close
End Sub
Private Sub setGridFormat()
With gItemList
' 设置网格列宽度
If categoryId = 1 Or categoryId = 2 Then
.ColWidth(1) = 0
.ColWidth(2) = 1000
.ColWidth(3) = 2000
.ColWidth(4) = 2000
.ColWidth(5) = 2000
.ColWidth(6) = 2000
.ColWidth(7) = 1000
.ColWidth(8) = 1000
.ColWidth(9) = 1000
.ColWidth(10) = 0
.ColWidth(11) = 0
ElseIf categoryId = 3 Then
.ColWidth(1) = 0
.ColWidth(2) = 3000
.ColWidth(3) = 3000
.ColWidth(4) = 2000
.ColWidth(5) = 2000
.ColWidth(6) = 0
.ColWidth(7) = 0
End If
.Redraw = False
' 设置网格样式
.AllowBigSelection = True
.FillStyle = flexFillRepeat
' 将标头作成粗体
.Row = 0
.Col = 0
.RowSel = .FixedRows - 1
.ColSel = .Cols - 1
.CellFontBold = True
' 隔列变灰
For i = .FixedRows To .Rows() - 1 Step 2
.Row = i
.Col = 2
.ColSel = .Cols - 1
.CellBackColor = &HC0C0C0 ' 浅灰
Next i
.Row = .FixedRows
.Col = 1
.ColSel = .Cols - 1
.AllowBigSelection = False
.FillStyle = flexFillSingle
.Redraw = True
End With
End Sub
Private Sub Form_Resize()
Dim sngToolbarTop As Single
Dim sngScaleWidth As Single
Dim sngScaleHeight As Single
On Error GoTo Form_Resize_Error
With Me
sngScaleWidth = .ScaleWidth
sngScaleHeight = .ScaleHeight
' 移动“关闭”按钮到右下角
With .myToolbar
sngToolbarTop = sngScaleHeight - (.Height + MARGIN_SIZE)
.Top = sngToolbarTop
End With
sngScaleHeight = sngScaleHeight - .frTestDescription.Height - .myToolbar.Height
.gItemList.Move MARGIN_SIZE, _
MARGIN_SIZE + .frTestDescription.Height, _
sngScaleWidth - (2 * MARGIN_SIZE), _
(sngScaleHeight - (4 * MARGIN_SIZE)) / 2
.picItemContent.Move MARGIN_SIZE, _
MARGIN_SIZE + .frTestDescription.Height + .gItemList.Height, _
sngScaleWidth - (2 * MARGIN_SIZE), _
(sngScaleHeight - (4 * MARGIN_SIZE)) / 2
.rtfTextQuestion.Left = 2 * MARGIN_SIZE
.rtfTextQuestion.Width = (.picItemContent.Width - (6 * MARGIN_SIZE)) / 2
.rtfTextQuestion.Height = .picItemContent.Height - (4 * MARGIN_SIZE) - .lQuestion.Height
.lAnswer.Left = .rtfTextQuestion.Width + 6 / 2 * MARGIN_SIZE
.rtfTextAnswer.Left = .lAnswer.Left
.rtfTextAnswer.Width = .rtfTextQuestion.Width
.rtfTextAnswer.Height = .rtfTextQuestion.Height
'.rtfTextQuestion.RightMargin = .rtfTextQuestion.Width - 400
'.rtfTextAnswer.RightMargin = .rtfTextAnswer.Width - 400
End With
Exit Sub
Form_Resize_Error:
' 避免负值错误
Resume Next
End Sub
Private Sub myToolbar_ButtonClick(ByVal ButtonIndex As Integer, ByVal ButtonKey As String)
Select Case ButtonKey
Case "ok"
Response = MsgBox("审核通过的试卷将进入题库备用,确定审核通过本试卷?", vbQuestion + vbYesNo)
If Response = vbNo Then
Cancel = True
Else
cnn.Execute "Update TEST set STATUS = '已审' where TEST_ID = " & testId
MsgBox "审核成功!", vbInformation + vbOKOnly
Unload Me
End If
Case "delete"
Response = MsgBox("本试卷将标注为无效,是否确定?", vbQuestion + vbYesNo)
If Response = vbNo Then
Cancel = True
Else
cnn.Execute "Update TEST set STATUS = '无效' where TEST_ID = " & testId
MsgBox "本试卷已标注为无效!", vbInformation + vbOKOnly
Unload Me
End If
Case "close"
Unload Me
End Select
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -