Foxtable(狐表)用户栏目专家坐堂 → SetFormat


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

主题:SetFormat

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


加好友 发短信
等级:婴狐 帖子:13 积分:159 威望:0 精华:0 注册:2019/10/24 9:05:00
SetFormat  发帖心情 Post By:2019/11/4 9:36:00 [只看该作者]

DataTables("报关数据_Table1").DataCols.Add("报关单价", Gettype(Double), "[报关金额] / [数量]")
DataTables("报关数据_Table1").DataCols("报关单价").SetFormat("0.00")
DataTables("报关数据_Table1").DataCols.Add("新报关金额", Gettype(Double), "[报关单价] * [数量]")
获取出来的报关单价显示的是2位小数,但是当用报关单价x数量的时候,并不是显示的2位小数x数量得到的值,例如:显示的报关单价是2.22,数量10个,新报关金额是22.15,我想要的报关单价显示的是2.22,新报关金额就是22.20. 
请帮忙看下这个怎么得到?谢谢老师。 


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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/4 9:46:00 [只看该作者]

报关单价是2.22,但是数据库实际的值应该不是2.22,而是2.21xxxx之类的,列属性设置小数位数只是影响界面显示,数据库原来的值是多少还是多少的。而表达式计算还是按照数据库的实际值进行计算的。这才是正确合理的值。

方法1、把报关单价数据库里的值,全部更新为2位小数值
2、新增一个单价列,只存储2位小数值,然后使用这个单价列进行计算

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


加好友 发短信
等级:婴狐 帖子:13 积分:159 威望:0 精华:0 注册:2019/10/24 9:05:00
  发帖心情 Post By:2019/11/4 9:50:00 [只看该作者]

有点蓝老师:谢谢回复。
  1. 这个报关单价是报关金额/数量得出来的,我不知道怎么更新为2位小数值,我以为setformat就是设置为2位小数值了,您能帮我详细指导下吗?谢谢
 2. 新增一个单价列,只存储2位小数值?怎么做到只存储呢? 您能帮我详细指导下吗?谢谢

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/4 10:13:00 [只看该作者]

1、如果是表达式列,参考:http://www.foxtable.com/webhelp/topics/0108.htm
如果是使用代码计算的,参考:http://www.foxtable.com/webhelp/topics/0281.htm

2、参考上面的帮助,把数据处理后再写入单价列

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


加好友 发短信
等级:婴狐 帖子:13 积分:159 威望:0 精华:0 注册:2019/10/24 9:05:00
  发帖心情 Post By:2019/11/4 11:47:00 [只看该作者]

Dim b As New GroupTableBuilder("统计表1",DataTables("出运表明细"))
b.Filter = Tables("出运表明细").Filter
b.Groups.AddDef("运编号")
b.Groups.AddDef("出运运编号")
b.Groups.adddef("英文品名")
b.Groups.AddDef("报关品名")
b.Totals.AddDef("数量")
b.Groups.AddDef("数量单位")
b.Totals.AddDef("箱数")
b.Groups.AddDef("箱数单位")
b.Totals.adddef("体积")
b.Groups.AddDef("体积单位")
b.Totals.AddDef("毛重")
b.Totals.AddDef("净重")
b.Groups.AddDef("毛重单位")
b.Groups.AddDef("选择")
b.Totals.AddDef("补贴费用")
b.Totals.adddef("销售金额")
b.Totals.adddef("报关金额")
b.Groups.adddef("境内货源地")
b.Groups.Adddef("销售币种")
Tables("报关数据_table1").DataSource = b.BuildDataSource()

DataTables("报关数据_Table1").DataCols.Add("报关单价", Gettype(Double), "[报关金额] / [数量]")
DataTables("报关数据_Table1").DataCols("报关单价").SetFormat("0.00")
DataTables("报关数据_Table1").DataCols.Add("新报关金额", Gettype(Double), "[报关单价] * [数量]")

有点蓝老师,我还是没理解您的意思,可能我没说清楚,您能帮忙详细的解释下吗?

谢谢!

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/4 12:00:00 [只看该作者]

DataTables("报关数据_Table1").DataCols.Add("报关单价", Gettype(Double), "Convert([报关金额] * [数量] * 100, 'System.Int64') / 100")


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


加好友 发短信
等级:婴狐 帖子:13 积分:159 威望:0 精华:0 注册:2019/10/24 9:05:00
  发帖心情 Post By:2019/11/4 12:26:00 [只看该作者]

谢谢有点蓝老师,我之前也是这样写,是一个报错,我以为不行,可是我刚按照你写的再写一遍居然没有报错!图片点击可在新窗口打开查看 真是奇怪了。
再次谢谢老师。 

 回到顶部