以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  高精度小数列数据归零问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187163)

--  作者:xnsiwei
--  发布时间:2023/6/27 17:05:00
--  高精度小数列数据归零问题?
高精度小数列数据归零问题?

有多列高精度小数列,列属性设置小数位数为8
对应存入3至5位小数的数据若干行,保存
重新打开后数据统统变成了0


请教版主!!

--  作者:有点蓝
--  发布时间:2023/6/27 17:23:00
--  
是不是有什么事件代码影响了?或者这是个表达式列?
[此贴子已经被作者于2023/6/27 17:23:25编辑过]

--  作者:xnsiwei
--  发布时间:2023/6/28 17:10:00
--  
不是表达式列

表事件代码有影响吗?(某一列数据变化后执行)

If e.DataCol.Name = "COD" Then \'如果是分组行的数量列
    If e.DataRow("COD") >0.0001 And e.DataRow("COD") <= 15 Then
        If e.DataRow("水质类别") < 1 Then
            e.DataRow("水质类别") = 1
        End If
    ElseIf e.DataRow("COD") > 15  And e.DataRow("COD") < =20 Then
        If e.DataRow("水质类别") < 3 Then
            e.DataRow("水质类别") = 3
        End If
    ElseIf e.DataRow("COD") > 20  And e.DataRow("COD") < = 30 Then
        If e.DataRow("水质类别") < 4 Then
            e.DataRow("水质类别") = 4
        End If
    ElseIf e.DataRow("COD") > 30  And e.DataRow("COD") <= 40 Then
        If e.DataRow("水质类别") < 5 Then
            e.DataRow("水质类别") = 5
        End If
    ElseIf e.DataRow("COD") >40  And e.DataRow("COD") < 100 Then
        If e.DataRow("水质类别") < 6 Then
            e.DataRow("水质类别") = 6
        End If
    End If
End If
If e.DataCol.Name = "BOD5" Then \'如果是分组行的数量列
    If e.DataRow("BOD5") >0.0001 And e.DataRow("BOD5") <= 3 Then
        If e.DataRow("水质类别") < 1 Then
            e.DataRow("水质类别") = 1
        End If
    ElseIf e.DataRow("BOD5") > 3  And e.DataRow("BOD5") < =4 Then
        If e.DataRow("水质类别") < 3 Then
            e.DataRow("水质类别") = 3
        End If
    ElseIf e.DataRow("BOD5") > 4  And e.DataRow("BOD5") < = 6 Then
        If e.DataRow("水质类别") < 4 Then
            e.DataRow("水质类别") = 4
        End If
    ElseIf e.DataRow("BOD5") > 6  And e.DataRow("BOD5") <= 10 Then
        If e.DataRow("水质类别") < 5 Then
            e.DataRow("水质类别") = 5
        End If
    ElseIf e.DataRow("BOD5") >10  And e.DataRow("BOD5") < 100 Then
        If e.DataRow("水质类别") < 6 Then
            e.DataRow("水质类别") = 6
        End If
    End If
End If
If e.DataCol.Name = "氨氮" Then \'如果是分组行的数量列
    If e.DataRow("氨氮") >0.0001 And e.DataRow("氨氮") <= 0.15 Then
        If e.DataRow("水质类别") < 1 Then
            e.DataRow("水质类别") = 1
        End If
    ElseIf e.DataRow("氨氮") > 0.15  And e.DataRow("氨氮") < =0.5 Then
        If e.DataRow("水质类别") < 2 Then
            e.DataRow("水质类别") = 2
        End If
    ElseIf e.DataRow("氨氮") > 0.5  And e.DataRow("氨氮") < =1 Then
        If e.DataRow("水质类别") < 3 Then
            e.DataRow("水质类别") = 3
        End If
    ElseIf e.DataRow("氨氮") > 1  And e.DataRow("氨氮") < = 1.5 Then
        If e.DataRow("水质类别") < 4 Then
            e.DataRow("水质类别") = 4
        End If
    ElseIf e.DataRow("氨氮") > 1.5  And e.DataRow("氨氮") <= 2 Then
        If e.DataRow("水质类别") < 5 Then
            e.DataRow("水质类别") = 5
        End If
    ElseIf e.DataRow("氨氮") >2  And e.DataRow("氨氮") < 100 Then
        If e.DataRow("水质类别") < 6 Then
            e.DataRow("水质类别") = 6
        End If
    End If
End If
If e.DataCol.Name = "P" Then \'如果是分组行的数量列
    If e.DataRow("P") >0.0001 And e.DataRow("P") <= 0.02 Then
        If e.DataRow("水质类别") < 1 Then
            e.DataRow("水质类别") = 1
        End If
    ElseIf e.DataRow("P") > 0.02  And e.DataRow("P") < =0.1 Then
        If e.DataRow("水质类别") < 2 Then
            e.DataRow("水质类别") = 2
        End If
    ElseIf e.DataRow("P") > 0.1  And e.DataRow("P") < =0.2 Then
        If e.DataRow("水质类别") < 3 Then
            e.DataRow("水质类别") = 3
        End If
    ElseIf e.DataRow("P") > 0.2  And e.DataRow("P") < = 0.3 Then
        If e.DataRow("水质类别") < 4 Then
            e.DataRow("水质类别") = 4
        End If
    ElseIf e.DataRow("P") > 0.3  And e.DataRow("P") <= 0.4 Then
        If e.DataRow("水质类别") < 5 Then
            e.DataRow("水质类别") = 5
        End If
    ElseIf e.DataRow("P") > 0.4  And e.DataRow("P") < 5 Then
        If e.DataRow("水质类别") < 6 Then
            e.DataRow("水质类别") = 6
        End If
    End If
End If
If e.DataCol.Name = "总氮" Then \'如果是分组行的数量列
    If e.DataRow("总氮") >0.0001 And e.DataRow("总氮") <= 0.2 Then
        If e.DataRow("水质类别") < 1 Then
            e.DataRow("水质类别") = 1
        End If
    ElseIf e.DataRow("总氮") > 0.2  And e.DataRow("总氮") < =0.5 Then
        If e.DataRow("水质类别") < 2 Then
            e.DataRow("水质类别") = 2
        End If
    ElseIf e.DataRow("总氮") > 0.5  And e.DataRow("总氮") < = 1 Then
        If e.DataRow("水质类别") < 3 Then
            e.DataRow("水质类别") = 3
        End If
    ElseIf e.DataRow("总氮") > 1  And e.DataRow("总氮") < = 1.5 Then
        If e.DataRow("水质类别") < 4 Then
            e.DataRow("水质类别") = 4
        End If
    ElseIf e.DataRow("总氮") > 1.5  And e.DataRow("总氮") <= 2 Then
        If e.DataRow("水质类别") < 5 Then
            e.DataRow("水质类别") = 5
        End If
    ElseIf e.DataRow("总氮") > 2  And e.DataRow("总氮") < 5 Then
        If e.DataRow("水质类别") < 6 Then
            e.DataRow("水质类别") = 6
        End If
    End If
End If
[此贴子已经被作者于2023/6/28 17:13:18编辑过]

--  作者:有点蓝
--  发布时间:2023/6/28 17:19:00
--  
去掉这些代码,测试有没有问题?
--  作者:xnsiwei
--  发布时间:2023/6/28 17:33:00
--  
这些代码是必须要用的
--  作者:有点蓝
--  发布时间:2023/6/29 8:33:00
--  
我的意思是,去掉这些代码,如果测试是没有问题的,说明是这些代码有问题。在一段一段把代码添加回来,看是那个代码影响的,在做对应的改正