以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  帮忙看看哪里错了  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9925)

--  作者:liu81111
--  发布时间:2011/5/14 17:32:00
--  帮忙看看哪里错了

能看看哪里错了吗?后面的好像不能累计计算

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:mr725
--  发布时间:2011/5/14 18:08:00
--  

不懂你的意思······ 


--  作者:狐狸爸爸
--  发布时间:2011/5/14 19:39:00
--  

这样就计算了:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

Foxtable中,列有数据类型之分的,一定要正确设置列类型。


--  作者:liu81111
--  发布时间:2011/5/14 21:54:00
--  还有一列没算

还有最后一列没有算啊!这个表我还没做完,刚接触,问下啊!前面几列为什么是字符呢!


--  作者:狐狸爸爸
--  发布时间:2011/5/14 21:57:00
--  

数据类型你要自己决定。

例如姓名肯定是字符型

出生日期肯定是日期时间型

工资、奖金、年龄、金额之类肯定是数值型,整数的如年龄设置为整数型即可,金额之类的设置为双精度小数型。


--  作者:liu81111
--  发布时间:2011/5/14 23:42:00
--  

狐狸爸可我输入的数据你全帮我改成了字符型有些不理解,后面的改成双精度能理解。

 还有最后的无功功率还是计算不了,我又添了个无功电费也计算不了。

 我也是用的双精度。

 是不是代码有问题啊!对这个东西还是陌生。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理.table


--  作者:liu81111
--  发布时间:2011/5/15 0:50:00
--  

无功电费的那个代码很可能些错了    原来的公式应该是   当无功电量>有功电量的0.75时

                                                                    无功电费=0

                                                                    当无功电量 <有功电量的0.75时

                                                                    无功电费=有功电量的0.75-无功电量*-0.01

     还有,数据输入以后,计算的结果可以马上显示。重新打开后却只有输入的数据,计算结果没有却。是设置了不保存吗?


--  作者:mr725
--  发布时间:2011/5/15 1:14:00
--  

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


--  作者:liu81111
--  发布时间:2011/5/15 22:59:00
--  还是不成!!!

我将代码直接复制了一遍,第一次都运算了;

将表关了之后;找来数据试的时候----又不成了!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理.table


--  作者:e-png
--  发布时间:2011/5/16 1:09:00
--  

你没有触发倍率和电价列呀,在加上:

        
    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