以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=32497)

--  作者:晕了快扶我
--  发布时间:2013/5/3 11:25:00
--  报错

 e.Form.Controls("查询").Visible= True
        e.Form.Controls("起始时间").value = #1/1/2013#
        Dim t As Table = Tables("主界面_销售额统计表")
        t.Fill("select 客户名称,sum(总金额) AS 销售总额 from {销售出库单主表} Group By 客户名称","ERP",True)
        t.DataTable.SysStyles("EmptyArea").BackColor = Color.White
        Dim t1 As Table = Tables("主界面_采购额统计表")
        t1.Fill("select 供应商,sum(总金额) AS 采购总额 from {采购入库单主表} Group By 供应商","ERP",True)
        t1.DataTable.SysStyles("EmptyArea").BackColor = Color.White
        Dim temp As Decimal =Format(t.DataTable.Compute("sum(销售总额)"),"###,###,###,###,###.#####")
        Dim temp1 As Decimal =Format(t1.DataTable.Compute("sum(采购总额)"),"###,###,###,###,###.#####")
        e.Form.Controls("合计销售额").Text ="合计销售额:" & temp & ""
        e.Form.Controls("合计采购额").Text ="合计采购额:" & temp1 & ""
        e.Form.Controls("毛利合计").Text ="毛利合计:" & temp - temp1 & ""
标红的这一句报错,提示如图

 求解。。


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-5-3 12:33:54编辑过]

--  作者:晕了快扶我
--  发布时间:2013/5/3 11:32:00
--  


--  作者:程兴刚
--  发布时间:2013/5/3 11:36:00
--  
用得着顶吗?format后的值的类型和定义的变量的类型不同,不能转换!
--  作者:Bin
--  发布时间:2013/5/3 11:36:00
--  
字符串不能转为高精度小数的.报错很正常,也很合理.
你都带逗号的.怎么转?

--  作者:晕了快扶我
--  发布时间:2013/5/3 11:39:00
--  
以下是引用程兴刚在2013-5-3 11:36:00的发言:
用得着顶吗?format后的值的类型和定义的变量的类型不同,不能转换!

一样是Decimal的类型,有问题吗?

而且标红的上一句和标红的这句是一样的

 


--  作者:晕了快扶我
--  发布时间:2013/5/3 11:40:00
--  
以下是引用Bin在2013-5-3 11:36:00的发言:
字符串不能转为高精度小数的.报错很正常,也很合理.
你都带逗号的.怎么转?

带逗号?不明白?


--  作者:Bin
--  发布时间:2013/5/3 11:44:00
--  
你不是设置了格式吗?  那么,如果一旦位数符合 就会出现逗号 例如  288,888.00  那么遇到逗号的时候 就无法转换为高精度小说,然后就报错.很简单的问题.
--  作者:程兴刚
--  发布时间:2013/5/3 11:45:00
--  

Dim temp As Decimal =Format(t.DataTable.Compute("sum(销售总额)"),"#,###.00")
Dim temp1 As Decimal =Format(t1.DataTable.Compute("sum(采购总额)"),"#,###.00")


--  作者:晕了快扶我
--  发布时间:2013/5/3 11:50:00
--  
以下是引用程兴刚在2013-5-3 11:45:00的发言:

Dim temp As Decimal =Format(t.DataTable.Compute("sum(销售总额)"),"#,###.00")
Dim temp1 As Decimal =Format(t1.DataTable.Compute("sum(采购总额)"),"#,###.00")

明白了,Decimal的格式化小数点后面不能用###啊。。受教了


--  作者:晕了快扶我
--  发布时间:2013/5/3 11:51:00
--  
以下是引用Bin在2013-5-3 11:44:00的发言:
你不是设置了格式吗?  那么,如果一旦位数符合 就会出现逗号 例如  288,888.00  那么遇到逗号的时候 就无法转换为高精度小说,然后就报错.很简单的问题.

是小数点后面不能用###,逗号是千分位符,这个没有问题吧?