Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:新年第一问,关于在Datalist中的数值显示!

1楼
woodiy 发表于:2009/1/26 21:00:00

图片点击可在新窗口打开查看此主题相关图片如下:未命名iiiiiiii.jpg
图片点击可在新窗口打开查看

在Datalist是有一个合计金额的表达式列, 为什么有的时候显示正常,有的时候,确会显示很多位小数呢,而且值也不对啊?

另外,在Datalist中调整列位置以后如何保存呢,还有如何使用列表视图呢? 谢谢!

附名列类型表:


图片点击可在新窗口打开查看此主题相关图片如下:未命名iiiiiiii.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2009-1-26 21:11:16编辑过]
2楼
程兴刚 发表于:2009/1/28 9:15:00
原因很简单:

   在输入数据前,要将列属性的小数位数指定,比如说两位小数,包括表达式列涉及的所有列(订单数量、单价、合计金额)在帮助中有说明:列属性的小数位数设置要在输入数据之前设置,因为设置该属性之前已经输入的数据的值不会改变(比如,指定为两位小数属性之前输入了数据2.34412345,修改后显示为2.34,实际值还是2.34412345,如果是先设置为两位小数,再输入数据2.34412345,其显示值和实际值均为2.34),因为狐表系统列属性设置一般都在设计过程中,不会对开发完成的用户造成任何影响,因为您提交给用户的系统应该是一个没有任何数据的系统,作为数据库管理软件的应用,注意一下即可!

 您的那一行数据因为微软的浮点运算错误造成,其中一个或两个的实际值并非整数,可能是一个循环小数,指定完列属性的小数位数,再重新输入即可!
[此贴子已经被作者于2009-1-28 9:19:09编辑过]
3楼
czy 发表于:2009/1/28 14:17:00

如何实现四舍五入


表达式并没有提供传统的四舍五入函数Round,我们只能用Convert函数来间接实现。

例如金额列原来的计算公式为:

[数量] * [单价] * (1 - [折扣])

为了保留两位小数,可以将公式改为:

Convert([数量] * [单价] * (1 - [折扣]) * 100, 'System.Int64') / 100

原理很简单:将计算结果乘以100,然后取整,最后除以100。

如果你要保留三位小数,将表达式中的100改为1000即可,其余类推。

视图我还不知道好方法,不过现在可以这样解决一下。

Tables("表A").OpenView("a")
Dim dst As WinForm.DataList = e.Form.Controls("DataList1")
dst.DataTable = DataTables("表A")
dst.Build()

共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.