以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- SetFormat (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142694) |
-- 作者:小笨笨 -- 发布时间:2019/11/4 9:36:00 -- SetFormat 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. 请帮忙看下这个怎么得到?谢谢老师。 |
-- 作者:有点蓝 -- 发布时间:2019/11/4 9:46:00 -- 报关单价是2.22,但是数据库实际的值应该不是2.22,而是2.21xxxx之类的,列属性设置小数位数只是影响界面显示,数据库原来的值是多少还是多少的。而表达式计算还是按照数据库的实际值进行计算的。这才是正确合理的值。 方法1、把报关单价数据库里的值,全部更新为2位小数值 2、新增一个单价列,只存储2位小数值,然后使用这个单价列进行计算
|
-- 作者:小笨笨 -- 发布时间:2019/11/4 9:50:00 -- 有点蓝老师:谢谢回复。 1. 这个报关单价是报关金额/数量得出来的,我不知道怎么更新为2位小数值,我以为setformat就是设置为2位小数值了,您能帮我详细指导下吗?谢谢 2. 新增一个单价列,只存储2位小数值?怎么做到只存储呢? 您能帮我详细指导下吗?谢谢
|
-- 作者:有点蓝 -- 发布时间:2019/11/4 10:13:00 -- 1、如果是表达式列,参考:http://www.foxtable.com/webhelp/topics/0108.htm 如果是使用代码计算的,参考:http://www.foxtable.com/webhelp/topics/0281.htm 2、参考上面的帮助,把数据处理后再写入单价列
|
-- 作者:小笨笨 -- 发布时间: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), "[报关单价] * [数量]") 有点蓝老师,我还是没理解您的意思,可能我没说清楚,您能帮忙详细的解释下吗? 谢谢!
|
-- 作者:有点蓝 -- 发布时间:2019/11/4 12:00:00 -- DataTables("报关数据_Table1").DataCols.Add("报关单价", Gettype(Double), "Convert([报关金额] * [数量] * 100, \'System.Int64\') / 100") |
-- 作者:小笨笨 -- 发布时间:2019/11/4 12:26:00 -- 谢谢有点蓝老师,我之前也是这样写,是一个报错,我以为不行,可是我刚按照你写的再写一遍居然没有报错! 真是奇怪了。 再次谢谢老师。
|