Foxtable(狐表)用户栏目专家坐堂 → 求助


  共有2015人关注过本帖树形打印复制链接

主题:求助

帅哥哟,离线,有人找我吗?
long086
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:298 积分:2605 威望:0 精华:0 注册:2013/5/22 7:16:00
求助  发帖心情 Post By:2019/8/29 23:00:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20190829224852.png
图片点击可在新窗口打开查看

有一种答案对照表 学生的答案和标准答案对比,如何正确评分列显示t,错误显示f ,现在实现了标准答案是a,c  学生答案也是a,c 评分显示t  ,现在想实现标准答案是a,c  学生答案是c,a 也是正确的,意思只要答案正确顺序不对,就是正确,请问怎么实现

 

 

DataColChanged事件代码
If e.DataCol.Name = "学生答案" Or e.DataCol.Name = "多选题答案" Then 
    If Tables("表A").Current("多选题答案") = Tables("表A").Current("学生答案")
        e.DataRow("评分") = "T"
    Else
        e.DataRow("评分") = "F"
    End If
End If
 
 
[此贴子已经被作者于2019/8/29 23:00:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4628 积分:33772 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/8/30 7:59:00 [只看该作者]

转成数组,数组排序后比较

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/30 10:22:00 [只看该作者]

试试

If e.DataCol.Name = "学生答案" Or e.DataCol.Name = "多选题答案" Then
    If e.DataRow.IsNull("多选题答案") OrElse e.DataRow.IsNull("学生答案") Then
        e.DataRow("评分") = "F"
    Else
        Dim Isright As Boolean
        Isright = e.DataRow("多选题答案") = e.DataRow("学生答案")
        If not Isright Then
            Dim a1() As String = e.DataRow("多选题答案").split(",")
            Dim a2() As String = e.DataRow("学生答案").split(",")
            For Each a As String In a1 Then
                If Array.IndexOf(a2,a) = -1 Then
                    Isright = False
                    Exit For
                End If
            Next
            Isright  = True
        End If
        e.DataRow("评分") = IIF(Isright ,"T","F")
    End If
End If

 回到顶部