⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmtestverify_2.frm

📁 这是我们公司的题库管理系统
💻 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 + -