以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  计算代码问题求帮助!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129032)

--  作者:lisheng1971
--  发布时间:2018/12/20 12:06:00
--  计算代码问题求帮助!

看帮助和论坛写了如下代码,提示“表达式列......”之类的错误,因为项目需要,要用代码编写:“临时成绩”列=“理论成绩”列*0.3+“实操成绩”列*0.3+“潜能成绩”列*0.2+“工作业绩”列*0.2

Select Case e.DataCol.Name
    Case "理论成绩","实操成绩","潜能成绩","工作业绩","临时成绩","评审资格","年份"
        If e.DataRow("年份") >= 15 Then
            If e.DataRow("鉴定等级") = "高级工" Or e.DataRow("鉴定等级") = "中级工" Then
                If e.DataRow("评审资格") = True Then
                    If e.DataCol.name = "临时成绩" OrElse e.DataCol.name = "理论成绩" OrElse e.DataCol.name = "实操成绩" OrElse e.DataCol.name = "潜能成绩" OrElse e.DataCol.name = "临时成绩" "工作业绩" Then
                        e.DataRow("临时成绩") = e.DataRow("理论成绩") * 0.3 + e.DataRow("实操成绩") * 0.3 + e.DataRow("潜能成绩") * 0.2 + e.DataRow("工作业绩") * 0.2
                    Else
                        e.DataRow("临时成绩") = ""
                    End If
                End If
            End If
        End If
End Select

请版主指正代码错误!


--  作者:有点甜
--  发布时间:2018/12/20 12:08:00
--  


Select Case e.DataCol.Name
    Case "理论成绩","实操成绩","潜能成绩","工作业绩","临时成绩","评审资格","年份"
        If e.DataRow("年份") >= 15 Then
            If e.DataRow("鉴定等级") = "高级工" Or e.DataRow("鉴定等级") = "中级工" Then
                If e.DataRow("评审资格") = True Then
                    If e.DataCol.name = "临时成绩" OrElse e.DataCol.name = "理论成绩" OrElse e.DataCol.name = "实操成绩" OrElse e.DataCol.name = "潜能成绩" OrElse e.DataCol.name = "临时成绩" OrElse e.DataCol.name = "工作业绩" Then
                        e.DataRow("临时成绩") = e.DataRow("理论成绩") * 0.3 + e.DataRow("实操成绩") * 0.3 + e.DataRow("潜能成绩") * 0.2 + e.DataRow("工作业绩") * 0.2
                    Else
                        e.DataRow("临时成绩") = ""
                    End If
                End If
            End If
        End If
End Select