Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
不懂你的意思······
还有最后一列没有算啊!这个表我还没做完,刚接触,问下啊!前面几列为什么是字符呢!
数据类型你要自己决定。
例如姓名肯定是字符型
出生日期肯定是日期时间型
工资、奖金、年龄、金额之类肯定是数值型,整数的如年龄设置为整数型即可,金额之类的设置为双精度小数型。
狐狸爸可我输入的数据你全帮我改成了字符型有些不理解,后面的改成双精度能理解。
还有最后的无功功率还是计算不了,我又添了个无功电费也计算不了。
我也是用的双精度。
是不是代码有问题啊!对这个东西还是陌生。
下载信息 [文件大小: 下载次数: ] | |
![]() |
无功电费的那个代码很可能些错了 原来的公式应该是 当无功电量>有功电量的0.75时
无功电费=0
当无功电量 <有功电量的0.75时
无功电费=有功电量的0.75-无功电量*-0.01
还有,数据输入以后,计算的结果可以马上显示。重新打开后却只有输入的数据,计算结果没有却。是设置了不保存吗?
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
Case "有功起码","有功止码"
If dr.IsNull("有功起码") OrElse dr.IsNull("有功止码") Then
dr("有走字") = Nothing
ElseIf dr("有功止码") >= dr("有功起码") Then
dr("有走字") = dr("有功止码") - dr("有功起码")
ElseIf dr("有功起码") < 99.99 Then
dr("有走字") = dr("有功止码") - dr("有功起码") + 100
ElseIf dr("有功起码") < 999.99 Then
dr("有走字") = dr("有功止码") - dr("有功起码") + 1000
ElseIf dr("有功起码") < 9999.99 Then
dr("有走字") = dr("有功止码") - dr("有功起码") + 10000
ElseIf dr("有功起码") < 99999.99 Then
dr("有走字") = dr("有功止码") - dr("有功起码") + 100000
End If
If dr.IsNull("有功电量") OrElse dr.IsNull("无功电量") Then
dr("无功功率") = Nothing
dr("无功电费") = Nothing
ElseIf dr("无功电量") >= dr("有功电量") * 0.75 Then
dr ("无功电费") = 0
dr("无功功率") = 1 / math.Sqrt(1 + (dr("无功电量")^2 / dr("有功电量")^2))
ElseIf dr("无功电量") < dr("有功电量") * 0.75 Then
dr ("无功电费") = dr("有功电量") * 0.75 - dr("无功电量") * 0.01
' Else
dr("无功功率") = 1 / math.Sqrt(1 + (dr("无功电量")^2 / dr("有功电量")^2))
End If
Case "无功起码","无功止码"
If dr.IsNull("无功起码") OrElse dr.IsNull("无功止码") Then
dr("无走字") = Nothing
ElseIf dr("无功止码") >= dr("无功起码") Then
dr("无走字") = dr("无功止码") - dr("无功起码")
ElseIf dr("无功起码") < 99.99 Then
dr("无走字") = dr("无功止码") - dr("无功起码") + 100
ElseIf dr("无功起码") < 999.99 Then
dr("无走字") = dr("无功止码") - dr("无功起码") + 1000
ElseIf dr("无功起码") < 9999.99 Then
dr("无走字") = dr("无功止码") - dr("无功起码") + 10000
ElseIf dr("无功起码") < 99999.99 Then
dr("无走字") = dr("无功止码") - dr("无功起码") + 100000
End If
If dr.IsNull("有功电量") OrElse dr.IsNull("无功电量") Then
dr("无功功率") = Nothing
dr("无功电费") = Nothing
ElseIf dr("无功电量") >= dr("有功电量") * 0.75 Then
dr ("无功电费") = 0
dr("无功功率") = 1 / math.Sqrt(1 + (dr("无功电量")^2 / dr("有功电量")^2))
ElseIf dr("无功电量") < dr("有功电量") * 0.75 Then
dr ("无功电费") = dr("有功电量") * 0.75 - dr("无功电量") * 0.01
dr("无功功率") = 1 / math.Sqrt(1 + (dr("无功电量")^2 / dr("有功电量")^2))
End If
End Select
你没有触发倍率和电价列呀,在加上:
Case "倍率","电价"
If dr.IsNull("有功电量") OrElse dr.IsNull("无功电量") Then
dr("无功功率") = Nothing
dr("无功电费") = Nothing
ElseIf dr("无功电量") >= dr("有功电量") * 0.75 Then
dr ("无功电费") = 0
dr("无功功率") = 1 / math.Sqrt(1 + (dr("无功电量")^2 / dr("有功电量")^2))
ElseIf dr("无功电量") < dr("有功电量") * 0.75 Then
dr ("无功电费") = dr("有功电量") * 0.75 - dr("无功电量") * 0.01
dr("无功功率") = 1 / math.Sqrt(1 + (dr("无功电量")^2 / dr("有功电量")^2))
End If