以文本方式查看主题 - 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 --
|
|
-- 作者:有点蓝 -- 发布时间: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) ‘’这里显示什么值?
|