Foxtable(狐表)用户栏目专家坐堂 → [求助]计算问题


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

主题:[求助]计算问题

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


加好友 发短信
等级:一尾狐 帖子:436 积分:2654 威望:0 精华:0 注册:2018/1/15 13:54:00
[求助]计算问题  发帖心情 Post By:2020/3/3 3:10:00 [只看该作者]

老师好!有关计算的问题,希望老师帮我实现。感谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:希望完成计算.table


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


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/3 10:14:00 [只看该作者]

Select Case e.DataCol.Name
    Case  "件数"
        If e.DataRow.IsNull("件数") Then 
            e.DataRow("单价") = Nothing  
        End  If
End Select

Select Case e.DataCol.Name
    Case  "件数","单价"
systemready= False
        If e.DataRow.IsNull("件数") OrElse e.DataRow.IsNull("单价")  Then 
            e.DataRow("金额") = Nothing  
        Else
            e.DataRow("金额") = 42 / 186 * e.DataRow("件数") * e.DataRow("单价") 
        End  If
systemready= True
End Select

Select Case e.DataCol.Name
    Case  "件数","金额"
systemready= False
        If e.DataRow.IsNull("件数") OrElse e.DataRow.IsNull("金额") OrElse e.DataRow("件数") = 0 Then 
            e.DataRow("单价") = Nothing  
        Else
            e.DataRow("单价") = e.DataRow("金额") / (42 / 186 * e.DataRow("件数"))
        End  If
systemready= True
End Select

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


加好友 发短信
等级:一尾狐 帖子:436 积分:2654 威望:0 精华:0 注册:2018/1/15 13:54:00
  发帖心情 Post By:2020/3/3 14:59:00 [只看该作者]

老师好!实际应用时,附件是作为子表的,父表的重量有时会有调整,子表的重量会随之改变,用老师的代码测试,主表重量变化,副本重量会改变,但单价、金额是不会变,可否帮我加个提示,若重量发生变化,要求重新输入子表的金额或单价

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


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/3 15:29:00 [只看该作者]


Select Case e.DataCol.Name
    Case  "件数"
        If e.DataRow.IsNull("件数") Then 
            e.DataRow("单价") = Nothing  
        End  If
MessageBox.Show("重量发生变化,要求重新输入子表的金额或单价!")
End Select

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


加好友 发短信
等级:一尾狐 帖子:436 积分:2654 威望:0 精华:0 注册:2018/1/15 13:54:00
  发帖心情 Post By:2020/3/5 15:42:00 [只看该作者]

表达式公式: 装车重量 =  [装车件数] * Parent(接单明细表与承运人明细表).货物重量 / Parent(接单明细表与承运人明细表).件数    。父表名:接单明细表,字段:货物重量、件数;子表名:承运人明细表,字段:装车件数、装车重量。除装车重量,其它都是已知的。这段代码代码老师一定帮忙写下,已开始使用foxtabl写的应用。拜托老师了。


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


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/5 16:55:00 [只看该作者]

比如

Select Case e.DataCol.Name
    Case  "件数","单价"
systemready= False
        If e.DataRow.IsNull("件数") OrElse e.DataRow.IsNull("单价")  Then 
            e.DataRow("金额") = Nothing  
        Else
dim dr as datarow  = datatables().find("关联编号='" & e.DataRow("关联编号")  & "'")
if dr is nothing orelse dr("件数") = 0 then
e.DataRow("金额") = Nothing  
else
            e.DataRow("金额") = dr("货物重量") / dr("件数") * e.DataRow("件数") * e.DataRow("单价") 
        End  If
        End  If
systemready= True
End Select

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


加好友 发短信
等级:一尾狐 帖子:436 积分:2654 威望:0 精华:0 注册:2018/1/15 13:54:00
  发帖心情 Post By:2023/3/7 14:53:00 [只看该作者]

有计算误差,如何使得某字段参与计算的小数后位数够多,而显示时只显示2位。目前我要设置到小数后5位,计算结果才没有误差

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


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/7 14:58:00 [只看该作者]

只能是设置到足够的位数,比如小数后5位

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


加好友 发短信
等级:一尾狐 帖子:436 积分:2654 威望:0 精华:0 注册:2018/1/15 13:54:00
  发帖心情 Post By:2023/3/7 15:56:00 [只看该作者]

设置足够的位数可以的,窗口打印时只显示小数后2位该如何设置?

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


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/3/7 16:02:00 [只看该作者]


 回到顶部