老师您好!
我的疑惑是在运行“卷1答”表中datacolchanged事件代码后,在“学生问题频度”表中计算出相应频度数值见图1。在运行“卷2答”表中datacolchanged事件代码后,在“学生问题频度”表中进行数值累加。图2是独立运行“卷2答”表中datacolchanged事件代码后的结果,图3应该是先运行”卷1答“再运行”卷2答“后数值累积的结果。图4是实际运行效果。请老师帮助看看是哪个地方出现问题了?
编写的代码如下:
“卷1答”代码
Dim kmdr As DataRow = DataTables("客观问题描述").find("试卷号= '" & DataTables("卷1答").Name.chars(1) & "'")
Dim zmdr As DataRow = DataTables("主观问题描述").find("试卷号= '" & DataTables("卷1答").Name.chars(1) & "'")
Dim kfdr As DataRow = DataTables("客观题答案").find("试卷号 = '" & DataTables("卷1答").Name.chars(1) & "'" )
Dim xswpdr As DataRow = DataTables("学生问题频度").find("学号 = '" & e.DataRow("学号") & "'")
For Each dr As DataRow In DataTables("卷1答").DataRows
Dim t1 As String = e.DataRow("客观题1")
Dim d1 As String = kfdr("客观题1")
Dim t2 As String = e.DataRow("客观题2")
Dim d2 As String = kfdr("客观题2")
Dim t3 As String = e.DataRow("客观题3")
Dim d3 As String = kfdr("客观题3")
xswpdr("知1") = 0
xswpdr("知2") = 0
xswpdr("知3") = 0
xswpdr("知4") = 0
If t1 IsNot Nothing AndAlso t2 IsNot Nothing AndAlso t3 IsNot Nothing Then
Dim ts() As String = {t1, t2, t3}
Dim ds() As String = {d1, d2, d3}
For i As Integer = 0 To ts.length-1
For Each s As String In ts(i)
If ds(i).Contains(s) = False Then
Select Case kmdr("题" & i + 1 & s.ToUpper() & "范")
Case "知1"
xswpdr("知1") = xswpdr("知1") + 1
Case "知2"
xswpdr("知2") = xswpdr("知2") + 1
Case "知3"
xswpdr("知3") = xswpdr("知3") + 1
Case "知4"
xswpdr("知4") = xswpdr("知4") + 1
End Select
End If
Next
Next
For i As Integer = 0 To ts.length-1
For Each s As String In ds(i)
If ts(i).Contains(s) = False Then
Select Case kmdr("题" & i + 1 & s.ToUpper() & "范")
Case "知1"
xswpdr("知1") = xswpdr("知1") + 1
Case "知2"
xswpdr("知2") = xswpdr("知2") + 1
Case "知3"
xswpdr("知3") = xswpdr("知3") + 1
Case "知4"
xswpdr("知4") = xswpdr("知4") + 1
End Select
End If
Next
Next
End If
For i As Integer = 1 To 7
If e.DataRow("主观题" & i ) = "f" Then
Select Case zmdr("题" & i & "范")
Case "知1"
xswpdr("知1") = xswpdr("知1") + 1
Case "知2"
xswpdr("知2") = xswpdr("知2") + 1
Case "知3"
xswpdr("知3") = xswpdr("知3") + 1
Case "知4"
xswpdr("知4") = xswpdr("知4") + 1
End Select
End If
Next
Next
“卷2答”代码
Dim kmdr As DataRow = DataTables("客观问题描述").find("试卷号= '" & DataTables("卷2答").Name.chars(1) & "'")
Dim zmdr As DataRow = DataTables("主观问题描述").find("试卷号= '" & DataTables("卷2答").Name.chars(1) & "'")
Dim kfdr As DataRow = DataTables("客观题答案").find("试卷号 = '" & DataTables("卷2答").Name.chars(1) & "'" )
Dim xswpdr As DataRow = DataTables("学生问题频度").find("学号 = '" & e.DataRow("学号") & "'")
If xswpdr("知1") IsNot Nothing And xswpdr("知2") IsNot Nothing And xswpdr("知3") IsNot Nothing And xswpdr("知4") IsNot Nothing Then
xswpdr("知1") = xswpdr("知1")
xswpdr("知2") = xswpdr("知2")
xswpdr("知3") = xswpdr("知3")
xswpdr("知4") = xswpdr("知4")
End If 这部分代码是要实现继承“卷1答”计算结果,但是加入后就成了图4的结果
For Each dr As DataRow In DataTables("卷2答").DataRows
Dim t1 As String = e.DataRow("客观题1")
Dim d1 As String = kfdr("客观题1")
Dim t2 As String = e.DataRow("客观题2")
Dim d2 As String = kfdr("客观题2")
Dim t3 As String = e.DataRow("客观题3")
Dim d3 As String = kfdr("客观题3")
If t1 IsNot Nothing AndAlso t2 IsNot Nothing AndAlso t3 IsNot Nothing Then
Dim ts() As String = {t1, t2, t3}
Dim ds() As String = {d1, d2, d3}
For i As Integer = 0 To ts.length-1
For Each s As String In ts(i)
If ds(i).Contains(s) = False Then
Select Case kmdr("题" & i + 1 & s.ToUpper() & "范")
Case "知1"
xswpdr("知1") = xswpdr("知1") + 1
Case "知2"
xswpdr("知2") = xswpdr("知2") + 1
Case "知3"
xswpdr("知3") = xswpdr("知3") + 1
Case "知4"
xswpdr("知4") = xswpdr("知4") + 1
End Select
End If
Next
Next
For i As Integer = 0 To ts.length-1
For Each s As String In ds(i)
If ts(i).Contains(s) = False Then
Select Case kmdr("题" & i + 1 & s.ToUpper() & "范")
Case "知1"
xswpdr("知1") = xswpdr("知1") + 1
Case "知2"
xswpdr("知2") = xswpdr("知2") + 1
Case "知3"
xswpdr("知3") = xswpdr("知3") + 1
Case "知4"
xswpdr("知4") = xswpdr("知4") + 1
End Select
End If
Next
Next
End If
For i As Integer = 1 To 7
If e.DataRow("主观题" & i ) = "f" Then
Select Case zmdr("题" & i & "范")
Case "知1"
xswpdr("知1") = xswpdr("知1") + 1
Case "知2"
xswpdr("知2") = xswpdr("知2") + 1
Case "知3"
xswpdr("知3") = xswpdr("知3") + 1
Case "知4"
xswpdr("知4") = xswpdr("知4") + 1
End Select
End If
Next
Next
图片
此主题相关图片如下:频度累积.jpg
源文件
[此贴子已经被作者于2016/9/12 9:37:18编辑过]