Foxtable(狐表)用户栏目专家坐堂 → 时间段金额计算


  共有5828人关注过本帖树形打印复制链接

主题:时间段金额计算

帅哥哟,离线,有人找我吗?
jamhuton
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
时间段金额计算  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/7/5 13:13:00 [只看该作者]


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

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/7/5 13:13:00 [只看该作者]


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

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/7/5 13:19:00 [只看该作者]

我是想另外建一个费率表,然后选择箱型的时候导入(3楼)该箱型的费率,然后判断滞箱天数来计算
滞箱天数>5  <10    公式为滞箱天数*(6-10天)列费率

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/7/5 13:21:00 [只看该作者]

滞箱天数>10  <15    公式为5*(6-10天)列费率+(滞箱天数-10)*(10-15天)费率

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/7/5 13:22:00 [只看该作者]

滞箱天数>15    公式为5*(6-10天)列费率+5*(10-15天)费率+(滞箱天数-15)*15天以上费率

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/7/5 15:04:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
jamhuton
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:502 积分:3620 威望:0 精华:0 注册:2015/4/21 22:45:00
  发帖心情 Post By:2016/7/5 15:05:00 [只看该作者]

我用到的数据全部是双精度小数


 回到顶部
总数 13 1 2 下一页