以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [已解决]ADOXBuilder创建的表的COMPUTE无效  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60253)

--  作者:狐作非为
--  发布时间:2014/11/21 8:43:00
--  [已解决]ADOXBuilder创建的表的COMPUTE无效
compute 不能按以下用法吗 ,其中要统计的是 以日期 2014-12-1 形式的整数型列,
 t.Compute("sum(cl.Name)","产品型号=\'" & e.DataRow("产品型号") & "\'")
无效,请问怎么解决
[此贴子已经被作者于2014-11-21 19:57:40编辑过]

--  作者:Bin
--  发布时间:2014/11/21 8:57:00
--  
t.Compute("sum(" & cl.Name & ")","产品型号=\'" & e.DataRow("产品型号") & "\'")
--  作者:狐作非为
--  发布时间:2014/11/21 9:23:00
--  
依然无效,上例子求助
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2_201411210924.zip



--  作者:Bin
--  发布时间:2014/11/21 9:26:00
--  
Dim daysum1,daysum2 As Integer
Dim TB As WinForm.TextBox = e.Form.Controls("TextBox1")
    For Each cl As Col In  Tables("执行表").Cols
        If cl.Name.Contains("20") Then
    daysum1=Tables("执行表").Compute("sum(" & cl.Name & ")","订单号=\'" & Tables("执行表").Current("订单号") & "\'")
    tb.Value= daysum1
    End If
    Next

没有问题.但是你这样 永远都显示最后一列的统计值

--  作者:狐作非为
--  发布时间:2014/11/21 9:28:00
--  
哦,我要求是每一列都要求和的,如果统计值大于500就到下一列,麻烦指导 
--  作者:Bin
--  发布时间:2014/11/21 9:32:00
--  
所有列加在一起?
--  作者:狐作非为
--  发布时间:2014/11/21 9:34:00
--  
后面会再新增行,如果同订单的某一天如果超过500,就从下一个日期开始,例子中,12-1号a 订单已经有300了,如果我再增加一行,也是a订单,如果是500,新增行的12-1号只能设置200,因为同订单的12-1号已经达到500 ,所以剩余的300要放到12-2号,这样的
--  作者:狐作非为
--  发布时间:2014/11/21 9:40:00
--  
不是,都是从12-1号开始,12-1前面已经到了500就到12-2 类推,只统计当天的
[此贴子已经被作者于2014-11-21 9:39:52编辑过]

--  作者:有点甜
--  发布时间:2014/11/21 9:42:00
--  

 compute不统计,是因为你的列名不规范。

 

 你这种列名要用[]括起来


--  作者:狐作非为
--  发布时间:2014/11/21 9:48:00
--  
不能实现吗?那怎么变通呢?冰版,甜版