以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  时间段金额计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87185)

--  作者:jamhuton
--  发布时间:2016/7/5 13:12:00
--  时间段金额计算
2个日期计算出天数,然后根据这2个天数计算
1、5天免费
2、6-10天,x元
3、10-15天,y元
4、15天以上,z元

例如天数等于18,计算公式:超期费=5*x+5*y+(18-5-5-5)*z

--  作者:jamhuton
--  发布时间:2016/7/5 13:13:00
--  

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

--  作者:jamhuton
--  发布时间:2016/7/5 13:13:00
--  

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

--  作者:jamhuton
--  发布时间:2016/7/5 13:19:00
--  
我是想另外建一个费率表,然后选择箱型的时候导入(3楼)该箱型的费率,然后判断滞箱天数来计算
滞箱天数>5  <10    公式为滞箱天数*(6-10天)列费率

--  作者:jamhuton
--  发布时间:2016/7/5 13:21:00
--  
滞箱天数>10  <15    公式为5*(6-10天)列费率+(滞箱天数-10)*(10-15天)费率
--  作者:jamhuton
--  发布时间:2016/7/5 13:22:00
--  
滞箱天数>15    公式为5*(6-10天)列费率+5*(10-15天)费率+(滞箱天数-15)*15天以上费率
--  作者:大红袍
--  发布时间:2016/7/5 14:40:00
--  

参考代码

 

Dim n as integer = 18
Dim dr As DataRow = DataTables("表B").find("")
Dim sum As Double = 0
If n > 15 Then
    sum = (n-15)*dr("费率3")+5*dr("费率2")+5*dr("费率1")
ElseIf n >10 Then
    sum = (n-5)*dr("费率2")+5*dr("费率1")
ElseIf n > 5
    sum = 5*dr("费率1")
End If


--  作者:jamhuton
--  发布时间:2016/7/5 15:03:00
--  

Dim n As Integer = "滞箱天数"
Dim drf As DataRow = DataTables("江运结算").find("")
Dim sum As Double = 0
If n > 15 Then
    sum = (n-15)*drf("天15以上")+5*drf("天15内")+5*drf("天10")
ElseIf n >10 Then
    sum = (n-5)*drf("天15内")+5*drf("天10")
ElseIf n > 5
    sum = 5*drf("天10")
End If
写在datacolchanged报错

--  作者:jamhuton
--  发布时间:2016/7/5 15:04:00
--  
.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2016.6.13.1
错误所在事件:表,江运结算,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“滞箱天数”到类型“Integer”的转换无效。
输入字符串的格式不正确。

--  作者:jamhuton
--  发布时间:2016/7/5 15:05:00
--  
我用到的数据全部是双精度小数