以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Tables的Compute的Sum函数计算不正常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132385)

--  作者:一笑
--  发布时间:2019/3/20 22:09:00
--  Tables的Compute的Sum函数计算不正常
Tables("排班")经过筛选,有5行,“人数”列有大于0的数值,
以下代码:
               Dim Sum As Integer
                    Sum = DataTables("排班").Compute("Sum(人数)")
                    Sum = Tables("排班").Compute("Sum(人数)")

DataTables("排班").Compute("Sum(人数)")计算正常,能计算出整个Datatable表中人数,而Tables("排班").Compute("Sum(人数)")不正常,显示为0,求解,谢谢

--  作者:有点甜
--  发布时间:2019/3/20 22:56:00
--  

1、如果是窗口表,你是不是写错了表名?

 

2、msgbox(tables("排班").rows.count) 的值是什么?


--  作者:一笑
--  发布时间:2019/3/21 11:25:00
--  

1、在命令窗口中测试

 

2、msgbox(tables("排班").rows.count) 的值是5


刚刚有测试了,还有一样问题。


--  作者:有点蓝
--  发布时间:2019/3/21 11:57:00
--  
上传实例说明
--  作者:一笑
--  发布时间:2019/3/21 20:17:00
--  
新开了一个项目测试正常。不知道现在项目怎么回事,还是不行,非要用datatable。另外还发现,同样的函数放在窗口的按钮中运行会不执行,放到命令窗口中运行就正常,不明白。
--  作者:有点甜
--  发布时间:2019/3/21 22:57:00
--  
以下是引用一笑在2019/3/21 20:17:00的发言:
新开了一个项目测试正常。不知道现在项目怎么回事,还是不行,非要用datatable。另外还发现,同样的函数放在窗口的按钮中运行会不执行,放到命令窗口中运行就正常,不明白。

 

1、是否有其余代码影响了结果?

 

2、具体问题,联系客服QQ远程测试一下。

 


--  作者:北狐
--  发布时间:2023/6/21 13:16:00
--  
Dim smartID As String = "YFHX202306-0015"


\'应付副表本地表
Dim jb1 As New SQLJoinTableBuilder("检查", "应付副表本地表")
Jb1.AddExp("类型", "\'本地表\'")
Jb1.AddExp("本单单号", "smartID")
Jb1.AddExp("成色", "materialName1")
Jb1.AddExp("工费", "actualAmount")
Jb1.AddExp("银重", "actualweight")
Jb1.Filter = "{应付副表本地表}.smartID = \'" & smartID & "\'"

\'R03_payable_Detail1
Dim jb2 As New SQLJoinTableBuilder("检查", "R03_payable_Detail1")
jb2.C
jb2.AddTable("R03_payable_Detail1", "ID", "R03_payable_Detail3", "ID")
Jb2.AddExp("类型", "\'外部表\'")
Jb2.AddExp("本单单号", "R03_payable_Detail1.smartID")
Jb2.AddExp("成色", "materialName")
Jb2.AddExp("工费", "-actualAmount")
Jb2.AddExp("银重", "-actualweight")
Jb2.Filter = "R03_payable_Detail1.smartID = \'" & smartID & "\'"


\'组合jb1  
jb1.Merge(jb2) \'组合jb2  
jb1.Build()
MainTable = Tables("检查")


Dim Sum1 As String = Tables("检查").Compute("Sum(工费)*0.01")  \' Double   Decimal  String 这三种类型,但出来的结果只是趋近于0,但不等于,导致下面的判断无法正常使用,但实际结果是等于0的
代码改成下面这种,会不会有bug
Dim Sum1 As Decimal = Format(Tables("检查").Compute("Sum(工费)"), "#0.00")
MessageBox.Show("" & Sum1 & "")

If "" & Sum1 & "" <> 0 Then
   MessageBox.Show("实收工费错误") 
End If 
老师,帮忙看下怎么优化

[此贴子已经被作者于2023/6/21 13:21:23编辑过]

--  作者:有点蓝
--  发布时间:2023/6/21 13:37:00
--  
Dim Sum1 As Decimal = Tables("检查").Compute("Sum(工费)")
MessageBox.Show(Sum1) ‘’这里显示什么值?