以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]无法合计  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=174834)

--  作者:swimmer01
--  发布时间:2022/2/8 22:59:00
--  [求助]无法合计
老师,你好!
窗口上有一表Tables(_Sys_lsb2+"_Table1"),窗口AfterLoad部分代码:
Dim Builder As New DataTableBuilder("统计")
Dim str As String = ""
Builder.Adddef("内  容",Gettype(String),20)
Do
    Dim nm As String = dt.Year & "年_" & dt.Month & "月"
    If nm<>str Then
        str=nm
        Builder.Adddef(nm,Gettype(Double))
    End If
    dt = dt.Adddays(1)
    If dt > Enddate Then
        Exit Do
    End If
Loop
Tables(_Sys_lsb2+"_Table1").DataSource = Builder.BuildDataSource

有一按钮,部分代码:
Dim st As Double
For Each cl As Col In Tables(_Sys_lsb2+"_Table1").Cols
    If cl.Name <> "内  容" Then
        st = Tables(_Sys_lsb2+"_Table1").Compute("Sum(cl.Name)")
    End If
Next

结果:st都为0,不对,不知是啥原因。
请老师指正一下,谢谢!

--  作者:有点蓝
--  发布时间:2022/2/8 23:15:00
--  
st = Tables(_Sys_lsb2+"_Table1").Compute("Sum(“ & cl.Name & ”)")
--  作者:swimmer01
--  发布时间:2022/2/9 8:52:00
--  
老师:
还不对,st 仍然为0
--  作者:有点蓝
--  发布时间:2022/2/9 8:59:00
--  
要做什么功能?

代码对所有列进行统计,如果列不是数值列,比如字符,日期,这个统计会出错的
其次遍历所有列的意义是什么?遍历完,st其实只是最后一个列的统计值。如果要汇总所有列的值,应该:
st = st + Tables(_Sys_lsb2+"_Table1").Compute("Sum(“ & cl.Name & ”)")

--  作者:swimmer01
--  发布时间:2022/2/9 9:13:00
--  
按钮代码:
Dim dr1 As DataRow = DataTables(_Sys_lsb2+"_Table1").AddNew()
dr1("内  容") = "项目盈亏"
With Tables(_Sys_lsb2+"_Table1")
    .Position = .Rows.Count - 1
End With
Dim st As Double
For Each cl As Col In Tables(_Sys_lsb2+"_Table1").Cols
    If cl.Name <> "内  容" Then
        dr1(cl.Name) = Tables(_Sys_lsb2+"_Table1").Compute("Sum(" & cl.Name & ")")
    End If
Next

想做一个按月的盈亏分析

--  作者:有点蓝
--  发布时间:2022/2/9 10:11:00
--  
代码没有问题。有也是数据有问题,要么没有加载数据,要么本身数据就是0
--  作者:swimmer01
--  发布时间:2022/2/9 10:44:00
--  
有加载数据,是不是和临时表有关。附
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
截图


--  作者:有点蓝
--  发布时间:2022/2/9 11:01:00
--  
做个例子发上来看看
--  作者:swimmer01
--  发布时间:2022/2/9 12:28:00
--  
已解决,谢谢!